Megvilágítások a virtuális valóságban Sikné Lányi Cecília Pannon Egyetem, Virtuális Környezetek és Fénytan Laboratórium lanyi@almos.uni-pannon.hu Absztrakt Fotórealisztikus virtuális környezeteket fejlesztve, pl. 3D animációk egy játékban, vagy virtuális valóság terápiákban [1] nemcsak arra kell fókuszálni, hogy a végfelhasználó igényeinek megfeleljünk, valósághű modelleket fejlesszük, a valósághoz hasonló textúrákat használjunk stb., hanem a korrekt megvilágítás szimulálására is törekednünk kell. Milyen megvilágítás való egy jelenetbe? Milyen a fény minősége? A válasz egyszerűen lehetne: lágy, intenzív, színes, csökkenő intenzitású [2]. Milyen a fotórealisztikus megvilágítás? A legtöbb ember nem is tudja, hogy a valóságban a különböző fényforrásoknak más és más a színe a fényforrás színhőmérsékletétől függően [3]. Mi nem realizáljuk ezt a színkülönbséget, mert a szemünk automatikusan adaptálódik ehhez. A látásunk a fényforrások színkülönbségét automatikusan korrigálja, így a fehér obejktumok fehérnek látszanak a legkülönbözőbb sárgás-fehér illetve kékes-fehér megvilágítások alatt is [3]. Ezt a virtuális valóságban a renderelő programnak kell megtennie. Másrészt ha (érzelmi ráhatással) is szeretnénk hangsúlyozni azt a jelenetet, amiben a megfigyelő van, például egy ködös vagy hajnali szürkületi utcai megvilágításban, vagy Disco fényekkel megvilágított környezetben, további megfontolások is szükségesek. Jelenleg nem minden rendelési technika számítja valós fizikai törvények alapján a megvilágítást, ezért nem mindig optimális a jelenet renderelése. Megvilágítani egy jelenetet egy 3D virtuális környezetben hasonló, mint megvilágítani egy fotográfus egy film vagy színházi jelenet számára. A kreatív tervezésnek már az első lépésénél figyelembe kell venni a megvilágítás alapvető befolyásoló hatását, és nem a jelenet megalkotása után később hozzátenni azt [4]. A színek és a fények az egyik legkritikusabb kérdés és az egyik legkomplikáltabb eleme a 3D virtuális környezet fejlesztésének. Ehhez meg kell értenünk az optika, a fizika, az informatika, az emberi érzékelés és a művészet lényeges aspektusait is. A fizikai való világban a festőművész nem törődik azzal, hogy a keze a ruhája festékes lesz, a szobrász már lelki szemeivel látja a szobrot a durva kőben. Egy 3D animátornak vagy informatikus mérnöknek mindent tudnia kell arról a programról és renderelésről, amivel dolgozik. Ez a cikk bemutatja az alapvető tudnivalókat a virtuális világok megvilágítási technikáihoz. 1. Definíciók Virtuális környezet: Egy szintetikus, térbeli (általában 3D) a felhasználó nézőpontja szerinti világ. Egy virtuális környezetben a látvány a felhasználó valósidejű kontrollja alatt áll. A virtuális valóság, vagy virtuális világ többé kevésbe azonos kifejezések, szinonimaként használatosak a virtuális környezettel [5]. Multi-szenzoros virtuális környezetek zárt rendszerek, melyek magukban foglalják az embert és a számítógépet az interfészek által, melyek biztosítják a folyamatos információ áramlást. Még speciálisabban megfogalmazva a virtuális környezetek abban különböznek más szimulációs rendszerektől, hogy képesek három dimenziós információ (3D) térbeli ábrázolásra különböző modalitásokon keresztül, kiaknázva a felhasználó természetes adatbeviteli módját az ember számítógép kapcsolatokkal, és kiemeli azon képessége, hogy a felhasználót belemerítse a virtuális világba [6]. Mi a fény? A látható fény valójában csupán egy kis tartománya az elektromágneses sugárzásnak. Ez a sugárzás hullámokban érkezik hozzánk különböző hullámhosszakon. A hullámhosszakban lévő különbség, az ami megkülönbözteti a kék, a vörös színű fényt, a gamma sugarakat, a röntgen sugarakat, a rádióhullámokat stb. (1. ábra). A fehér fény az összes szín kombinációja a látható tartományon belül. Amikor egy tárgyat például pirosnak érzékelünk, ami valójában úgy történik, hogy fehér fény sugároz egy piros színű felületre és a felület elnyeli az összes más hullámhosszú fényt, kivéve a pirosat. Csak a spektrum piros része verődik vissza. 27
1. ábra: Az elektromágneses spektrum ([7] http://science.howstuffworks.com/light3.htm) 2. Megvilágítás a MAYA szoftverben A megvilágítás egy Maya jelentben, színtérben hasonló egy megvilágításhoz egy fotográfiai műteremben vagy film felvételekor, vagy mint egy színházi előadásban. A világítást, mint a tervezés egyik elemét nem a jelent megalkotása után kell hozzátenni a színtérhez, hanem már a jelent megtervezésének első lépésétől fogva figyelembe kell venni. Ez tipikusan igaz a számítógépes grafikában is, ahol a megvilágítás matematikai algoritmusokon alapul, hogy valós világbeli megvilágítási effektusokat lehessen produkálni az alkalmazott szoftver minimális ismeretére is szükségünk van. 2.1 Megvilágítási koncepció [4] A jó megvilágítás alapfeltétele a helyes tervezés. A megvilágítás az objektumoknak, a karaktereknek jelentést ad az ő környezetükben. Ez egy megfelelő és célzatos atmoszférával is felruházza a jelenetet, amit a néző logikusan értelmez. A megvilágítás megtervezése szorosan összefügg a megvilágítás fizikai természetével. Ezt a megvilágítás intenzitásával, színével, irányával lehet kontrollálni, így a megvilágítás egy kulcstényező egy jelenet megalkotásában. A világosabb és sötétebb területek segítenek egy keretet adni és vezetni a néző tekintetét bizonyos objektumokra és akciókra. 2.2 A megvilágítás kiválasztása [4] Ha már egyszer megterveztük, hogy honnan érkezik a fény, milyen irányokból a színtérben, még a különböző fényforrás típusokat is meg kell határozni. A professzionális 3D szoftverek felkínálnak különböző fényforrásokat, amelyek különböző attribútumokkal rendelkeznek. Az attribútumok paramétereit módosítva animálhatunk és szimulálhatunk valós világbeli fényforrásokat, megvilágításokat. Ezek a fényforrások a legkülönbözőbb megvilágítást produkálhatják a lágytól az intenzív éles megvilágításon keresztül, mivel ezek különböző tulajdonságokkal rendelkeznek. Valószínűleg mivel minden jelenetben ezekből a meglévő lehetőségekből variáljuk az adott megvilágítást, a tervezési koncepciók az éles megvilágítástól a lágy megvilágításig, a különböző nyílásszögeken keresztül az intenzitásig és árnyékolásig ugyanazok. A cikkben bemutatjuk a következő megvilágítás típusokat: irányfény (Directional light) pontfény (Point light) szórt fény (Ambient light) fényszóró (Spot light) területi fény (Area light) térfogati fény (Volume light) 28
A következőkben bemutatjuk ugyanazt a kerékpár modellt, ami Maya szoftverrel készült, de különböző megvilágításokkal [4]. (Megjegyzés: nem minden megvilágítás típusnak van már elfogadott magyar elnevezése, ezért a következőkben mindig szerepel az angol elnevezés is.) 2.2.1 Directional Lights (Irányfény) 2. ábra: Irányfény [4] A 2. ábrán látható irányfény ikonja párhuzamos fénysugarakat ábrázol. Ez azért van, mert az irányfény célja egy távoli fényforrás szimulálása, mint a Napé, ahonnan a fénysugarak párhuzamosan érkeznek. Ezt a fényforrás élesebb sokkal intenzívebb megvilágítást produkál éles árnyékokkal, nincs lágy árnyékolás a felületen, mert a fénysugarak intenzitása nem gyengül. Az irányfény renderelése nem számításigényes, mert a fénysugarak párhuzamosak, a beesési szögük állandó és nem kell elhalványulást számítani. 2.2.2 Point Lights (Pontfény) 3. ábra: Pontfény [4] A pontfény ikonja egy pontszerű fényforrást ábrázol, ahonnan a fénysugarak minden irányba világítanak. Ennek a megvilágítás típusnak az a célja, hogy egy helyi irányfényt szimuláljon, mint például egy villanykörte vagy gyertya fénye. Ennél a fényforrásnál a fény intenzitása csökken és sokkal titokzatosabb gazdagabban árnyalt felületeket eredményez. 2.2.3 Ambient Lights (Szórt fény) 29
4. ábra: Szórt fény [4] A szórt megvilágítás, mint egy nem irányfény használatos a szórt sugarú és visszaverődő fény (mint ahogy azt az életben is tapasztalajuk) szimulálására. A szórt megvilágítás nagyon gyorsan renderelhető, mert nincs elhalványulása és egy csúcsfényt eredményez. Gyakran, mint egy másodlagos fényforrásként használatos egy erősebb megvilágítás pl. fényszóró vagy irányfény támogatásra. 2.2.4 Spot Lights (fényszóró) 5. ábra: Spot light [4] A fényszóró egy bizonyos irányba mutató kúpban testesül. Ennek a kúpnak egy paraméterrel módosítható nyílásszöge van, melyet fokban mérünk. A fényszóró fénye a megadott szögtartományon kívül fokozatosan elhalványul, így keletkezik egy átmeneti, félárnyékos terület. 2.2.5 Area Lights (területi fény) 30
6. ábra: Területi fény [4] A pontfény, irányfény és fényszóró mind absztrakt fényforrások a jelenetben, mivel ezen fényforrásoknak nulla a méretük, és csak egy pontban léteznek a virtuális valóságban. De a valós világban természetesen ezen fényforrásoknak van valamekkora térfogatuk. Az area fény segít egy sokkal természetesebb fényeloszlást szimulálni. Az area fény kiszámításánál a fény egy adott területen belül visszatükröződik. (Természetesen az area fénynél számos probléma is felmerül, van néhány effektus, amit nehéz vele szimulálni, de itt nem megyünk bele a részletekbe.) 2.2.6 Volume Lights (térfogati fény) 7. ábra: Térfogati fény [4] A Volume fényforrás megvilágít egy objektumot egy adott térfogaton belül. Ez a térfogat lehet gömb, henger, hasáb vagy kúp. Ezen fényforrás alkalmazásának előnye, hogy vizuálisan érzékelhető a fény kiterjedése. Ezenkívül minden más fényforrással ellentétben itt az adott területet megvilágító fény színe jobban kontrollálható. 2.2.7 Alapfény/ fejfény Ha nincs fényforrás a jelenetben, akkor például a Maya önmaga alkot egy alapértelmezett irányfényt a jelenet rendereléséhez. Ez a fényforrás hozzá van rendelve a jelenet renderelésekor létrejövő kamerához, és megvilágítja a jelenetet a kamera nézőpontjából, ezért is nevezhetjük fejfények, mert azt szimulálja mintha a néző fején lenne egy fényforrás ami bevilágítja a jelenetet. A fény intenzitása 31
A fény intenzitását úgy is definiálhatnánk, mint a fény aktuális vagy viszonylagos világosságát. A legtöbb renderelési attribútumban ezt módosíthatjuk vagy egy csúszkával vagy a csatornába egy textúra leképezésével. 2.3 Elhalványulási ráták Az elhalványulás arra utal, ahogy a fény intenzitása a távolság függvényében csökken. A Maya-ban lehetséges megváltoztatni az elhalványulás mértékét a pontfény, és fényszóró esetében, úgy hogy beállítjuk az elhalványulás értékét a megvilágítás attribútum szerkesztőjében. Alapértelmezetten nincs elhalványulás. Az elhalványulás lehet lineáris, négyzetes illetve köbös. 8. ábra: Elhalványulási beállítások [4] No Decay: Nincs elhalványulás, a fény mindenhova azonos intenzitással világít Linear: lineáris, a fény intenzitása a távolság arányában csökken (I=1/d) Quadratic: négyzetes, a fény intenzitása úgy csökken, ahogy a valós világban (I=1/d*d) Cubic: köbös, a fény intenzitása gyorsabban csökken, mint a valós világban (I=1/d*d*d) Az elhalványulási faktor akkor lép életbe, ha a távolság nagyobb, mint 1 egység. Egyébként az elhalványítási faktor egy túlexponált jelenetet eredményez, ha a távolság kisebb mint 1 egység. 3 Szemléletes példák A 9. ábrán egyben mutatjuk meg a kerékpáros példát különböző megvilágítások esetén, így jól láthatjuk a különbségeket. 32
9. ábra: Ugyanazon kerékpármodell különböző fényforrás típusoknál, felső sor balról jobbra: Directional-, Point-, Ambient-, alsó sor: Spot-, Are-, és Volume fényforrás esetén. A 10. ábra hasonlóan szemlélteti a különböző megvilágításokat. 10. ábra : : Különböző fényforrás típusok szemléltetése, felső sor balról jobbra: Directional-, Point-, Ambient-, alsó sor: Spot-, Are-, and Volume fény [8]. Point Light (pontfény): Hasonló egy villanykörtéhez, minden irányba szórja a fénysugarakat. Directional Light (irányfény): Ennek a fénynek nincs elhalványulása, hasonló a Nap fényéhez. Mindent a színtérben egyenlő mértékben világít meg. Hagyjuk a fény intenzitását egyes értéken! Szűk árnyékot eredményez. Ambient Light (szórt fény): Ez a fényforrás jól használható, mint egy kitöltő fény. Segítségével sötét árnyékos területek hozhatók létre, ami arra irányul, hogy lapos felületeket hozhassunk létre. Nincs csúcsfény hatása. Kerüljük el, azt hogy ez legyen a fő fényforrás, mert alacsony kontrasztot hoz létre. Az alapbeállítása NAGYON rossz, be kell állítani a színét sötét szürkére. Spot Light (fényszóró): Ez a fényforrás egy kúpfényt hoz létre, megfigyelhető az éles fényterületet körülvevő elhalványulási terület, mint egy környező gyűrű. 33
Area Light (területi fény): Ezt a fényt fokozatosan lehet állítani annak megfelelően, hogy mekkora területet világítson be a fény. Figyeljük meg a hosszú téglalap alakú csillogó fényfoltot. Sugárkövetéshez a fény lágy árnyékokat produkál, bár ebben az esetben hosszabb ideig tart a renderelés. Volume Light (térfogati fény): Ezt a fényforrást annak megfelelően lehet beállítani, hogy mely területen belül világítson. A 11. ábrán mutatjuk be ismételten ezen fényforrások hatását. Minden fényforrásnál az alapértelmezett beállítással rendereltük le a jelenetben látható geometriai primitíveket. 11. ábra: A bal felső kép a Maya szerkesztő felülete, majd balról jobbra látható a felső sorban: Default-, Directional-, Point-, alsó sorban: Ambient-, Spot-, Area-, and Volume megvilágítás típusok. A 11. ábra utolsó képe szinte teljesen sötét csupán egy apró halvány fénypont látható, mert a volume fényforrás alapbeállítása túl kicsi (csupán pont méretű). 4. A fény színe Tudjuk, hogy valójában milyen színű a fény? Nyilvánvalóan tudjuk hogy működik a fény. A legkritikusabb ebben a működésben a fény színhőmérséklete. Igen a fénynek van hőmérséklete. Valójában ez az alapja a fotorealisztikus megvilágításnak. Például a természetes fény színe is változik napközben. Naplementekor és napkeltekor a fény pirosasnak tűnik (meleg szín), míg délben kékesnek (amit hideg színként érzékelünk). Ezek a változások a fény színhőmérsékletére utalnak, amit Kelvin (K) fokban mérünk. Meleg fénynél, mint napfelkeltekor és naplementekor alacsony a fény színhőmérsékleti Kelvin értéke, míg délben a napsütésnek magas a fény Kelvin színhőmérsékleti értéke. Valójában minden fényforrásnak van konkrét színhőmérséklete ezt szemlélteti a 12. ábra. 34
12. ábra: A fényforrások színhőmérséklete [3]. Mindezek mit jelentenek nekünk egy fotorealisztikus kép, jelenet megalkotásakor? Valójában, ha a valós világbeli fényforrások színhőmérsékletét alkalmaznánk a virtuális világbeli fényforrásokhoz egy abszurd, nem realisztikus Disco jelenetbeli megvilágítást kapunk. Igen a látásunk korrigálja a különbéget, de ez nem egy tökéletes korrekció, ami azt jelenti, hogy a látásunk észreveszi a nagyon finom, kis nüasznyi eltéréseket is, amikor egy fotorealisztikus képet, jelenetet próbálunk alkotni. Az első dolog ehhez, hogy meg kell állapítanunk azon fényforrás színhőmérsékletét, amit szimulálni szeretnénk a virtuális világunkban. 5. Különböző fényforrások szimulálása Foglaljuk össze az eddig tanultakat egy konkrét példán keresztül! Egy valós világbeli babaszoba bútort modelleztünk. A következő kép (13. ábra) két rossz példát szemléltet. 13. ábra: Izzólámpa area (területi) megvilágítással 13. ábra bal oldali kép: a modell 2200 K színhőmérsékletű izzólámpát szimuláló fényforrással világítottunk meg, de az intenzitást 1-en hagytuk. Ezután realizáltuk, hogy az intenzitást 0,005 és 0,02 intervallumban 35
kell beállítani, hogy realisztikus képet kapjunk. A másik példa a 13. ábra jobboldali képén ugyanazt a baba bútor látható két area fényforrással megvilágítva. Baloldalról kék színű, jobb oldalról fehér színű area fényforrással történt a megvilágítás. Szépen néz, ki de vizsgáljuk meg közelebbről a képet! A dohányzó asztal két lába mintha eltűnt volna, ezért ez a kép nem realisztikus. Ha ott lennénk ebben a környezetben látnák az asztal mind a négy lábát. A jó megoldáshoz még egy fényforrást be kell állítanunk. Nézzük ismét a baba bútort más fényforrásokat szimulálva. 14. ábra: Két area (területi) megvilágítású jelenet A 14. ábra baloldali képén ugyanaz a jelenet látható két area típusú fényforrással megvilágítva. Figyeljük meg az árnyékokat és hogy a fény elhalványulás hogy érvényesül a távolság függvényében. A jobboldali jelent baloldalról egy piros színű, jobb oldalról pedig egy zöld színű area fényforrással világítottuk meg. Figyeljük meg az árnyékok színét is! Utána 2700 K színhőmérsékletű (100 wattos izzó lámpa) két fényszóróval megvilágított jelenet látható a 15. ábra baloldali képén. A jobboldali képen 4700 K színhőmérsékletű (nappali fényt szimuláló természetes fényszóró) 2 area fényforrást használtunk. 15. ábra: Fényszóró és area fényforrások A következő példákban (16. ábra) a baloldali jelenetünket 10000 K színhőmérsékletű fénnyel világítottuk meg (tiszta kék sugárzása) 2 szórt fényforrással, a jobboldali képen ugyanolyan színhőmérsékletű, de kék színű szórt fényt használtunk. 36
16. ábra: 10000 K (tiszta kék égbolt fénye) 2 szórt fény és 10000 K (tiszt kék égbolt fénye) szórt kék színű fényforrással Összefoglalás Ebben a cikkben bemutattuk a virtuális valóságbeli megvilágítással kapcsolatos alapismereteket, a megvilágítás típusokat. Mindezt példákkal illusztráltuk, hogyan lehet valósághű jeleneteket alkotni. Remélem meg tudtam osztani a tapasztalataimat és tudtam hasznos tanácsokat adni. De emlékezzünk rá, semelyik részlet sem lehet elhanyagolhat! Soha ne higgyük el, amit látunk, mert a filmek, a virtuális valóságbeli jelenetek mindig manipuláltak! References [1] Sik Lányi C., (2006) Virtual Reality in Healthcare, Intelligent Paradigms for Assistive and Preventive Healthcare, Ichalkaranje, A., et al. (Eds.), Springer-Verlag, pp. 92-121. [2] Birn J., (2000) Lighting & Rendering, New Riders Publishing [3] Fleming B., (1998) 3D Photorealism Toolkit, John Wiley & Sons, Inc. [4] Berndt C., Gheorghian P., Harrington J., Harris A., McGinnis C., (2004) Leraning Maya 6, Rendering, Alias Systems [5] Bowman, D.A., Kruijff, E., Laviola Jr., J.J., Poupyrev, I. (2004), 3D User Interfaces. Addison- Wesley [6] Stanney, K.M. (2002), Handbook of virtual environments, ed. by: Stanney, K.M. editor, Handbook of Virtual Environments: Design, Implementation and Applications. Mahwah, N.J.: Lawrence Erlbaum Associates, Inc. [7] http://science.howstuffworks.com/light3.htm [8] http://users.design.ucla.edu/~cariesta/mayacoursenotes/html/ 37