Ugrás a tartalomhoz

3D megjelenítési technikák

Dr. Fekete Róbert Tamás, Dr. Tamás Péter, Dr. Antal Ákos, Décsei-Paróczi Annamária (2014)

BME-MOGI

A képszintézis alapfogalmai

A képszintézis alapfogalmai

Ha a geometriai modelleket szeretnénk megjeleníteni a számítógép képernyőjén, akkor tisztáznunk kell azokat a fogalmakat, amelyekkel nemcsak a testek geometriáját, hanem annak megvilágítását, a test felületének fényvisszaverő tulajdonságait is modellezhetjük. A modellezés érdekében részletesebben megismerkedünk a fény és a színek tulajdonságaival, a fényforrások egyszerű modellezésével, a testek anyagának fénytani viselkedésének leírásával és végül egy megvilágított térrész megjelenésének komplex modellezésével.

Fénysűrűség

A fluxus definíciószerűen egy adott felületen átáramló energia mennyisége, melynek mértékegysége Watt. Ha a fényáramot v vektor jellemzi, akkor az A felületen áthaladó fluxus ϕ.

 

(3.112)

A fénysűrűség jellemzésére azonban nem jó mérték a fluxus, mert annak mértékét a fénysugár és a felület normálvektorának iránya, valamint a felület nagysága is befolyásolja. Ahhoz, hogy kezelhető mennyiséget kapjunk, szükséges a látószög térbeli általánosítása, a térszög.

Adott ponthoz képest a térben elhelyezkedő felületdarab nagyságát jellemezhetjük az adott pont köré képzelt egységgömb egy részével, azzal a résszel, ami pontosan eltakarja a felületdarabot a középpontból nézve. Ezt számszerűsíthetjük is (3.32. ábra - A térszög). Az ábrán dA-val jelölt felületdarab normálisa és a gömb középpontjából húzott sugár bezárt szöge ϴ. Ha a felületdarab középpontja r távolságra van az egységgömb középpontjától, akkor a térszög [3.6.].

 

(3.113)

hiszen a dA felületdarab csak dAcosϴ nagyságot mutat a középpont felé, és a gömb felülete sugarának négyzetével (r2-tel) arányos. A térszög mértékegysége a m2/m2=1, a szteradián. A szteradián a radián térbeli általánosítása.

3.32. ábra - A térszög

A térszög


A térszöggel már definiálhatjuk a fénysűrűséget, vagy radianciát. A radiancia a fluxus a felület és a térszög szerinti vegyes deriváltja osztva a az aktuális felületdarab ϴ cosinus-ával.

 

(3.114)

Mértékegysége Watt/m2/sr.

Fényforrások

Ahhoz, hogy megvilágított objektumokat rajzoljunk először a megvilágítást kell modelleznünk.

Pontszerű fényforrás (Point Light)

A pontszerű fényforrásnek nincs kiterjedése, és minden irányban azonos fényáramot sugároz. A led fényforrások, a villanykörték a fény forrásától elég távolról vizsgálva pontszerűnek tekinthetők. Egy térben elhelyezett ponttal (xL) modellezhetjük ezeket. Legyen egy felületünk, melynek a megvilágított x pontját vizsgáljuk (3.33. ábra - Pontszerű fényforrás). Világos, hogy a pontszerű fényforrásból kiinduló energia annál kisebb hányada jut a vizsgát felületre, minél messzebb van a felület. Mivel a sugárzott energia a fényforrás középpontú gömb felületén halad keresztül, a gömb egy felületdarabjára jutó energia a gömb felületével fordított arányban csökken, a gömbfelület pedig a sugár (r) négyzetével arányos. Ha azt is figyelembe vesszük, hogy nincs igazi fényforrás, akkor azt mondhatjuk, hogy a felületre jutó energia az r=|x-xL| (3.33. ábra - Pontszerű fényforrás) sugár másodfokú polinomjával fordítottan arányos. Az x pontban a fényáram tehát

 

(3.115)

