3D grafika u Processingu

Slides:



Advertisements
Сличне презентације
[napisati ime inovacije]
Advertisements

Računarstvo i informatika
Упити Queries.
Konto, kontni okvir, kontni plan
2.1 Spremnici računala.
Olivera Hrnjaković, Marko Tot, Aleksandar Kupusinac, Rade Doroslovački
2.1.(A) Grafičke naredbe u programu
Nastavna jedinica: 8.1. Upoznavanje alata za izradu prezentacija
Primjena programiranja u nastavi matematike
Dinamika konstrukcija i zemljotresno inženjerstvo
Nastavna cjelina: 2. BASIC
Слике Слике се не кодирају у HTML документ, већ се наводи путања до слике. За приказивање слика користи се елемент IMG. Елемент IMG има само почетни маркер.
ISPITIVANJE KVALITETA SOFTVERSKI GENERISANIH SEGMENATA U OBLASTI VREMENSKE SLOŽENOSTI ALGORITAMA ZA AUTOMATIZOVANO SASTAVLJANJE ISPITA     Đorđe Pešić,
Nastavna jedinica: 4.4. Jezik HTML 4.5. Oznake i parametri HTML jezika
G4 Tim: Tatjana Ružman Krešo Barić Marija Đapić Darko Jovišić.
3. 4. Дизајн статичких веб страна
Ponašanje potrošača.
Уређивање чланака на Википедији Србије
Metaio: platforma za proširenu stvarnost
Lokalna razvojna strategija
DIGITALNI NOVČANICI Uobičajeni novčanik možemo nazvati «analogni novčanik». Digitalni novčanik teži da po funkcionalnosti liči na neki analogni novčanik.
Vrste datoteka, dokumenti
Preslikavanje ravnina
Responzivne web stranice
„MEDIJI I MI” „Mobitel u slobodno vrijeme koristim više od 5 sati dnevno.” „Pažljivo biram koga prihvaćam za prijatelja/pratitelja na društvenim mrežama.”
КОМПЈУТЕРСКА СИМУЛАЦИЈА И ВЕШТАЧКА ИНТЕЛИГЕНЦИЈА
6.3. Oblikovanje teksta na slajdovima
Nastavna cjelina: 1. Osnove IKT-a
Pretraživanje interneta
Ms Word 2010 Oblikovanje znakova.
Preuzimanje i instaliranje programa
6.1. Upoznavanje alata za izradu prezentacija
Konferencija o istraživanju i razvoju u hrvatskoj ICT industriji
Informacijska pismenost
Vježbe 1. dio - Razvojne okoline -
OSI referentni model Miljan G. Jeremić.
Seminarski rad: Referentni sistemi
Ak. god. 2018/2019 izv. prof. dr. sc. Marko Maliković
Nastavna jedinica: 1.3. (B) Crtanje kružnice
Osnovni pojmovi; nastanak programa
Računarska grafika Vrste i podjela.
Теме предавања: Векторска и растерска графика
BAZE PODATAKA.
Upute za korištenje 1 Izbrišite crte i tekst koji vam nisu potrebni 2
JEZIK RAČUNALA: bit i bajt
Statičke i dinamičke web stranice
4. MREŽNE STRANICE 4.1. Što su mrežne stranice?.
Multimedija.
Revenue Administration Modernization Project External and internal communication modernization Veljača 2012.
Tehnike objavljivanja
KREIRANJE GRAFIKONA U EXCEL-U
INTERNET 5. razred.
Računarska grafika Računarska grafika  je polje vizuelnog računarstva gdje se pomoću računara stvara slika. Ta slika može biti iz stvarnog svijeta koja.
Jelena Franić Rihter, prof.
Ms Word 2010 Oblikovanje odlomaka.
NetLogo – novo okruženje za podučavanje informatike
КОРИШЋЕЊЕ ГРАФИЧКОГ СИСТЕМА
Tipkovnica engl. Keyboard.
Programski jezici.
PROFIL INTERNET Internetski servisi.
Programiranje za Internet
Analogno-digitalna pretvorba
Hrvatski jezik online.
2. Sklopovlje i prog. podrška
DIJETE I PROSTOR U NASTAVI PRIRODE I DRUŠTVA
Peković Dejan Jasna Suljević
Rešavanje problema pomoću računara
Medijska pismenost i mladi
dr Aleksandra Kostić-Milanović mr Vule Aleksić
Транскрипт презентације:

3D grafika u Processingu Bezierove plohe s interaktivnim kontrolnim točkama Marko Šinko. Davor Ljubenkov

Uvod Bézierove krivulje prvi puta opisane 1962 godine Najčešće se koriste u računalnoj grafici i konačnom modeliranju Krivulja je definirana sa nizom točaka Početna i zadnja točka kroz koje krivulja prolazi (interpolira ih) i kontrolnim točkama koje ne leže na krivulji već krivulja naginje ka njima (aproksimira ih).

Uvod Bézierova krivulja sa jednom kontrolnom točkom

Svojstva Svojstvo Bézierove krivulje i plohe (krivulje u višoj dimenziji) jest da se pomicanjem samo jedne kontrolne točke mijenja izgled cijele krivulje odnosno plohe Utjecaj pojedine točke na oblik krivulje određuje Bernsteinov polinom

Svojstva Bézierove plohe najlakše je izraditi i prezentirati pomoću mreže trokuta Same plohe je generalno teško renderirati zbog proračuna kontrolnih točaka Najveći razlog tome jest taj što ploha ne prolazi kroz kontrolnu točku, već joj samo naginje

Svojstva Iz tog razloga, ploha je izrađena od mreže trokuta Ploha se sastoji od 4x4 matrice Točke koje se nalaze na uglovima predstavljaju stvarne točke na rubu interpolirane površine

Svojstva X, Y i Z koordinate površine računaju se odvojeno Bezierova krivulja je zapravo dvodimenzionala bezierova ploha jer se samo izostavi Z os, a sve ostalo je isto

Svojstva Svaka točka ovisi o dva parametra – u i v, koji variraju između 0 i 1 Bezierove plohe uglavnom se korite za predstavljanje trodimenzionalnih objekta Bezierove površine pružaju kompaktni način za reprezentiranje analitiče površine Parametarske bikubične površine koriste se za mapiranje teksutra te se zbog toga često koriste u računalnoj grafici

Processing Kreiran kako bi olakšao učenje programiranja u vizualnom kontekstu te za kao razvojni alat Koriste ga studenti, umjetnici, dizajneri i istraživači u procesu učenja, razvoja prototipa i proizvodnji Jezik je razvijen kako bi početnici mogli razviti vlastite aplikacije za samo nekoliko minuta (uz pomoć uputa), ali i za napredne korisnike

Processing Library datoteke omogućuju proširenje razvojnog okruženja na generiranje zvuka, primanje i slanje podataka u različitim formatima, kao i uvoz/izvoz 2D i 3D datotećnih formata Koncepti koji se ne mogu izraziti u ostalim medijima, mogu se izraziti u ovome – mogućnost izrade slobodnih i dinamičnih formi, simulacije prirodnih sustava, integracija sa ostalim medijima...

Svrha Svrha Processinga je približiti programiranje širim masama Slučaj sa programskim jezicima Logo i Max Bilo je nužno pojednostavniti programsko okruženje Processing primjerice danas služi mnogima za razvoj audio i video softvera

Koncept Processing ne odstupa mnogo od osnovnih načela programiranja Pojednostavljuje programiranje kako bi bilo dostupnije onima koji su zainteresirani za programiranje ali nemaju dovoljno teoretskog znanja o istome Ideja je da ne bi trebalo biti razlike između običnog korisnika računala i programera Što je alat više pojednostavljen, to ima veća ograničenja – ne može u potpunosti iskoristiti potencijale računala

