|
Zapreminska reprezentacija
Zapreminski načini modeliranja konstruišu objekte iz skupa 3D osnovnih zapremina umjesto da kreiraju graničnu površinu koja zatvara željenu zapreminu. Dva glavna pristupa su konstruktivna čvrsta geometrija (CSG -constructive solid geometry) i šeme prostorne podjele. Druga tehnika ima ograničenu primjenu u komercijalnoj kompjuterskoj animaciji, iako u zadnje vrijeme postaje važna u naučnoj i medicinskoj vizualizaciji.
Posljedica ovih alternativnih šema je da one utiču na algoritme potrebne za generisanje finalne slike i opseg efekata za animaciju koje je moguće kreirati. Sada ćemo razmotrimo ideje vezane za CSG.
Konstruktivna čvrsta geometrija
Konstruktivna čvrsta geometrija ili set-theoretic modeliranje pokušava da napravi objekat od malog skupa 3D formi kao što su box, sfera, cilindar, konus, torus i heliks. Ovo može izgledati kao nemoguć zadatak što u nekim primjenama i jeste, kao npr. u modeliranju ljudskog lica. Zato se ova tehnika koristi u modeliranju scena koje imaju inherentnu geometrijsku formu. Npr. neke mehaničke komponente ili arhitektonske strukture se mogu napraviti pomoću CSG-a.
Jedna od neobičnih osobina ove tehnike je sposobnost sabiranja i oduzimanja zapremina, kao i identificiranje zapremine prostora koju dijele dvije primitive koje se sijeku. Počnimo sa razmatranjem operatora unije koji kombinira dva objekta.
..(1)
slika 5
Npr. recimo da je potrebno napraviti objekat sa slike 5a. Možemo vidjeti da se on sastoji od tri blok elementa A, B i C, ali ako su B i C identični, onda se može zamisliti da se objekat sastoji od dva bloka A i D koji se presijecaju, kao što je prikazano na slici 5b. Koristeći notaciju CSG-a, finalni objekat se konstruiše kao unija A i D kao što je pokazano dijagramom stabla na slici 6.
..(1)
slika 6
Kao drugi primjer razmotrimo objekat pokazan na slici 7a - to je blok koji sadrži rupu. On može biti definiran koristeći operaciju razlike koja oduzima jednu zapreminu od druge i pokazana je na slici 7b zajedno sa dijagramom
..(1)
slika 7
Na kraju, operacija presjeka identificira zapreminu koju dijele dva objekta koja se sijeku. Slika 8a ilustrira objekat koji može biti određen zajedničkim prostorom koji dijele dva objekta A i B na slici 8b. Pomoću unije, razlike i presjeka mogu se napraviti i mnogo kompleksnije strukture.
..(1)
slika 8
Gornja šema izgleda snažna i jeste, ali da bi radila potreban je mehanizam koji bi je implementirao u kompjuterskom okruženju, gdje stupaju na scenu gometrija i matematika.
Iako postoji jednačina sfere, nema ekvivalentne jednačine za box, međutim moguće je izvesti jednu jednačinu iz druge. Razmotrimo jednačinu ravni: ax + by + cz +d = 0 Ako se za a, b i c uzmu određene vrijednosti kao što su a = 0, b = 0, c = 1 i d = 0, onda jednačina postaje
0x + 0y + z = 0 Postoji beskonačan broj tačaka koje zadovoljavaju ovu jednačinu i bez obzira na vrijednosti x i y, z mora biti 0. Geometrijski, ova jednačina definira ravnu površinu paralelnu x i y osama, gdje je z = 0, kao što je prikazano na slici 9.
..(1)
slika 9
Ako razmotrimo izraz na lijevoj strani jednačine, još jednom ćemo primijetiti da bez obzira na vrijednosti x i y, ako je vrijednost z pozitivna, izraz će biti pozitivan, a ako je vrijednost z negativna, izraz će biti negativan. Mijenjajući znak jednakosti za različite vrijednosti koordinata, otkrivamo da je prostor podijeljen na dva dijela pomoću ravni, odvojen gdje je jednakost zadovoljena. Slika 10 ilustruje taj efekat dijeljenja, odakle postaju dva poluprostora. CSG koristi dijeljenje prostora za konstruisanje svojih zapreminskih primitiva.
..(1)
slika 10
Kao primjer, jedinična kocka se može konstruisati iz presjeka šest ravnih površina. Slika 10a ilustrira izraze izvedene iz jednačina ravni za prve tri ravni, a slika 10b za
druge tri ravni. Primijetimo da su izrazi uređeni tako da je njihov pozitivni poluprostor unutar zapremine kocke. Bilo koja tačka (x, y, z) biće unutar kocke ili na njenoj površini, ako svih šest izraza ima vrijednost koja je pozitivna ili nula:
0x + 0y + z >= 0 0x + y + 0z >= 0 x + 0y + 0z >= 0 0x - y + 0z + 1 >= 0 -x + 0y + 0z + 1 >= 0 0x + 0y - z + 1 >= 0
Zamijenimo npr. tačku (1, 1, 1) (koja je vrh kocke) u gornjim izrazima. Njihovo razvijanje proizvodi : 1, 1, 1, 0, 0, 0 koji su 0 ili pozitivni, što znači da tačka nije unutar kocke. Međutim, tačka (2, 1, 1) koja je izvan kocke, proizvodi vrijednosti: 1, 1, 2, 0, -1, 0 koje sadrže negativnu vrijednost, potvrđujući da je tačka vani. Renderer sada može upotrijebiti ovaj rezultat da identificira tačke koje leže na površini objekta.
Druga snažna osobina CSG načina modeliranja odnosi se na mogućnost ispitivanja unutrašnjosti objekta (pretpostavljajući da je on već modeliran). Ovo je postignuto presijecanjem objekta sa ravni koja ga dijeli na dva dijela, i tako je moguće vidjeti detalj koji postoji samo na jednoj strani površine. Ova osobina omogućava kreiranje animacija koje uključuju kretanje po unutrašnjosti objekta...(1)
...(4)
slika 11 |
|