ahol a, b és c paraméterek megválaszthatók a modellezés során. Ha a fénysugár irányát is figyelembe vesszük, akkor azt mondhatjuk, hogy a felületi pont megvilágítása, mint vektormennyiség (I)

 

(3.116)

3.33. ábra - Pontszerű fényforrás

Pontszerű fényforrás


A felületdarab megvilágításának erőssége x pontban (L(x)) függ attól is, hogy a beérkező fénysugarak milyen szöget zárnak be az adott pontban értelmezett normálissal (n).

 

(3.117)

Irány (párhuzamos) fényforrás (Direction Light)

Ha egy nagyon távoli pontot képzelünk el (vagy egy nagyon távoli sugárzó testet, mint a Nap), akkor azt úgy modellezhetjük, hogy a megvilágított felület környékén a fényáram konstans (i). Van azonban iránya, ami nem más, mint a végtelen távoli pont iránya, amely megegyezik a beeső fénysugarak L irányvektorával. A fényáram tehát irányfüggő i(L).

 

(3.118)

Ezt is ábrázolhatjuk irányfüggő vektormennyiségként (a 3.34. ábra - Irány fényforrás alapján I(L), ahol I iránya megegyezik az L iránnyal, a fényáram pedig i.)

 

(3.119)

Az előzőkhöz hasonlóan a felületdarab megvilágítása x környékén

 

(3.120)

3.34. ábra - Irány fényforrás

Irány fényforrás


Ambiens fényforrás (Ambient Light)

Az ambiens fény egy olyan modellje a szórt fénnyel történő megvilágításnak, ahol minden pontot, minden irányból azonos fényárammal és színnel világítunk meg (3.35. ábra - Ambiens fényforrás).

3.35. ábra - Ambiens fényforrás

Ambiens fényforrás


Ezt a modellt arra használjuk, hogy a modellezett objektumok kapjanak egy alap megvilágítást. A felület minden pontjában a fényáram tehát állandó.

 

(3.121)

Ebben az esetben a pontok megvilágításának erőssége, mivel nem függ sem a helytől, sem az iránytól

 

(3.122)

Égboltfény (Sky Light)

Az irány fényforrás jellegzetessége a konstans fényáram, párhuzamos sugarakból álló megvilágítás, mint a napfény. Az égboltot is a napfény világítja meg, azonban felhők és épületek árnyékot vethetnek, azaz a különböző területeken más és más állandó párhuzamos fény világít (3.36. ábra - Az égboltfény).

 

(3.123)

3.36. ábra - Az égboltfény

Az égboltfény


Hasonlóan az irányfényhez az égboltfény is vektormennyiséggel ábrázolható I(L,x), ahol I iránya megegyezik az L iránnyal, a fényáram pedig x-től függ.

 

(3.124)

Az előzőkhöz hasonlóan a felületdarab megvilágítása x környékén

 

(3.125)

Reflektorfény (Spot Light)

A gépkocsik reflektora vagy az elemlámpák fénycsóvája modellezhető, mint egy pontszerű fényforrás („Pontszerű fényforrás (Point Light)”) fénysugarai, lehatárolva egy parabolikus vagy kúpos tükörrel. A fényforrás sugarai nem tudják megkerülni a tükröt, és a fényáram a fényforrás tengelyétől távolodva (a 3.37. ábra - Reflektor fényforrás ábrán szög) csökken

 

(3.126)

(3.126) egyenletben r=||x-xL||, m egész szám az a(α) a ψ–nek ablakfüggvénye (ha a szög kisebb, mint ψ, akkor a függvényérték 1, egyébként 0)

 

(3.127)

3.37. ábra - Reflektor fényforrás

Reflektor fényforrás


Ugyanúgy, mint a pontszerű fényforrásoknál a fényáram vektormennyiség.

 

(3.128)

Figyelembe véve a felületi normálist n.

 

(3.129)

Anyagok, visszaverődés

A különböző anyagok tükrözik, szétszórva visszaverik, megtörik vagy elnyelik a fénysugarakat. Az anyagok ilyen viselkedését modellezhetjük a kétirányú visszaverődés-eloszlás függvénnyel. Ennek angol rövidítése a BRDF (Bidirectional Reflection Distribution Function).