Open source Processing je pod Open source licencom Postoji mnogo razvojnih okruženja ali niti jedno nije uspjelo zavladati iole većim djelom tržišta Programere se ohrabruje da objavljuju source svojih aplikacija kako bi ostali mogli učiti od njih. Na taj način su nastale neke aplikacije koje bi inače bilo nemoguće napraviti bez pomoći i asistencije

Edukativna svrha Cilj je upoznati koncepte softvera u kontekstu umjetnosti, kao i predstaviti koncept široj publici Sintaksa Processinga je derivirana iz sintakse programskih jezika u široj uporabi Vještine naučene u ovom programskom jeziku omogućuju ljudima da lakše nauče ostale kontekste poput Web programiranja, mrežnog upravljanja i računalne grafike

Uporaba Koristi se u nekim umjetničkim školama, privatnim fakultetima ali i javnim sveučilištima (primjerice UCLA) Učenje osnovnog programiranja, gdje se simultano uvode osnovne teorije, omogućuje lakše istraživanje i provođenje ideja u interakciji sa ostalim digitalnim medijima

Web Iskorištava se prednost web zajednica u razvoju aplikacija Nadogradnje koda, objava istoga i dozvola da drugi nadograđuju taj kod daje neslučene mogućnosti u razvoju aplikacija Lakše je razmijeniti iskustva i dobiti podršku za razvoj aplikacija (pod time se ne misli na financijsku podršku već pomoć pri realizaciji)

Kontekst Jezgra Processinga koristi Java libraries, ali sadržava i neke elemente identične programskom jeziku C To omogućuje mnogim korisnicima koji imaju iskustva sa tim programskim jezicima lakše snalaženje u samom okruženju Olakšava pisanje i trazvoj aplikacija za crtanje, animaciju i simulacije okoline, aplikacije koje se lagano mogu integrirati sa različitim medijskim tipovima datoteka – poput audia i videa

Sučelje/okruženje Processingovo razvojno okruženje (Processing Development Environment,PDE) sastoji se od jednostavnog tekst editora za pisanje koda, dijela namjenjenog ispisivanju poruka, tekstualne konzole, tabova za menadžment datoteke, alatne trake sa kraticama za najčešće korištene funkcije te različitih menija Kada se aplikacija pokrene, ona se pokreće u novom prozoru

Sučelje/okruženje Dijelovi softvera napisanog u Processingu se nazivaju skice (eng. sketches) Konzola prikazuje tekst uključujući error poruke, kao i tekst iz programa nad kojim se koriste print() i println() funkcije Alatna traka dopušta pokretanje programa, kreiranje nove skice, otvaranje, spremanje i eksportiranje Pokretanjem Run funkcije, kod se automatski kompajlira i otvara u novom prozoru

Sučelje/okruženje Stop zaustavlja pokrenutu aplikaciju, ali ne zatvara prozor Eksport funkcija (funkcija Izvezi) omogućuje da se skica kreira kao Java applet u HTML-u Izbornici pružaju istu funkcionalnost kao i alatna traka, s tim da pružaju i neke dodatne mogućnosti za rad sa datotekama

3D Za 3D grafiku, mreža poligona dpšušta slobodniju manipulaciju jer sama mreža ne treba biti izražena pomoću matematičke formule Iako se u teoriji mreža može sastojati od poligona, češće je prihvatljivije i lakše kreirati mrežu od trokuta Svaki poligon je moguće pretvoriti u set trokuta, tako da to ne predstavlja nikakvo geometrijsko ograničenje

3D Proces pretvaranja nekog inputa u mrežu trokuta se zove triangulacija Objekti su prikazani samo svojim granicama Ponekad je potrebno da imaju puni volumen i određena svojstva – primjerice gustoća Processing koristi ishodišni sustav (0,0,0) postavljen u gornji lijevi ugao

3D

