Отпремање презентације траје. Молимо да сачекате

Отпремање презентације траје. Молимо да сачекате

3D grafika u Processingu

Сличне презентације


Презентација на тему: "3D grafika u Processingu"— Транскрипт презентације:

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

2 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).

3 Uvod Bézierova krivulja sa jednom kontrolnom točkom

4 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

5 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

6 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

7 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

8 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

9 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

10 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...

11 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

12 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

13 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

14 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

15 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

16 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)

17 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

18 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

19 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

20 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

21 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

22 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

23 3D

24 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

25 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

26 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

27 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

28 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

29 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.

30 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

31 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

32 Aplikacija Na webu...


Скинути ppt "3D grafika u Processingu"

Сличне презентације


Реклама од Google