A BRDF

Ha egy felület x pontjába a tér egy ωBE irányából érkezik egy adott hullámhosszú fénysugár, akkor a felületi ωKI irányból szemlélve a két fényáram segítségével definiálhatunk egy, az ωBE, ωKI és x változóktól függő függvényt. Nicodemus definiálta [3.10.].

 

(3.130)

ahol az ωBE a beeső térszög, az ωKI a kilépő térszög, LBE a belépő, LKI a kilépő fényáram, n a felület normálisa a visszaverődés helyén, Θ pedig a felületi normális és a belépő fénysugár szöge (3.38. ábra - A visszaverődés).

3.38. ábra - A visszaverődés

A visszaverődés


Ha a (3.130) egyenletben átrendezünk és integrálunk, akkor azt kapjuk, hogy

 

(3.131)

azaz egy pontból kilépő intenzitás egy összeg. Összegezni kell a pontba belépő összes fényáram-értéket szorozva az fr BRDF értékkel és a beeső sugarak beesési merőlegessel bezárt szögének koszinuszával.

A fizikai tartalom miatt a BRDF nem negatív. A visszaverődés nem vonhat el fényt a szemlélőtől.

 

(3.132)

Szintén a fizikai tartalom miatt a

 

(3.133)

hiszen a passzív anyag nem termelhet fényt. A (3.133) egyenletben az integrál kifejezést albedónak hívjuk. Ez viszont azt jelenti, hogy a (3.133) integrandusa éppen egy eloszlásfüggvény. Innen ered a BRDF elnevezés is. Így a (3.134) kifejezés éppen azt a valószínűséget definiálja, hogy a ωBE irányból érkező sugár az ωKI irány körül térszögben távozik [3.6.]. Jelölje ωKI irány körül átmérőjű környezetét !

 

(3.134)

A BRDF értékére fennáll a Helmholz-féle szimmetria összefüggés [3.11.], mely azt mondja ki, hogy a BRDF kifejezésben a fénysugár iránya megváltoztatható (3.134).

 

(3.135)

Ha a (3.131) egyenletet egyetlen fénysugárra vizsgáljuk, eltekintünk a teljes Ω téren történő integrálástól akkor azt kapjuk, hogy

 

(3.136)

Ha (3.136)-ból kifejezzük a BRDF értéket, akkor az egyszerűsített, egyetlen sugárra vonatkozó BRDF értéket kapjuk.

 

(3.137)

Az egyszerűsített DRDF definíciót használva megvizsgáljuk a különböző diffúz, tükröződő, fénytörő és spekulárisan tükröződő anyagok tulajdonságainak modellezését.

Diffúz anyagok jellemzése

A fal például diffúz módon veri vissza a fényt. Ennek lényege, hogy a beérkező, adott hullámhosszú fénysugár esetén minden irányban egyforma fényáram távozik. Az, hogy mi mennyire látjuk a falat világosnak, az csak attól függ, hogy honnan világítjuk meg. A Lambert-törvény írja le a fal, mint diffúz felület megvilágítás hatására történő viselkedését. Legyen megvilágítva a fal ω-irányból IBE(λ) fényárammal. Bárhonnan szemlélve a felületet az IKI(λ) fényáram csak a megvilágítás irányától és az anyag hullámhossztól függő k(λ) jellemzőjétől függ.

3.39. ábra - Diffúz visszaverődés

Diffúz visszaverődés


A Lambert-törvény tehát

 

(3.138)

Ha a (3.138) Lambert-törvényt összevetjük a (3.136) egyszerűsített egyenlettel, akkor azt kapjuk, hogy a diffúz felületek BRDF kifejezése adott hullámhosszon csak a fény hullámhosszától függ.

 

(3.139)

Reflexív anyagok, ideális visszaverődés