3D point(), line(), i vertex() funkcije imaju dodatne parametre za postavljanje u 3D koordinatni sustav, ali ostali oblici moraju se postaviti sa transformacijama translate() i scale() funkcije rade na isti način sa dodatnim parametrom za z-dimenziju. rotate() funkcija je zamijenjena sa tri različite funkcije - rotateX(), rotateY() i rotateZ() rotateZ() funkcija je identična rotate() funkciji ali rotateX() i rotateY() su jedinstvene za rad u 3D okruženju

Renderiranje Osnovno renderiranje u Processingu se vrši u dvije dimentije tako da je potrebno uključiti dodatne funkcije (P3D i OpenGL) P3D je osnovno i najjednostavnije renderiranje koje ne zahtijeva dodatne librarije OpenGL je pak namijenjen za renderiranje grafike visokih performansi Kada se objekt pomiče u dvije dimenzije, on ne mijenja oblik, dok kod tri dimenzije izgled objekta ovisi o promatraču – on se naizgled povećava, smanjuje, mijenja oblik

Renderiranje - Point of View (POV) Svo renderiranje ovisi o točki gledišta – položaju kamere koja promatra objekt Processing nudi eksplicitno mapiranje analogno kameri koje je derivirano iz OpenGL-a Perspektiva kamere modelirane OpenGL-om se definira sa samo nekoliko parametara – žarišna duljina i bliska i udaljena ravnina Žarišna duljina je svojstvo koje određuje polje vidljivosti kamere

Renderiranje Renderiranje zahtijeva tri transformacije Vidljiva transformacija (eng. view transformation) – kod ove transformacije kamera se pozicionira i orijentira Transformacija modela (eng. model transformation) - ovom transformacijom se postavlja scena u odnosu na kameru Transformacija projekcije (eng. projection transformation) koja se temelji na unutarnjim karakteristikama kamere – primjerice žarišna duljina

Renderiranje Processing postavlja set transformacija tako da se slika u 3D podudara sa 2D koordinatnim sustavom To je korisno zbog integracije 2D-a i 3D-a u Processingu, iako se razlikuje od ostalih 3D okolina, ali omogućava da se model originalno značajno translatira u prednjem dijelu slike te da na njega ne treba više primjenjivati transformacije kako bi izgledao ispravno

Ostale 3D funkcije Materijali Manipulacija kamerom Funkcija lightSpecular() postavlja reflektirajuću boju svjetla Boja svjetla je interaktivna sa kvalitetom regleksije površine materijala kroz specular() funkciju. specular() funkcija postavlja reflektirajuću boju materijala Manipulacija kamerom Pozicija i orijentacija kamere se postavlja sa camera() funkcijom. Postoji ukupno devet parametara grupiranih u grupe od tri koji kontroliraju poziciju kamere, kamo je okrenuta (kamo gleda) i orijentaciju.

Ostale 3D funkcije Osvjetljenje Funkcija koja kreira posebno svaki tip svjetla ima različite parametre jer je svako svjetlo jedinstveno. pointLight() funkcija koristi ukupno šest parametara – prva 3 postavljaju boju, a druga tri posziciju svjetla spotLight() funkcija je najkompliciranija. Ima jedanaest parametara za postavljanje boje, pozicije, smjera, kuta i gustoće (zasićenosti). Svjetla se uvijek resetiraju na kraju draw() i trebaju se ponovno računati directionalLight() funkcija ima 6 parametara. Prva tri postavljaju boju, a druga tri smijer u kojem svjetlost svijetli

Ostale 3D funkcije Texture mapping Texture() funkcija postavlja teksture koje se primjenjuju kroz vertex() funkciju Pojedine verzije vertex() funkcije sa pet parametara koriste prva tri za definiranje (x, y, z) kooridnata, a preostale dvije za definiranje (x, y) koordinata tekstura slike koje se mapiraju Sinus i kosinus vrijednosti koje definiraju geometriju primjenjivanja tekstura na površinu su prethodno definirane unutar setup() funkcije, tako da se ne trebaju svaki puta ponovno proračunavati kroz draw() funkciju

Aplikacija Na webu...