Ha egy tükröt egy fénysugárral megvilágítunk, a tükör azt a fénysugarat úgy veri vissza, hogy a visszavert sugár benne fekszik a beeső fény és a beesési merőleges által meghatározott síkban és ugyanakkora szöget zár be a beesési merőlegessel, mint a bejövő fénysugár. A fenti viselkedést formalizálhatjuk a Lambert-törvény (3.138) megfogalmazásának megfelelően,

 

(3.140)

ahol a szimbólum a Kronecker-szimbólum, azaz

 

(3.141)

3.40. ábra - Ideális visszaverődés

Ideális visszaverődés


A (3.140) kifejezést összevetve (3.136)-tal, adódik, hogy a tükrös felület esetén a BRDF

 

(3.142)

A (3.142) kifejezésben a a tükröződő anyag Fresnel-együtthatója, azt adja meg, hogy a tükör a beeső fényáram hanyadrészét veri vissza [3.5.].

Ideális törés

A fénytörésről szóló Snellius-Descartes-törvény [3.12.] szerint a beeső fénysugár, a beesési merőleges és a megtört fénysugár egy síkban helyzkednek el. A merőlegesen beeső fénysugár nem törik meg. Végül a beesési szög (α) szinuszának és a törési szög (β) szinuszának aránya a közegekben mért terjedési sebességek (c1,c2) arányával egyenlő, ami megegyezik a két közeg relatív törésmutatójával (n2/n1=n2,1). Lásd 3.41. ábra - Fénytörés közegek határán.

 

(3.143)

Ebben az esetben a Lambert-törvényhez hasonlóan formalizálva a (3.140)-t írhatjuk, hogy

 

(3.144)

illetve

 

(3.145)

3.41. ábra - Fénytörés közegek határán

Fénytörés közegek határán


Phong illuminácós modell

A fényvisszaverő anyagok általában sem tisztán diffúz módon („Sugárkövetés” fejezet), sem tisztán reflexív módon („Inkrementális képszintézis, egyszerűsített árnyalási egyenlet” fejezet) verik vissza a fényt, hanem a kettő között valahogy. Az ilyen felületeket spekuláris felületeknek nevezzük, és a visszaverődés leírása Phong nevéhez köthető. Phong modellje szerint a visszaverődés nagy része az elméleti visszaverődés irányában és annak környezetében történik [3.12.].

 

(3.146)

Ahol a ψ szög az elméleti visszaverődési irány és a ránézés szöge közt mérhető szög.

3.42. ábra - Phong-féle modell

Phong-féle modell


Ennek alapján a BRDF Phong-modell esetén.

 

(3.147)

Az árnyalás modellezése

Ha az árnyalást modellezni akarjuk, nagyon nehéz feladatunk van, hiszen egy test megvilágítása függ a környezetétől, azonban a test hatással van a környezetésre is.

Az árnyalási egyenlet

Ha a BRDF (3.130) definícióját kibővítjük azzal, hogy a térben még fénykibocsátó pontok is lehetnek (LE), valamint a teljes reflexió függ a λ hullámhossztól és a t időtől, akkor a szembe érkező fényáram valamint a f BRDF akármilyen lehet a fenti modellek közül az adott pontban

 

(3.148)

A (3.148) egyenletet szokás árnyalási egyenletnek nevezni. Mivel az integrálegyenlet mindkét oldalán szerepel az ismeretlen L() függvény, ennek csak egyszerűsítések melletti numerikus megoldása lehetséges [3.6.]. Most csak egy egészen egyszerű közelítéssel, a sugárkövetéssel és az úgynevezett lokális illuminációval foglalkozunk.

Sugárkövetés

Ha a képernyő pixeleire egyenként, a fényforrásokból kiinduló, pixelen átmenő fénysugarak útját a fényforrásokból kiindulva az objektumok – a „Az árnyalás modellezése” fejezetben leírtaknak megfelelően – modelljén megtörve vagy áthaladva vizsgáljuk, azt sugárkövetéses módszernek hívjuk. Mivel egy fényforrásból is végtelen sok irányban indulhat fénysugár, ez még diszkrét közelítéssel is, követve egészen a képig, vagy a vizsgált térből való kilépésig, kizárja a valós idejű szimulációt.

A fordított sugárkövetés esetén a kép pontjainak meghatározásához a fény haladásával ellenkező irányban járhatjuk végig a fény útját, a képernyőtől a fényforrásokig haladva. Csak azokat a fénysugarakat vesszük figyelembe, amelyek a fényforráshoz érnek.

Inkrementális képszintézis, egyszerűsített árnyalási egyenlet

Sokkal egyszerűbb kifejezést kapunk, ha eltekintünk a hullámhossztól és az időtől való függéstől. Elhagyunk még a (3.148) egyenletből minden csatolást (a jobb és bal oldalon is szerepel a fényáram, illetve, hogy egy objektum megvilágítása saját visszavert fényétől is függ). Feltételezzük azt is, hogy a képen látható felületekre csak a fényforrásokból közvetlen módon érkezik fény, csak az l darab fényforrásra kell összegezni az adott felületpontba érkező fénysugarakat, és azokat az f BRDF-fel figyelembe venni. A (3.149) képletben szerepel egy úgynevezett ambiens fény, amivel a nem figyelembe vett térbeli megvilágításokat kompenzálhatjuk (LA). Ennek a felület kA-szorosát veri vissza minden irányba [3.6.].

 

(3.149)

Felületek közelítő árnyalása

Ha az egyszerűsített árnyalási egyenlettel is számítjuk a felület pontjainak megjelenését, akkor is a felületeknek végtelen sok pontjuk van, így ez is megoldhatatlan feladat. Ha az árnyalást csak a felületek bizonyos pontjaiban számítjuk ki, és a köztes pontban a felület színét, fényességét a kiszámított pontok alapján interpoláljuk, akkor eredményre jutunk. A Gouraud-árnyalás a felületeket háromszögekkel közelíti, és a háromszögek csúcsaiban számítja csak a pontok megjelenését. A háromszögeken belül lineáris interpolációval számítjuk a megjelenést a sarokpontok alapján.

A Phong-féle árnyalás szintén a háromszögek sarokpontjaiból indul ki, a sarokpontokban kiszámítja a normálvektort, és feltételezi, hogy a belső pontokban a normálvektor a sarokpontok normálvektorainak interpolációjából számítható.

Fénysugarak haladása nem átlátszó térben

Tegyük fel, hogy az egyenes vonalban haladó L(s) fényáram haladási irányában valós fényelnyelő közegen (például poros levegő, felhő köd) halad át, míg a szemünkhöz ér, vagy a fény egy fénykibocsátó anyagon (ilyen például a tűz) halad át, illetve más irányból érkező fényáramok is folytathatják útjukat a vizsgált irányban. Ezekben az esetekben a 3.43. ábra - Fénysugarak haladása nem átlátszó térben. szerint egy Δs útszakaszon megváltozik a fényáram, L(s+Δs) lesz.

A fény megtörhet a fényelnyelő anyagon, és a Δs útszakaszon ezt az egy egységnyi hosszon történő κos fényáram-szórási tényezővel vehetjük figyelembe, így a fényáram κos *L(s)*Δs értékkel csökken.

Ha a fénykibocsátó anyagon keresztül vezet, aminek önálló fényárama a kérdéses irányban Le, akkor ezt egységnyi hosszon κE tényezővel figyelembe véve a fényáram κE*LE*Δs értékkel nő.

Ha más irányból érkező, a fényszóró anyagon megtört fénysugár a vizsgált irányban folytatja az útját, akkor az a Δs hosszon LIS(s)* Δs értékű fényáram-növekedést okoz.

3.43. ábra - Fénysugarak haladása nem átlátszó térben.

Fénysugarak haladása nem átlátszó térben.


Ha felírjuk a fényáramot az s és az s+Δs pontokban, akkor

 

(3.150)

azaz, ha Δs minden határon túl csökken, akkor

 

(3.151)

Természetesen a (3.151) egyenlet csak akkor oldható meg egyszerűen ha LIS független L-től, és csak egyetlen irányt vizsgálunk, egyébként csak tovább bonyolítottuk a (3.149) árnyalási egyenletet.