GLOB ALIS ILLUMIN ACI

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "GLOB ALIS ILLUMIN ACI"

Átírás

1 IKTA-KÉPI 00101/2000 projekt Szerződés számok: OMFB-00179/2001, OMFB-00190/2001 Fotorealisztikus megjelenítes CAD rendszerekben GLOBÁLIS ILLUMINÁCIÓS SÁMÍTÁSI MÓDSEREK 1.0 verzió: ÍRTA: DR. SIRMAY-KALOS LÁSLÓ KOVÁCS LÁSLÓ CSONKA FERENC ANTAL GYÖRGY KELEMEN CSABA DR. HORVÁTH TAMÁS ELLENŐRITE: CSONKA FERENC ANTAL GYÖRGY

2 -

3 Tartalomjegyzék 1. Bevezetés Globális lépés Lokális lépés Színleképzés Az árnyalás optikai alapmodellje A fényerősség alapvetőmértékei A fény-felület kölcsönhatás: az árnyalási egyenlet A kamerák jellemzése A potenciál egyenlet A potenciál mérése A képszintézis feladat Az árnyalási illetve a potenciál egyenlet megoldása Fényelnyelő anyagok A geometria Parametrikus felületek tesszellációja Delaunay háromszögesítés Sokszögek háromszögekre bontása a fülek levágásával Háromszögek tovább-bontása Nem-folytonos felbontás BRDF modellek Lambert-törvény Ideális visszaverődés Ideális törés Phong illuminációs modell és változatai Cook-Torrance modell Fényforrások Mérőműszerek Színleképzés A globális illuminációs feladat megoldásának lehetőségei Inverzió Expanzió Az árnyalási egyenlet expanziója: a gyűjtőséta Az potenciál egyenlet expanziója: a lövőséta Az expanzióelőnyei és hátrányai Iteráció Láthatóság számítás Metszéspontszámítás egyszerű felületekre Háromszögek metszése Implicit felületek metszése Paraméteres felületek metszése Transzformált objektumok metszése CSG modellek metszése A sugárkövetés gyorsítási lehetőségei Befoglaló keretek Az objektumtér szabályos felosztása

4 2 Tartalomjegyzék Az objektumtér adaptív felosztása Monte-Carlo és kvázi Monte-Carlo integrálás A Monte Carlo mószer A kvázi Monte-Carlo mószer Alacsony diszkrepanciájú sorozatok definiálása Fontosság szerinti mintavételezés Véletlen változó generálása megadott valószínűséggel Fontosság szerinti mintavételezés a kvázi-monte Carlo integrálásban Metropolis mintavételezés Véges-elem módszer A globális illuminációs probléma véletlen bolyongással történő megoldása Miért használjunk Monte-Carlo módszereket? Az árnyalási egyenlet fontosság szerinti mintavételezése BRDF mintavételezés A fényforrás mintavételezése A fényforrás mintavételezése a gyűjtősétában Fontosság szerinti mintavételezés színes terekben Végtelen-dimenziójú integrálok kezelése Az orosz rulett Vélelen bolyongáson alapuló algoritmusok Véletlen bolyongáson alapulógyűjtőséták Egyszerű sugárkövetés Rekurzív sugárkövetés Elosztott sugárkövetés Inverz fényútkövetés Véletlen bolyongáson alapulólövőséták Foton követés Fénykövetés Kétirányúfényútkövetés Metropolis fényterjedés Foton térkép A globális illuminációs feladat iterációs megoldása Miért kell Monte-Carlo iterációt használni? A sztochasztikus iteráció formális definíciója A véletlen operátor definíciója Sugárköteg módszer Az árnyalási egyenlet átalakítása a sugárköteg követéshez A geometria mátrix előállítása Galerkin módszer konstans bázisfüggvényekkel A vetített árnyalási egyenlet megoldása sztochasztikus iterációval Egyenletes eloszlású véletlen irányok előállítása Képbecslőszámítása Véges elemes iteráció és Monte-Carlo módszerek kombinálása A sugársűrűség függvény dekompozíciója A kombinált algoritmus A kombinált algoritmus alkalmazása a sugárköteg módszerhez Első lövés technikák Az első lövés alapötlete Első lövés pontszerűfényforrásokra Kis területi fényforrások Az első-lövés felhasználása a sugárköteg módszerben

5 Tartalomjegyzék Többmenetes és progresszív képszintézis Többmenetes képszintézis Többszörös fontosság szerinti mintavételezés Progresszív képszintézis Irodalomjegyzék 89 Tárgymutató 92

6 4 Tartalomjegyzék

7 1. fejezet Bevezetés A képszintézis célja az, hogy a számítógép előtt ülő felhasználóban a valóság szemlélésének illuzióját keltse (1.1. ábra). A képet a virtuális világ alapján, egy fényképezési folyamatot szimuláló számítási eljárás segítségevel kapjuk meg. A kép akkor lesz valószerű, ha a számítógép monitora által keltett színérzet a valós világéval azonos. Az emberi szem színérzékelése a beérkező fényenergiától és a szem működésétől függ. A fényenergiát a látható pontok sugársűrűsége határozza meg, amely a virtuális világ objektumainak geometriája és optikai tulajdonságai és a fényforrások alapján számítható ki. Ezen bonyolult jelenség megértéséhez mind a fény-objektum kölcsönhatást, mind pedig a szem működését fel kell tárnunk. felhasználó a monitor elõtt monitor R G B Szín leképzés mérõ mûszer ablak képszintézis virtuális világ színérzet az idegsejtekben teljesítmény λ teljesítmény λ radiancia λ felhasználó a valós világban teljesítmény λ valós világ radiancia λ 1.1. ábra. A képszintézis lépései A lefényképezendő virtuális világ a következő főbb részekre bontható: geometria, optikai tulajdons ágok és fényforrások (1.2. ábra). A fizikai törvények, mint például a Maxwell egyenletek, alkalmazásával kiszámíthatjuk, hogy a valós világban a felületek milyen spektrumú fényt bocsátanának ki különböző irányokban. Ezt a lépést nézőpont független vagy globális képszintézis lépésnek nevezzük. Ezután egy m érőeszközt, mint például a szem vagy kamera, teszünk a térbe és kiszámítjuk ezen eszköz által mérhető spektrumot. Ezt a lépést nézőpont függő vagy lok ális lépésnek nevezzük. Megjegyezzük, hogy nem minden képszintézis algoritmus tesz különbséget a globális és lokális lépések között. A képszintézis eredménye a kép, amely a pixelek színét, vagy az intenzitásfüggvény diszkrét hullámhosszakon vett mintáit tartalmazza. Az intenzitás precíz meghatározása nagyon sok számítást igényelne. Szerencsére erre nincs is szükség, hiszen a szem igen rossz spektrométer és a monitorok lehetőségei is messze elmaradnak a valós világban előforduló spektrumoktól. A közelítés pontosságát csak addig érdemes növelni, amíg a szem két spektrumot képes megkülönböztetni 5

8 6 1. Bevezetés és a monitor a különbséget meg tudja jeleníteni. A monitorok szabályozható erősségű elektromágneses hullámokat bocsátanak ki három hullámhosszon, amelyeket önállóan szemlélve vörös, zöld és kék színeket érzékelnénk. A képszintézis utolsó lépése tehát a sz ínleképzés, amely a számított spektrumot R vörös, G zöld és B kék intenzitásokra alakítja át. a virtuális világ geometriája anyag jellemzõk globális felületi pontok képszintézis radianciája (globális lépés) kép számítás (lokális lépés) pixelek radianciája szín leképzés pixel R,G,B értékek világítás kamera 1.2. ábra. A képszintézis adatfolyam modellje 1.1. Globális lépés A globális lépés a felületi pontokban különböző irányokban visszaverődő fény intenzitását számítja ki. Mivel a fény elektromágneses hullám, az intenzitás a hullámhossznak folytonos függvénye [ Ábr97]. A képszintézis algoritmusok ezt a függvényt néhány diszkrét hullámhosszon mintavételezik, és a számításokat csak ezeken a hullámhosszokon végzik el. Egyetlen hullámhosszon a fény intenzitását a sug ársűrűséggel jellemezhetjük. Fényelnyelő és fényszóró anyagokat nem tartalmazó színterekben a sugársűrűséget elegendő a felületek mentén meghatározni. Egy felületi pont sugársűrűsége az adott pont saját sugárzásából, ún. emissziójából és a többi felületi pont ide jutó sugárzásának az optikai anyagtulajdonságoktól is függő visszaverődéséből származhat. Ezt a függőséget egy Fredholm-féle másodfajú integrálegyenlettel írhatjuk le, amelyet árnyalási egyenletnek nevezünk. Matematikai szempontból a globális lépés ezen integrálegyenlet megoldását jelenti a reprezentatív hullámhosszokon Lokális lépés A lokális lépés a globális sugársűrűség szemmel vagy kamerával történő megmérésének felel meg. A kamera valójában mérőműszerek gyűjteménye, amelyek a képek pixeleihez kapcsolódnak. A műszereket az érzékenységfüggvényükkel jellemezzük, amelyek kifejezik, hogy egy műszer mely pontokból és mely irányokba sugárzott fényt érzékeli Színleképzés A fény elektromágneses hullám és a szín ezen hullám spektrális jellemzőinek a hatása az emberi szemben. A szem nagyon gyenge spektrométer, a fotopigmentjei a beérkező energiát három, részben átlapolódósávban képesek mérni. Ennek következtében a monitoron nem szükséges a számított spektrumot reprodukálni, csupán olyat kell találni, amely a szemben ugyanolyan színérzetet ad. Ezt a lépést nevezzük sz ínleképzésnek (tone mapping).

9 2. fejezet Az árnyalás optikai alapmodellje A 3D képszintézis célja, hogy a fényforrások, a felületek geometriája, a felületek optikai jellemzői és a kamerák tulajdonságai alapján meghatározza, hogy az egyes kamerák milyen színt, azaz milyen spektrumúfényt érzékelnek. A kérdéskör bevezetése során meg kell ismerkednünk a fényerősség alapvető mértékeivel, a kamerák és a fényvisszaverődés fizikai modelljeivel. Ez a fejezet összefoglalja azon optikai törvényeket, amelyeket a 3D számítógépes grafika használ. Az intuitív magyarázatok mellett a teljesség kedvéért ismertetjük a levezetéseket is, ámbár ezek tényleges megértése nélkül is alkalmazhatjuk a kiadódó képleteket a grafikus algoritmusainkban A fényerősség alapvető mértékei Ebben a fejezetben a fényátadás alapvető mérőszámait és számítási eljárásait tekintjük át. A vizsgálatunkat hullámhosszú monokromatikus fényre végezzük el, mivel a teljes spektrumban történő analízis több ilyen elemzésre vezethető vissza. A bemutatandó anyagjellemzők nyilván függhetnek a megadott hullámhossztól. θ dω da r 2.1. ábra. A térszög definíciója Egy felület különböző irányokban sugározhat, ezért szükséges a térbeli irányok formalizálása. Emlékezzünk arra, hogy a síkban az irányokat szögekkel jellemezhetjük. Egy szög egy egységkör egy ívével adható meg,értéke pedig ezen ív hossza. A szög azon irányokat foglalja magában, amelyek a szög csúcsából az ív valamely pontjába mutatnak. A normál szög fogalmának általánosításával jutunk el az illuminációs gömb és a térszög fogalmához. A térbeli irányokat a 2D egységkör mintájára ún. illumin ációs gömb segítségével definiálhatjuk egyértelműen. Ez az egység sugarú gömb azon térszögeket tartalmazza, ahová aközéppontban lévő forrás sugározhat. A t érszög (solid angle) az egységgömb felületének egy része, amelyet ezen felület méretével számszerűsítünk. Egy térszög azon irányokat tartalmazza, amelyek a gömb középpontjából a felületrész valamely pontjába mutatnak. A térszög mértékegysége a szteradián [sr]. Egy da felületelem egy ~p pontból da cos d! = (2.1) r 2 térszög alatt látszik, ahol r a ~p pont és da felületelem távolsága, pedig a da felületi normálisa és a ~p iránya közötti szög (2.1. ábra). Az átadott fény erősségét több különböző mértékkel jellemezhetjük. A fluxus (Φ) egységnyi idő alatt, adott hullámhossz tartományban, egy hipotetikus határfelületen átadott energia. A fluxus mértékegysége a Watt [W ]. Afluxus értéke önmagában nem mond semmit, mert mindig tisztázni kell, hogy pontosan milyen felületen átlépő energiát vizsgálunk. Egy nagy fluxusérték tehát lehet egyrészt annak a következménye, hogy erős sugárzóvanaközelben, másrészt annak is, 7

10 8 2. Az árnyalás optikai alapmodellje hogy nagy felületet tekintünk. Ezért a számítógépes grafikában a fluxus helyett általában a radianciát használjuk. A sugársűrűség, radiancia, vagy intenzitás (L), egy da felületelemet d! térszögben elhagyó dφ infinitezimális fluxus osztva a kilépési irányból látható területtel (da cos ) és a térszöggel: dφ L = da d! cos : (2.2) A radiancia mértékegysége: [W m 2 sr 1 ]. Figyeljük meg, hogy a radiancia valóban csak az adott irányú sugárzás erősségét minősíti. Ha kétszer akkora térszögben méricskélünk, a fluxus ugyan kétszer akkora lesz, de a térszöggel történt osztás után változatlan eredményhez jutunk. Hasonlóan, ha a sugárzó kétszer akkora területét vizsgáljuk, akkor a fluxus megint közel kétszer akkora lesz, viszont a területtel osztva megint csak függetleníthetjük a radianciát a sugárzó területétől. da. dω Θ Θ. da r 2.2. ábra. Két infinitezimális felületelem között átadott fluxus Miután megismerkedtünk az alapvető mennyiségekkel, nézzük meg, hogy miként határozhatók meg egy olyan elrendezésben, ahol egy da felületelem kibocsátott fényteljesítménye egy másik da 0 felületelemre jut (2.2. ábra). Ha a felületelemek látják egymást, és a da intenzitása a da 0 irányába L, akkor 2.2 egyenlet szerint az átadott fluxus: dφ =L da d! cos : (2.3) Az 2.1. definíció felhasználásával a térszöget kifejezhetjük a da 0 látható területével. Ezzel egy alapvető egyenlethez jutunk, amely a fotometria alaptörvénye: dφ =L da cos da0 cos 0 r 2 : (2.4) Ezen egyenlet szerint az átadott fluxus egyenesen arányos a forrás radianciájával, a forrás és az antenna látható területével és fordítottan arányos a távolságukkal. Vegyük észre, hogy 2.1. definíció alkalmazásával az átadott teljesítmény a következő alakban is felírható: dφ =L da 0 da cos r 2 cos 0 = L da 0 d! 0 cos 0 ; (2.5) amely szerint ugyanolyan képlet vonatkozik a sugárzó felületelemre (2.2 egyenlet), mint a sugárzást felfogó antennára A fény-felület kölcsönhatás: az árnyalási egyenlet A fény-felület kölcsönhatás során egy fénysugár által megvilágított felület a beérkező fényteljesítmény egy részét különbözőirányokban visszaveri, mígmásik részét elnyeli. Az optikailag tökéletesen sima felületekre a visszaverődést a visszaver ődési törvény, a fénytörést a Snellius-Descartes-törvény írja le. A felületi egyenetlenségek miatt azonban a valódi felületek bármely irányba visszaverhetik, illetve törhetik a fényt. Ezeket a hatásokat a valószínűségszámítás eszközeivel modellezhetjük. Tegyük fel, hogy az! 0 irányból egy foton érkezik a felület ~x pontjába. A foton! irányú továbbhaladását a következő feltételes valószínűség-sűrűségfüggvénnyel jellemezzük: w(! 0 ;~x;!) d! =Prfa foton az! irány körüli d! térszögben megy j! 0 irányból jöng: (2.6) Ez a valószínűség-sűrűségfüggvény az anyag optikai tulajdonságait írja le. Erősen tükröző felületeknél nagy a valószínűsége annak, hogy a foton az elméleti visszaverődési irány közelében halad tovább. Matt felületeknél viszont a különböző irányokban történő kilépés hasonló valószínűségű. Most térjünk rá annak vizsgálatára, hogy a felület egy adott irányból milyen fényesnek látszik. Egy! irány körüli d! térszögbe visszavert vagy tört fluxust megkaphatjuk, ha tekintjük az összes lehetséges! 0 bejövőirányt, és az ezekből érkező fluxusok hatását összegezzük: Ω (w(! 0 ;~x;!) d!) Φ in (~x;! 0 ;d! 0 ) (2.7)

11 2.2. A fény-felület kölcsönhatás: az árnyalási egyenlet 9 h(x, - ω ) ω θ ω L(h(x, - ω ), ω ) L(x, ω) x 2.3. ábra. Az árnyalási egyenlet geometriája Az összegzés során a bejövő energiát (fotonokat) aszerint súlyozzuk, hogy mi a valószínűsége, hogy a bejövő foton éppen a nézeti irányba verődik vissza. Amennyiben a felület maga is fényforrás, a Φ e (~x;!) =L e (~x;!) da cos d! (2.8) kisugárzott fénymennyiség ugyancsak hozzájárul a kimeneti fluxushoz. A lehetséges hatásokat összegezve: Φ out (~x;!) =Φ e (~x;!) + A fluxus és a radiancia közötti 2.2 összefüggést felhasználva: Ω (w(! 0 ;~x;!) d!) Φ in (~x;! 0 ;d! 0 ): (2.9) Φ in (~x;! 0 ;d! 0 )=L in (~x;! 0 ) da cos 0 d! 0 ; Φ out (~x;!; d!) =L(~x;!) da cos d!: (2.10) Behelyettesítve ezeket a 2.9 egyenletbe, és mindkét oldalt elosztva da d! cos -val: L(~x;!) =L e (~x;!) + Ω L in (~x;! 0 ) cos 0 w(!0 ;~x;!) cos d! 0 : (2.11) A foton haladását leíró valószínűség-sűrűségfüggvény és a kimeneti szög koszinuszának hányadosa, az optikai anyagmodellek egy alapvető mennyisége, amelynek neve k étirányú visszaverődés eloszlási függvény, vagy röviden BRDF (Bi-directional Reflection Distribution Function): f r (! 0 ;~x;!) = w(!0 ;~x;!) : (2.12) cos A BRDF mértékegysége 1 per szteradián [sr 1 ]. Visszatérve a egyenlethez, az L in (~x;! 0 ) bejövő radiancia egyenlőaz~x pontból a! 0 irányba látható ~y pont! 0 irányú radianciájával. Vezessük be a ~y = h(~x;! 0 ): láthatóság függvényt, amely megmondja, hogy egy pontból egy adott irányba milyen másik felületi pont látszik. Ezzel végre eljutottunk a fényátadás alapvető integrálegyenletéhez, az árnyalási egyenlethez (rendering equation) [Kaj85]: L(~x;!) =L e (~x;!) + Ω L(h(~x;! 0 );! 0 ) f r (! 0 ;~x;!) cos 0 d! 0 : (2.13) Az árnyalási egyenlet, bár bonyolultnak látszik, valójában rendkívül egyszerűen értelmezhető. Egy felületi pont adott irányú radianciája (L(~x;!)) megegyezik a felületi pont ilyen irányú saját emissziójának (L e (~x;!)) ésakülönbözőirányból ide jutó radiancia (L(h(~x;! 0 );! 0 )) az adott irányba történő visszaverődésének az összegével. A visszaverődést a f r (! 0 ;~x;!) cos 0 d! 0 tag jellemzi, amely lényegében annak az fényútnak a valószínűségét határozza meg, amely a nézeti irányt a visszaverődésen keresztül a d! 0 elemi térszöggel köti össze. Minden egyes árnyalási feladat annyi árnyalási egyenlettel adható meg,ahány reprezentatív hullámhosszon dolgozunk. Az (L e ;f r (! 0 ;~x;!)) paraméterek a különböző hullámhosszokon eltérőek lehetnek.

12 10 2. Az árnyalás optikai alapmodellje Bevezetve a fény-felület kölcsönhatást leíró T integráloperátort (T L)(~x;!) = Ω L(h(~x;! 0 );! 0 ) f r (! 0 ;~x;!) cos 0 d! 0 ; (2.14) felállíthatjuk az árnyalási egyenlet rövid alakját: L = L e + T L: (2.15) 2.3. A kamerák jellemzése Az árnyalási egyenlet megoldása után a sugársűrűséget minden felületi pontban és irányban ismerjük. A képelőállításhoz viszont azt kell tudnunk, hogy egy fényérzékeny eszköz (retina vagy film) egyes részein milyen teljesítményű fény halad keresztül. Tekintsük a fényérzékeny eszköz minden egyes részét önálló fényérzékelő műszernek. Egy kamera elemi kamerák, vagy mérőeszközök gyűjteményeként fogható fel, ahol minden elemi kamera egyetlen skalár mennyiséget mér. Egy elemi kamera általában egy pixelen átjutó fényt detektál, de mérheti a felületelemet adott térszögben elhagyó fényteljesítményt is. Rendeljünk minden elemi kamerához egy W e (~y;!) érzékenység függvényt, amely megmutatja, hogy az ~y pontból az! irányba kibocsátott egységnyi energiájú foton mekkora hatást kelt a műszerünkben. Ha az elemi kamera a pixelen átjutó teljesítményt méri, akkor nyilván az érzékenység függvény valamilyen pozitív C sk álafaktor azon pontokra és irányokra, amely pontokat a szempozícióval összekötve éppen az adott irányt kapjuk, és minden más esetben zérus. Az összes pont és irány hatását az elemi hatások összegeként írhatjuk fel. Felhasználva a fluxus és a radiancia közötti összefüggést, egy adott hullámhosszon detektált fényteljesítmény Ω S dφ(~y;!) W e (~y;!) = Ω S L(~y;!)cos W e (~y;!) d~y d!= ML; (2.16) ahol M a radianciamérő operátor. A képletet a következőképpen értelmezhetjük. Ahhoz, hogy például egy pixelen keresztül a szembe jutó teljesítményt meghatározzuk, számba kell venni a szemből a pixelen keresztül látható felületi pontok szemirányú radianciáját (L(~y;!)). A szemből látható pontokat és az innen a szembe mutató irányokat az érzékenység függvény jelöli ki (W e (~y;!)). A cos azért van a képletben, hogy képviselje azt a hatást, hogy lapos szögben a felületre nézve nagy területeket is igen kicsinek láthatunk A potenciál egyenlet y W(y, ω ) ω θ ω W(h(y, ω ), ω ) h(y, ω ) 2.4. ábra. A potenciál egyenlet által használt jelölések Az idáig tárgyalt radiancia a felületek sugárzási intenzitását fejezi ki, amely részint a saját emisszióból, részint a többi felület sugárzásának visszaverődéséből áll. Ha a fényátadási jelenséget egy sugárzó és egy detektor kölcsönhatásaként képzeljük el, akkor a radiancia a jelenséget a sugárzó szempontjából írja le. A potenci ál a radianciához hasonlóan alapvető mérték, amely azonban ugyanazt a jelenséget a detektor szemszögéből tárgyalja. A potenciál definíciója a következő: tekintsünk egy elemi kamerát, és tegyük fel, hogy az ~y felületi pont az! 0 irányba egy egységnyi energiájú fotonnyalábot bocsát ki. A fotonok egy része a visszaverődések után az elemi kamerába jut. A kamerába jutó energiát az ~y pont! 0 irányú potenciáljának nevezzük.

13 2.5. A potenciál mérése 11 A fény-felület kölcsönhatás a radiancia átadás mellett a potenciál átadásával is leírható. Ha a visszaverődésektől eltekintünk, akkor nyilván W (~y;! 0 )=W e (~y;! 0 ). Ha a visszaverődéseket is követjük, a potenciálra az árnyalási egyenlet adjungált egyenlete, a potenciál egyenlet [PM95] írható fel: W = W e + T 0 W: (2.17) T 0 a potenciálátadást leíró integráloperátor (T 0 W )(~y;! 0 )= Ω W (h(~y;! 0 );!) f r (! 0 ;h(~y;! 0 );!) cos d!; (2.18) ahol a a felületi normális és az! kimeneti irány közötti szög. Ez az egyenlet azt mondja, hogy egy felületi pontból adott irányba kibocsátott foton műszerre gyakorolt hatását felírhatjuk a közvetlen hatás és a visszaverődések utáni indirekt hatás összegeként. Az egyenletet a potenciál valószínűségi értelmezésének felhasználásával bizonyítjuk be. Jelöljük az ~x pontot! irányban elhagyó egységnyi energiájú foton-nyalábot Π(~x;!)-vel. A potenciál valószínűségi értelmezése szerint: W (~y;! 0 )=C PrfΠ(~y;! 0 ) mérőműszerbe jutg = C PrfΠ(~y;! 0 ) közvetlenül a mérőműszerbe jutg+c PrfΠ(~y;! 0 ) közvetetten, azaz legalább egy visszaverődés után jut a mérőműszerbeg: (2.19) Az első tag az érzékenység függvény. A második tagot a teljes valószínűség tétel értelmében felbontjuk: Ω C PrfΠ(~y;! 0 ) közvetetten, azaz legalább egy visszaverődés után jut a mérőműszerbeg = C PrfΠ(h(~y;! 0 );!) aműszerbe jutg PrfΠ(~y;! 0 ) a h(~y;! 0 ) pontban visszaverődés után! körüli d! térszögben folytatja az útját g = W (h(~y;! 0 );!) f r(! 0 ;h(~y;! 0 );!) cos d!: (2.20) Ω 2.5. A potenciál mérése A sugársűrűséghez hasonlóan a mérőműszerre érkező energiát a potenciálból is meghatározhatjuk. Ez az energia a d~y pontból a d! 0 térszögbe sugárzott teljesítmény és azon valószínűség szorzata, hogy ez a sugár, közvetlenül vagy közvetve, valóban a mérőeszközbe jut. Az első tényező nagysága dφ e (~y;! 0 )=L e (~y;! 0 ) cos ; amásodik pedig W (~y;! 0 )=C, így figyelembe véve az összes pontot és irányt: C Ω S dφ e (~y;! 0 ) W (~y;!0 ) C = Ω S W (~y;! 0 ) L e (~y;! 0 ) cos d~y d! 0 = M 0 W; (2.21) ahol M 0 a potenciál mérő operátor. Vegyük észre, hogy a sugársűrűség mérő operátorral szemben a potenciál mérő operátor a fényforráson futó integrál A képszintézis feladat Formálisan, a képszintézis feladat egy négyes [Kel97]: hs; f r (! 0 ;~x;!);l e (~x;!); W e (~x;!)i ahol S a felületek geometriája, f r a felületi pontok optikai tulajdonságát jellemző BRDF függvény, L e a kisugárzott radiancia és W e amérőműszerek gyűjteménye. A képszintézis algoritmusok a fény-felületi kölcsönhatásokat vizsgálják annak érdekében, hogy a mérőműszerekben érzékelhető teljesítményt kiszámítsák. A fény felület kölcsönhatást az árnyalási egyenlet vagy a potenciál egyenlet írja le.

14 12 2. Az árnyalás optikai alapmodellje 2.7. Az árnyalási illetve a potenciál egyenlet megoldása Matematikai szempontból az árnyalási (és a potenciál) egyenlet egy másodfajú Fredholm-f éle integrálegyenlet, amelyben az ismeretlen radianciafüggvényt kell meghatározni. Ez a radianciafüggvény egyrészt önállóan, másrészt az integrálon belül jelenik meg. Azt is mondhatjuk, hogy az egyenletben az integrál és az azon kívüli részek között csatolás van, mert mindkettő függ az ismeretlen radianciától. Intuitíven megközelítve ezt a kérdést, egy felületi pont sugárzása a visszaverődések miatt függhet a többi pont intenzitásától, azok sugárzása viszont akár éppen a kérdéses felületi pont fényességétől. Ez a kölcsönös függés kapcsolja össze a különböző pontok radianciáját. Ilyen integrálegyenletek megoldása általában meglehetősen időigényes. Ha gyorsabban szeretnénk képet kapni, akkor a megoldandó feladat egyszerűsítéséhez folyamodhatunk, elfogadva azt is, hogy a fizikai modell egyszerűsítése a valósághűség romlásához vezethet. A rendelkezésre álló technikákat három nagy kategóriába sorolhatjuk, amelyek a gyorsaság-valósághűség ellentmondó követelménypárt különböző kompromisszummal elégítik ki. A lokális illuminációs algoritmusok az árnyalási egyenlet drasztikus egyszerűsítésével kiküszöbölnek mindenféle csatolást, azaz egy felület fényességének meghatározásához nem veszik figyelembe a többi felület fényességét. Megvilágítás csak a képen közvetlenül nem látható absztrakt fényforrásokból érkezhet. A csatolás megszűntetésével az árnyalási egyenletben az integrálból eltűnik az ismeretlen függvény, így az integrálegyenlet megoldása helyett csupán egy egyszerű integrált kell kiértékelnünk. A sugárkövetés illuminációs algoritmusa a csatolást csak véges számú ideális visszaverődésre és törésre követi. A globális illuminációs algoritmusok az integrálegyenletet a csatolással együtt próbálják megoldani, vállalva az ezzel járó munkamennyiséget is Fényelnyelő anyagok Az árnyalási, illetve a potenciál egyenlet származtatása során feltételeztük, hogy a felületek között a fényintenzitás nem csökken, azaz a térben nincsenek fényelnyelő és szóró anyagok (participating media). Ha felh őket, tüzet, füstöt, ködöt, stb. szeretnénk megjeleníteni, akkor a korábbi feltételezésekkel alkotott modellek elégtelennek bizonyulnak, tehát általánosítani kell őket. Tekintsünk egy fényelnyelő, fényszóró, sőt akár fényemittáló(t űz) anyagon áthaladó sugarat! Egy ds elemi szakaszon a sugár L intenzitásának megváltozása több tényezőfüggvénye: ffl A fény a pálya mentén elnyelődik illetve az eredetileg sugárirányú fotonok más irányba szóródnak az anyag molekuláival bekövetkező ütközések során. Ezen hatás következménye egy» t L mértékűváltozás (outscattering). ffl Afényintenzitás az anyag saját emissziójával növekedhet:» a L e. ffl Az eredetileg más irányú fotonok a molekulákba ütközve éppen a sugár irányában folytatják az útjukat (inscattering). Ha az! 0 irányból az elemi ds szakasz környezetébe L i (! 0 ) radiancia érkezik, az! sugárirányban történő visszaverődés valószínűség-sűrűségfüggvénye pedig f (! 0 ;!), akkor ez a hatás az intenzitást mennyiséggel növeli. L is (s) = Ω L i (! 0 ) f (! 0 ;!) d! ábra. A sugár intenzitásának változása

15 2.9. A geometria 13 Összefoglalva a sugár radianciájára a következő egyenlet érvényes: dl(s;!) ds =» t (s) L(s;!) +» a (s) L e (s;!) +L is (s;!) =» t (s) L(s;!) +» a (s) L e (s;!) + Ω L i (s;! 0 ) f (! 0 ;!) d! 0 : (2.22) Ebben az egyenletben az ismeretlen radiancia több helyen is szerepel, megtalálható derivált formában, normál alakban, sőt az L i mögé rejtve még integrálva is. Mivel a feladat sokkal egyszerűbb lenne, ha az L i független lenne az ismeretlen radianciától és valaki megsúgná nekünk az L i értékét, a gyakorlatban sokszor olyan egyszerűsítő feltételezéseket teszünk, amelyek ehhez az esethez vezetnek. Ekkor a fénynek csak az egyszeres szóródását (single scattering) számítjuk, a többszörös szóródást (multiple scattering) elhanyagoljuk. Az egyszeres szóródást leíró egyszerűsített integrálegyenletet a szuperpoz íció elv segítségével oldhatjuk meg. Először tegyük fel, hogy az intenzitást növelő L e (s;!) és L is (s;!) tényezők csak egy fi pontban különböznek zérustól. Ezek hatását egy s pontban úgy kapjuk, hogy figyelembe vesszük a folyamatos csökkenést: ffi fi L(s;!) =e fir s» t(p) dp (»a (fi ) L e (fi;!)+l is(fi;!)): (2.23) Amennyiben nem csak a fi pontban növekedhet az intenzitás, úgy az elemi hatásokat összegezni kell, tehát: L(s;!) = T ahol T a maximális sugárparaméter. s ffi fi L(s;!) dfi = T s e R fi s» t(p) dp (»a (fi ) L e (fi;!)+l is(fi;!)) dfi; (2.24) 2.9. A geometria A felület 3D pontok halmaza [SK99b]. Azokat a pontokat mondjuk a halmazhoz tartozóknak, amelyek kielégítik a definíciós egyenletet. Az egyenlet előállíthatja a pontokat implicit módon, amikor az egyenlet általános formája F (x; y; z) =0; vagy explicit módon, amikor az általános forma a következő: ~r = ~r(u; v); u 2 [0; 1]; v 2 [0; 1]: (2.25) A felületi pontokat ebben az esetben úgy kaphatjuk meg, hogy az egységintervallumból u; v értékeket választunk és azokat behelyettesítjük az ~r(u; v) függvénybe. Az ismertetendő képszintézis algoritmus háromszögekkel dolgozik, ezért a más formában adott geometriát háromszögekre kell átalakítani. A továbbiakban az általános felületek tesszellációját és a poligonok háromszögesítését tárgyaljuk. A háromszögesítésnél figyelembe kell venni, hogy a keletkező háromszögháló ne tartalmazzon torz, azaz keskeny és hosszúháromszögeket, mert azok megnövelhetik a számítási hibákat Parametrikus felületek tesszellációja eredeti felület izovonalakkal pontok és háromszögek kijelölése a tesszelláció eredménye 2.6. ábra. Közelítés háromszög hálóval

16 14 2. Az árnyalás optikai alapmodellje Aképszintézis algoritmusok jelentős része nem az eredeti geometriával dolgozik, hanem a felületeket háromszög hálóval közelíti. Ezt a közelítést amelyet tesszellációnak is neveznek úgy valósítjuk meg, hogy n m pontot veszünk fel az u 2 [0; 1];v2 [0; 1] paraméter térben és a [~r(u i ;v j );~r(u i+1 ;v j );~r(u i+1 ;v j+1 )] és [~r(u i ;v j );~r(u i+1 ;v j+1 );~r(u i ;v j+1 )] háromszögeket minden i = 1:::n 1 és j = 1:::m 1 értékre hozzáadjuk a keletkező háromszöglistához (2.6. ábra) Delaunay háromszögesítés Tegyük fel, hogy az eredeti geometriát diszkrét pontok adják meg. A feladat tehát egy olyan illeszkedő háromszög háló előállítása, amely nem tartalmaz hosszú keskeny háromszögeket. Ezt pontosabban úgy fogalmazhatjuk meg, hogy semelyik háromszög körülírt köre sem tartalmazhat más háromszög csúcspontot. Az ilyen felbontást Delaunay felbont ásnak nevezzük, amely a Voronoi diagram duálja. A Delaunay háromszögesítés inkrementális megvalósítása a [GS77, GS85, Lis94] cikkekből származik. Az algoritmus egy olyan háromszögből indul, amely az összes adatpontot tartalmazza. A pontokat egyenként adjuk hozzá az adatszerkezethez úgy, hogy a Delaunay tulajdonság minden lépés után megmaradjon. Először az új pontot tartalmazó háromszöget azonosítjuk, majd új éleket hozunk létre az új pont és a tartalmazó háromszög csúcspontjai között. A tartalmazó háromszög eredeti oldalaira ellenőrizzük, hogy megsértik-e az üres körülírt kör elvárást, azaz az eredeti oldal két végpontjára és az új pontra egy kört illesztünk és azt minden egyes korábbi ponttal összevetjük. Ha ez a kör nem tartalmaz korábbi pontot, akkor az eredeti oldalt megtartjuk. Ellenkező esetben az eredeti oldalt töröljük és felváltjuk az eredeti élre illeszkedőkét háromszög távolabbi csúcsait összkötő éllel. Ezzel két másik háromszög keletkezik, amelynek eredeti oldalait rekurzívan ellenőrizni kell. Az algoritmus implementációja a [Lis94]-ban található Sokszögek háromszögekre bontásaafülek levágásával Akövetkezőkben egy egyszerű háromszögesítő algoritmust ismertetünk, amely egy r 0 ;r 1 ;:::r n sokszöget háromszögekre oszt fel. Kezdjük két alapvető definícióval: ffl Egy sokszög diagonálja egy, a sokszög két csúcsát összekötő szakasz, amely teljes egészében a háromszög beljesében van. A diagonál tulajdonság egy szakaszra úgy ellenőrizhető, ha az összes oldallal megpróbáljuk elmetszeni és megmutatjuk, hogy metszéspont csak a végpontokban lehetséges, valamint azt, hogy a szakasz egy tetszőleges belső pontja a sokszög belsejében van. ffl A sokszög egy csúcsa fül, ha az adott csúcsot megelőző és követő csúcsokat összekötő szakasz a sokszög diagonálja. Nyilván csak azok a csúcsok lehetnek fülek, amelyekben a belső szög 180 foknál nem nagyobb. Az ilyen csúcsokat konvex csúcsoknak nevezzük, a nem konvex csúcsokat pedig konkáv csúcsoknak. Aháromszögekre bontó algoritmus füleket keres, és azokat levágja addig, amíg egyetlen háromszögre egyszerűsödik az eredeti sokszög. Az algoritmus az r 2 pontnál kezd. Az algoritmus egy lépésben, amikor az i. csúcsnál van, először ellenőrzi, hogy a megelőző r i 1 csúcspont fül-e. Ha az nem fül,akövetkezőcsúcspontra lép (i = i +1). Ha a megelőző csúcs fül, akkor a r i 2 ;r i 1 ;r i háromszöget létrehozzuk, és az r i 1 csúcsot töröljük a sokszög csúcsai közül. Ebben az esetben csak akkor lépünk a következő csúcspontra, ha az új megelőző csúcspont éppen a 0 indexű, egyébként nem Háromszögek tovább-bontása Előfordulhat, hogy a felosztás után keletkezőháromszögek még mindig túlságosan nagyok, és emiatt a háromszögek sugársűrűségét homogénnek vagy lineárisnak feltételező algoritmusok számítási hibája nagy. Ekkor a háromszöget tovább kell bontani, amelyre két eljárás is használható. Felbonthatjuk egy lépésben a háromszöget két kis háromszögre úgy, hogy megkeressük a leghosszabb oldalt, azt megfelezzük, és a felezőpontot a szemközt lévő csúccsal összekötjük. A másik megoldás minden oldalt megfelez és a három felezőpontot köti össze, így a háromszöget négy darab, az előzővel hasonló részre bontja Nem-folytonos felbontás Az éles árnyékok miatt a háromszög homogén radianciájára vonatkozó feltételezés egyes helyeken nem tartható. Ekkor meg kell keresni a háromszögön belül az árnyék helyét, és ennek mentén kell a darabolást elvégezni. A művelet pontos megvalósításához az árnyékok helyét számítani kell. Közelítő jelleggel az árnyékok számítása nélkül is alkalmazhatjuk az elvet. Keressük meg azon pontokat, amelyek a felbontandó sokszöghöz közel vannak és vetítsük ezeket a pontokat a sokszög síkjára, majd ezekre a vetületekre is terjesszük ki a háromszögesítést.

17 2.10. BRDF modellek BRDF modellek Valósághű képek előállítása során olyan BRDF modelleket kell használnunk, amelyek nem sértik az alapvető fizikai törvényeket, mint például a BRDF-k szimmetriáját kimondó Helmholtz-t örvényt, vagy az energiamegmaradás törvényét. A Helmholtz-féle szimmetria, vagy reciprocitás [Min41] szerint a fénysugár megfordítható, azaz a BRDF-ben a bejövő és kimenő irányok felcserélhetőek: f r (!;~x;! 0 )=f r (! 0 ;~x;!): (2.26) Ez a tulajdonság az, amely miatt a valószínűség-sűrűségfüggvényekkel szemben a BRDF-eket részesítjük előnyben az optikai anyagmodellek megadásánál. A szimmetria miatt f r (! 0 ;~x;!) cos 0 = f r (!;~x;! 0 ) cos 0 = w(!;~x;!0 ) cos 0 cos 0 = w(!;~x;! 0 ): (2.27) Az energiamegmaradás elve értelmében, egy önállóan nem sugárzó felületelem nem adhat ki több fotont (nagyobb fluxust), mint amit maga kapott, vagy másképpen, a tetszőleges irányú visszaverődés teljes valószínűsége nyilván nem lehet egynél nagyobb. A tetszőleges irányú visszaverődést albedonak nevezzük. Az albedo definíciója: a(~x;! 0 )= Ω f r (! 0 ;~x;!) cos d!» 1: (2.28) Az energiamegmaradás elve értelmében az árnyalási egyenlet integráloperátora kontrakci ó, azaz a visszavert radianciafüggvény normája az eredeti radianciafüggvény normájánál kisebb. Ennek az a következménye, hogy az operátor egymás utáni alkalmazása során a visszavert radiancia zérushoz tart. Miként a megoldási módszerek ismertetésénél látni fogjuk, a kontrakció garantálja, hogy az iterációs megoldások konvergálnak. A reciprocitást és az energiamegmaradás elvét nem sértő BRDF-eket fizikailag plauzibilisnek nevezzük [Lew93]. A BRDF modellek bemutatása során a következő jelöléseket használjuk: ~ N a felületelemre merőleges egységvektor, ~L afényforrás irányába mutató egységvektor, ~ V anézőirányba mutató egységvektor, ~ R az ~ L tükörképe az ~ N-re vonatkoztatva, ~ H az ~ L és ~ V közötti felező egységvektor Lambert-törvény Optikailag nagyon durva, ún. diffúz anyagok esetén a visszavert radiancia független a nézeti iránytól. Fehérre meszelt falra, homokra, matt felületre nézve ugyanazt a hatást érzékeljük ha merőlegesen nézünk rá, mintha élesebb szögben vizsgálódnánk. V N L in θ θ L 2.7. ábra. Diffúz visszaverődés A Helmholtz-féle reciprocitás értelmében a BRDF ekkor a bejövő iránytól sem függhet, azaz a BRDF konstans: f r ( ~ L; ~ V )=k d : (2.29) Az energiamegmaradás miatt az albedo diffúz visszaverődés esetén sem lehet 1-nél nagyobb, így a k d diffúz visszaverődési együtthatóra a következő korlát állítható fel: a( ~ L)= Ω k d cos d!= k d ß =) k d» 1 ß : (2.30)

18 16 2. Az árnyalás optikai alapmodellje Ideális visszaverődés Az ideális tükör teljesíti a geometriai optika által kimondott visszaverődési törvényt miszerint a beesési irány ( ~ L), felületi normális ( ~ N) és a kilépési irány ( ~ V ) egy síkban van, és a 0 beesési szög megegyezik a visszaverődési szöggel ( 0 = ). Az ideális tükör tehát csak az ~ R visszaverődési irányba ver vissza, egyéb irányokba nem. A BRDF tehát Dirac-delta függvénnyel adható meg (a Dirac-delta a 0 értéknél végtelen, minden más értéknél zérus, de integrálja 1): f r ( ~ L; ~ V )=k r ffi( ~ R ~ V ) cos 0 ; az energiamegmaradáshoz k r» 1: (2.31) Még a tökéletes tükrök is elnyelik a beérkezőfény egy részét. A visszavert és beeső energia hányadát az anyag Fresnel-együtthatója fejezi ki, ami pedig az anyag törésmutatójából számítható ki. A törésmutató dielektrikumoknál skalár, az elektromosságot vezető fémeknél azonban komplex szám. Jelöljük a törésmutató valós részét n-nel, az elektromos vezetőképességet kifejező képzetes részét pedig»-val. Legyen a beérkezőfénysugár és a felületi normális által bezárt szög 0,atörési irány és a normális közötti szög pedig. A Fresnel-egyenletek a visszavert és a beérkező fénynyalábok energiahányadát fejezik ki külön arra az esetre, amikor a fény polarizációja párhuzamos, és arra, amikor a polarizáció merőleges a felülettel: F? ( ; 0 )= fi fi fi cos fi (n +» ) cos 0 fififi 2 fi cos +(n +» ) cos 0 ; F k ( ; 0 )= fi fi fi fi cos 0 (n +» ) cos cos 0 +(n +» ) cos fi fi fi fi 2 ; (2.32) ahol = p 1. Ezen egyenleteket az elektromágneses hullámok terjedését leíró Maxwell-egyenletekből származtathatjuk. Nem polarizált fény esetében a párhuzamos ( ~ E k ) és merőleges ( ~ E? ) mezőknek ugyanaz az amplitúdója, így a visszaverődési együttható: k r = F ( ; 0 )= jf 1=2 k ~E k + F 1=2? ~E? j 2 F k + F? j E ~ k + E ~ =? j 2 2 : (2.33) Dielektrikumokra a törésmutatóvalós, ekkor a Fresnel tagot jól közelíthetjük a Schlick által javasolt képlettel: Ideális törés F ( ; cos 0 ) ß (n( ) 1)2 +(1 cos 0 ) 5 4n( ) (n( ) +1) 2 : Az ideális törés során a fény útja követi a Snellius-Descartes-törvényt, miszerint a beesési irány ( ~ L), a felületi normális ( ~ N) ésatörési irány ( ~ V ) egy síkban van, és sin 0 sin = n; ahol n az anyag relatív törésmutatója. A BRDF az ideális visszaverődéshez hasonlóan ugyancsak Dirac-delta jellegű függvény ahol ~ T atörési irány Phong illuminációs modell és változatai f r ( ~ L; ~ V )=k t ffi(~ T ~ V ) cos 0 ; (2.34) Az inkoherens azaz nem a geometriai visszaverődési törvénynek megfelelően viselkedő ideális visszaverődést általában két tényezőre bontjuk. Diffúz visszaverődésre, amelyet a Lambert-törvénnyel írunk le, és spekuláris visszaverődésre, amelyre külön modellt állítunk fel. A Phong BRDF a spekuláris visszaverődés egyszerű empirikus modellje [Pho75]. A spekuláris felületek a beérkező fény jelentős részét az elméleti visszaverődési irány környezetébe verik vissza. Ezt a jelenséget modellezhetjük bármely olyan függvénnyel, amely a visszaverődési irányban nagy értékű, és attól távolodva rohamosan csökken. Phong a következőfüggvényt javasolta erre a célja: f r;phong ( ~ L; ~ V )=k s ( ~ R ~V ) n ( ~ N ~L) (2.35) ahol ~ R az ~ L vektor tükörképe a felületi normálisra. A k s faktor a Fresnel-együtthatóval arányos, de annál kisebb, hiszen a felület most nem ideális tükör. A k s faktort dielektrikumoknál tekinthetjük hullámhossz és beesési szög függetlennek (egy műanyagon, a fehér fény által létrehozott tükrös visszaverődés fehér).

19 2.10. BRDF modellek 17 H N I R V ψ L 2.8. ábra. Spekuláris visszaverődés Az eredeti Phong-modell fizikailag nem plauzibilis, mert nem szimmetrikus. Ezért a fotorealisztikus képszintézisben ehelyett a következőváltozatokat használják [ICG86]: f r;reciprocalphong ( ~ L; ~ V )=k s ( ~ R ~V ) n (2.36) Az ilyen modell által visszavert radiancia nagy beesési szögekre zérushoz tart, ami nem felel meg a gyakorlati tapasztalatainknak. Ezt a hiányosságot küszöböli ki a következőváltozat [NNSK98b]: f r;maxphong ( ~ L; ~ V )=k s Az energiamegmaradáshoz a következő feltételt kell garantálni [LW94]: ( ~ R ~V ) n max (( ~ N ~V ); ( ~ N ~L)) (2.37) k s» n +2 2ß : (2.38) Ha a k s paramétert a Fresnel-együttható alapján határozzuk meg, akkor gondot jelent az, hogy milyen beesési szögre tekintsük annak az értékét. A felületi normális és a fényvektor szöge most nem megfelelő, egyrészt azért, mert ekkor a BRDF nem lesz szimmetrikus, másrészt azért, mert a felületi egyenetlenségek következtében egy pontban a tényleges normálvektor nem állandó, hanem valószínűségi változó. Ha a felületet kis, véletlenszerűen orientált ideális tükrök gyűjteményének tekintjük, akkor azon felületelemek, amelyek L-ből ~ V ~ irányba vernek vissza, a visszaverődési törvénynek megfelelően H ~ =( L ~ + V ~ )=2 normálvektorral rendelkeznek. A beesés szögének koszinuszát a ( H ~ ~L) skalárszorzatból számolhatjuk ki Cook-Torrance modell A Cook-Torrance modell a spekuláris visszaverődés fizikai alapú modellje, amely a felületet véletlen orientációjú, azonos S területű, ideális tükör jellegű mikrofelületek halmazának tekinti. A feltételezés szerint a mikrofelületek egyszeres viszszaverődése a spekuláris taghoz járul hozzá. A többszörös visszaverődés, illetve a fotonok elnyelése és későbbi emissziója viszont a diffúz (vagy más néven matt) tagot erősíti. Tekintsük az egyszeres visszaverődésekből származó spekuláris tagot. Az L ~ irányból a V ~ körüli d! V ~ térszögbe tartó egyszeres visszaverődéshez azok a mikrofelületek járulhatnak hozzá, amelyek normálvektora az L ~ és V ~ közötti H ~ felezővektor körüli d! H ~ térszögben vannak. Az egyszeres visszaverődéshez a mikrofelületet más felületek nem takarhatják, a visszavert foton nem ütközhet más felületekkel és a mikrofelület sem nyelheti el a fotont. Azon esemény tehát, hogy a felület a fotont közvetlenül a V ~ körüli d! V ~ térszögbe veri akövetkező események ÉS kapcsolatával fejezhető ki: 1. Orientáció: A foton útjába egy olyan mikrofelület kerül, amelynek a normálvektora a ~ H körüli d! ~ H térszögben van. 2. Nincs árnyékolás és maszkolás: A megfelelő orientációjú mikrofelületet nem takarják más felületek és a visszavert foton nem ütközik újabb mikrofelületekkel. 3. Visszaverődés: A fotont nem nyeli el az ideális tükör jellegű mikrofelület. Mivel a visszaverődés illetve az árnyékolás és maszkolás független események, ha az orientáció adott, a fenti összetett esemény valószínűsége a következő szorzatként írható fel: Prforientáció ^ nincs árnyékolás és maszkolás ^ visszaverődésg =

20 18 2. Az árnyalás optikai alapmodellje Prfnincs árnyékolás és maszkolás j orientációg Prfvisszaverődésj orientáció g Prforientációg: Ha a foton ~ L irányból érkezik egy da felületelemre, a felületelem ebből az irányból látható területe da ( ~ N ~L). Azon mikrofelületek teljes látható területete, amelyek normálvektora H ~ körüli d! H ~ térszögben van, pedig a mikrofelület látható területének (S ( ~ H ~L)), és a megfelelő orientációjú mikrofelületek számának a szorzata. A mikrofelületek száma viszont a megfelelő orientációvalószínűségének (P H ~ ( H) d! ~ H ~ ) és az összes mikrofelület számának szorzataként számítható(da=s). Annak valószínűsége, hogy a foton megfelelő mikrofelületet talál, a megfelelő orientációjú mikrofelületek látható területe osztva a felületelem teljes látható területével: Prforientációg S = ( H ~ ~L) P H ~ ( H) ~ d! H da=s da ( N ~ ~L) : L H dh dω vert dh H hor θ H θ V dφ dω dv V vert dv hor 2.9. ábra. A d! ~ H =d! ~V számítása A visszaverődési sűrűségfüggvényben d! ~ V szerepel, nem pedig d! ~H,ezért ki kell számítanunk a d! ~H =d! ~V hányadost [JGMHe88]. Vegyünk fel egy ( ; ffi) gömbi koordinátarendszert úgy, hogy az északi pólus az ~ L irányra essen (2.9. ábra). A térszögeket a vízszintes és függőleges ívek hosszainak a szorzataként írhatjuk fel: d! ~ V = dv hor dv vert ; d! ~ H = dh hor dh vert : Ebben a gömbi koordinátarendszerben V =2 H. Geometriai meggondolásokkal azt kapjuk, hogy: Ebből a differenciális térszög: dv hor = dffi sin V ; dh hor = dffi sin H ; dv vert =2dH vert : d! H ~ d! V ~ = sin H = sin H 1 = = 2 sin V 2sin2 H 4cos H 1 4( L ~ ~H) : (2.39) Összefoglalva, az orientációs valószínűség Prforientációg = P ~H ( ~ H) ( ~ H ~L) ( ~ N ~L) d! ~H d! ~ V d! P V ~ = ~H ( H) ~ 4( N ~ ~L) d! V ~ : A mikrofelület ~ V irányból akkor látható, ha az ebből az irányból érkező foton nem ütközik más mikrofelületekkel, mielőtt az adott mikrofelületet elérné. Az ütközést maszkol ásnak nevezzük. A ábra alapján felismerhetjük, hogy a maszkolás valószínűsége l 1 =l 2, ahol l 2 a mikrofelület egydimenziós mérete és l 1 azt a határesetet jelenti, amikor a maszkolás először bekövetkezik. A mikrofelületek ékje és a határesetnek megfelelő fénysugár által közbezárt háromszög szögeit kifejezhetjük az ff = angle( ~ N; ~ H) és fi = angle( ~ V; ~ H)=angle( ~ L; ~ H) szögek segítségével, geometriai megfontolások és a visszaverődési törvény alapján. A szinusz tétel és trigonometrikus azonosságok felhasználásával: Prfnincs maszkolás j orientációg =1 l 1 sin(fi +2ff ß=2) =1 =2 l 2 sin(ß=2 fi) cos ff cos(fi + ff) : cos fi

21 2.10. BRDF modellek 19 β+2α π/2 H N α L β V π/2 β l 2 l l ábra. A maszkolás geometriája A használt szögek definíciója alapján cos ff =( ~ N ~H), cos(fi + ff) =( ~ N ~V ) és cos fi =( ~ V ~H). Ha a beérkező fény iránya és a mikrofelület orientációja nem hoz létre háromszöget, akkor a maszkolás valószínűsége zérus. Ezt az esetet felismerhetjük, ha a vektorokat a fenti képletbe helyettesítjük és amennyiben a számított érték 1-nél nagyobbra adódna, akkor a valószínűséget 1-re állítjuk: Prfnincs maszkolás j orientációg =minf2 ( ~ N ~H) ( ~ N ~V ) ( ~ V ~H) Az árnyékolás valószínűségét pontosan ugyanígy számíthatjuk ki, csak az ~ L fényvektort és a ~ V nézeti irányt fel kell cserélni. Mivel egy adott mikrofelület irány esetén a maszkolásból vagy az árnyékolásból következik a másik esemény bekövetkezése, annak a valószínűsége, hogy sem árnyékolás, sem pedig maszkolás nem történik, a két valószínűség minimuma: Prfnincs árnyékolás és maszkolás j orientációg =minf2 ( ~ N ~H) ( ~ N ~V ) ( ~ V ~H) ; 1g: ; 2 ( N ~ ~H) ( N ~ ~L) ( L ~ ~H) ; 1g = G( N; ~ L; ~ V ~ ): Mint láttuk, még tökéletes tükrök is elnyelik a beérkező fény egy részét, amint azt a Fresnel egyenletek megfogalmazzák. Mivel az F ( ; 0 ) Fresnel függvény a visszavert és beérkező fényenergia arányát fejezi ki, egyúttal a visszaverés valószínűségeként is értelmezhető: Prfvisszaverődésj orientáció g = F ( ; ~ H ~L): Vegyük észre, hogy a 0 belépési szöget a H ~ ~L = cos fi szögre cseréltük fel, hiszen az L ~ irányból a V ~ irányba azon ideális tükör mikrofelületek verhetnek vissza, amelyek normál vektora éppen H. ~ Most már összegezhetjük az eredményeket és megadhatjuk a w( L; ~ V ~ )d! V ~ visszaverődési valószínűségsűrűség függvényt: G( ~ N; ~ L; ~ V ) F ( ; ~ H ~L) d! ~ V : (2.40) w( L; ~ V ~ )d! P V ~ = ~H ( ~H) 4( N ~ ~L) A BRDF a visszaverődési sűrűségfüggvény osztva a kilépési szög koszinuszával ( N ~ ~V ), így azt kapjuk, hogy: f r ( ~ L; ~ V )= P ~ H ( ~ H) 4( N ~ ~L)( N ~ ~V G( N; ~ L; ~ V ~ ) F ( ; H ~ ~L): (2.41) ) A P ~ H ( ~ H) mikrofelület orientációs sűrűségfüggvényt több különbözőmegközelítéssel definiálhatjuk. Blinn [Bli77] a Gauss féle normális eloszlást javasolta a centrális határeloszlás tétel szellemében: P ~ H ( ~ H)=const e (ff=m)2 ; (2.42) ahol ff mikrofelület normálvektor ( H) ~ és a makrofelület normálvektora ( N)közötti ~ szög, m pedig a felület durvaságát kifejező tényező. Később Torrance és Sparrow megmutatta, hogy az Beckmann [BS63] és Davies [Dav54] által kidolgozott, az elektromágneses hullámok durva felületek okozta szóródását leíró elmélet is használható és a Beckmann eloszl ással helyettesítette a normális eloszlást: P H ~ ( H)= ~ 1 m : 2 (2.43) m 2 cos 4 ff e tan2 ff Sajnos ez az eloszlás nem alkalmas fontosság szerinti mintavételre. Ezt a hiányosságot küszöböli ki a Ward féle változat: P ~ H ( ~ H)= 1 m 2 ß cos 3 ff e tan2 ff m 2 : (2.44)

22 20 2. Az árnyalás optikai alapmodellje A megfelelő mintavételezési séma az alábbi: ff =arctan(m p log(1 u)); ffi =2ß v: Fényforrások A fényforrások olyan felületek, ahol az L e saját sugárzás nem zérus. A képszintézis során absztrakt fényforrásokat is használhatunk, amelyek nem fordulhatnak elő a valós életben [SKe95]. Ezek legfontosabb típusai a következők: ffl a pont-fényforrás a 3D egy pontjában található, kiterjedése nincs. Egy másik pontban a sugárzási irány a pontot és a fényforrás helyét összekötő vektor. Az intenzitás a távolság négyzetével csökken. Az elektromos izzó jó közelítéssel ebbe a kategóriába sorolható. ffl az irány-fényforrás vagy más néven párhuzamos-fényforrás végtelen távol levő sík sugárzónak felel meg. Az irányfényforrás iránya és intenzitása minden pontban azonos. A nap irány-fényforrásnak tekinthető. ffl az ambiens-fényforrás minden pontban és minden irányban azonos intenzitású Mérőműszerek A kameramodell megalkotásához vizsgáljuk meg, hogy hogyan reagál az emberi szem a monitorból és a valós világból érkező ingerekre. e e ω θ Φ Ω p y e Ω p Φ p L p pixel p y - e valós világ szemlélése monitor szemlélése ábra. Az emberi szem modellje Az emberi szemben egy lencse, ún. pupilla található, amelynek mérete e (2.11. ábra). A továbbiakban feltételezzük, hogy a pupilla a monitorhoz ésatárgyakhoz képest kicsiny. Amikor a szem a monitortól kap ingereket, p pixelt Ω p térszögben látjuk. Annak érdekében, hogy a monitorból érkező gerjesztés a valós gerjesztéssel egyezzen meg, a pixel által kibocsátott és a pupillára érkező Φ p teljesítménynek a valós világból a Ω p térszögből a pupillára jutó Φ teljesítménynek kell megfelelnie. Amennyiben a pixel sugárzási intenzitása L p, a pixelből a pupillára jutó teljesítmény: Φ p = L p e cos e Ω p ; ahol e a pupilla felületi normálisa és a pixel iránya által bezárt szög. A kameramodellnek olyan P mért értéket kell előállítani, amelyet a rasztert árba írhatunk, és amellyel a monitort vezérelhetjük. A monitor válaszát egy B R(P) összefüggéssel jellemezhetjük, ahol B az aktuális fényerőbeállításoktól függő skálatényező, R pedig normalizált, de esetlegesen nem lineáris függvény. A monitor nem linearitását kompenzálhatjuk úgy, hogy a look-up tábla segítségével a P értékeket előtorzítjuk ezen normalizált válasz inverzével, azaz R 1 -gyel. A torzítást gamma-korrekciónak nevezik. A gamma-korrekcióután a sugársűrűség: L p = B R(R 1 (P )) = B P: Mivel elvárásunk szerint Φ p =Φ, a kameramodellnek a következőmért értéket kell szolgáltatnia: P = R R 1 Lp B = L p B = Φ e cos e Ω p B :

23 2.12. Mérőműszerek 21 Rendeljünk egy mérőműszert ehhez a pixelhez. Műszerünk a pixelben azaz a Ω p térszögben látható pontokra és azokra az irányokra érzékeny, amelyek a látható pontokat a pupillával összekötik. Formálisan ez a következő érzékenységfüggvénnyel adható meg: W e (~y;!) = ( C; ha ~y láthatóaωp térszögben és! az ~y pontból a e pupillára mutat ; 0; egyébként, (2.45) ahol Aműszer a következőmért értéket mutatja: P = ML = C = Ω S 1 e cos e Ω p B : A 2.1. egyenlet alkalmazásával, az alábbi helyettesítéseket végezhetjük el: L(~y;!) W e (~y;!) cos d~yd!: (2.46) d! = d~e cos e j~y ~ej 2 ; j~y ~ej2 d~y = d! p ; cos ahol d~e a pupilla egy differenciális területe és j~y ~ej alátható felület és a pupilla távolsága. Ezeket behelyettesítve és kihasználva, hogy a pupilla e mérete kicsiny, a következőket kapjuk: P = Ωp e L(h(~e;! p);! p) C Ωp cos e j~y ~ej2 j~y ~ej2 cos cos d~ed! p = L(h( eye; ~! p );! p ) C cos e e d! p = Ωp Ωp e L(h(~e;! p);! p) C cos e d~ed! p ß L(h( eye; ~! p );! p ) 1 Ω p B d! p; (2.47) ahol eye ~ a kicsiny pupilla pozíciója,! p pedig az ~y pontot a szemmel összekötőirány. Vegyük észre, hogy a mért érték független mind a látható pont távolságától, mind pedig a látható felület orientációjától. Ez megfelel annak a tapasztalatnak, hogy egy objektumra (például a falra) ránézve ugyanolyan fényesnek érezzük akkor is, ha közelebb megyünk hozzá, vagy ha eltávolodunk tőle. A jelenséget azzal magyarázhatjuk, hogy amikor távolodunk a felülettől, bár az egységnyi felület által kibocsátott és a szembe jutó teljesítmény csökken a távolság négyzetével, az adott térszögben látható felület nagysága ugyanezen sebességgel nő. Hasonlóan, ha nem merőlegesen nézünk rá egy felületre, a sugársűrűséget az orientációs szög koszinuszával szorozni kell, viszont a látható terület tényleges mérete fordítottan arányos ezen szög koszinuszával. ablak Ω p θ p dω p p pixel Ω p θ dω p y eye eye f : fókusz távolság y - eye ábra. A mért érték kiszámítása a pixelen végrehajtot integrálásként (bal) és a felületen végrehajtott integrálásként (jobb) Az Ω p térszög azon irányokat tartalmazza, amelyek keresztülmennek a pixelen. A mért értéket adó integrál az S p területű pixelen is kiértékelhető (2.12. ábra). Legyen ~p a pixelen futó pont, p pedig a pixel felületi normálisa és a ~p eye ~ vektor által bezárt szög. Jelöljük pix -szel p értékét a pixel közepén. Mivel fenáll a j~p eyej ~ = f=cos p összefüggés, ahol f a fókusztávolság, azaz a szem és az ablak síkja közötti távolság, a következő összefüggést állíthatjuk fel: d! p = d~p cos p d~p cos 3 p = : (2.48) j~p eyej ~ 2 f 2

24 22 2. Az árnyalás optikai alapmodellje Behelyettesítve a egyenletbe, a mért érték az alábbi: 1 P = L(h(~p;! ~p );! ~p ) Ω p B cos 3 p f 2 S p d~p: Vezessük be a c(~p) kamera paramétert: Felhasználva, hogy Ω p = Ωp c(~p) = d! p = a kamera paraméter a következőmódon közelíthető: S p S p Ω p B cos cos 3 p f 2 3 p f 2 : (2.49) d~p ß S p cos 3 pix ; (2.50) f 2 c(~p) = S p cos 3 p B R cos 3 p d~p ß S p cos 3 p B cos 3 pix ß 1 B : (2.51) Ez a közelítés akkor pontos, ha a pixel a fókusztávolsághoz képest kicsiny. számított integrállal kapjuk: P = S p Összefoglalva, a mért értéket egy pixelen L(h(~p;! ~p );! ~p ) c(~p) S p d~p: (2.52) A egyenlet integrálját a felületeken is kiértékelhetjük. Az ábra jelöléseivel azt kapjuk, hogy: d! p = d~y cos j~y eyej ~ 2 ahol ~y a pixelben látható felületi pont. Legyen azon pontok indikátor függvénye, amelyek a Ω p térszögben láthatók V Ω p (~y). Amért érték tehát: P = Vezessük be a felületi kamera paramétert: g(~y) = 1 Ω p B j~y ~ S L(~y;! ~y! eye ~ ) V Ω p (~y) 1 Ω p B cos j~y eyej ~ d~y: 2 eyej 2 = f 2 B j~y ~ cos 3 p d~p ß 2 f B j~y ~ S p eyej 2 R eyej 2 S p cos 3 pix (2.53) a egyenlet felhasználásával, amely Ω p térszöget fejezi ki. A mért érték végső alakja a következő: P = S L(~y;! ~y! eye ~ ) V Ω p (~y) g(~y) cos d~y: (2.54) Ezen képletet a egyenlettel összevetve az alábbi érzékenységfüggvényt kapjuk: W e (~y;!) = 8 < : ffi(!! ~y! eye ~ ) g(~y); 0; egyébként. ha ~y látható a pixelen keresztül; (2.55) Színleképzés A fény elektromágneses hullám és a szín ezen hullám spektrális jellemzőinek hatása az emberi szemben. A szem nagyon gyenge spektrométer, a fotopigmentjei a beérkező energiát három, részben átlapolódósávban képesek mérni. Ennek következtében a monitoron nem szükséges a számított spektrumot reprodukálni, csupán olyat kell találni, amely a szemben ugyanolyan színérzetet ad. Ezt a lépést nevezzük sz ínleképzésnek (tone mapping). Idáig a fényt radiometriai jellemzőkkel írtuk el, amely azt különböző hullámhossztartományokban átvitt enegrianyalábként közelíti meg. Az emberi szem azonban nem egyenlő mértékben érzékeny a különböző hullámhosszokra, ezért

25 2.13. Színleképzés 23 a vizuális hatás kifejezése miatt a spektrumot a szem érzékenységi görbéjével súlyozni szokták. A súlyozott mértékeket fotometriai jellemzőknek nevezzük. Ahelyett, hogy a spektrumfüggvényekkel kellene dolgoznunk [ Ábr97, Nem90], a színérzetet három skalárral jellemezhetjük, amelyeket tristimulus értékeknek is nevezzük. Másképpen, a színérzetek tere három dimenziós. Ebben a térben egy koordináta-rendszert felállíthatunk úgy, hogy három olyan hullámhosszot választunk, ahol mindig másik fotopigmens domináns [SK99b]. A törvényt formálisan Grassmann mondta ki, aki megadta a három hullámhossz szétválasztásának pontos kritériumait is. Nevezetesen a Grassmann törvény szerint a reprezentatív hullámhosszokat úgy kell kiválasztani, hogy a három közül semelyik hullámhossz okozta színérzetet ne lehessen kikeverni a másik kettő kombinációjaként. A reprezentatív hullámhosszok egy megfelelőválasztása az alábbi: red = 645 nm; green =526nm; blue =444nm: (2.56) Ezeket vörös, zöld és kék összetevőknek nevezzük. Tételezzük fel, hogy a szemünk hullámhosszú monokromatikus fényt érzékel. Az ekvivalens vörös, zöld és kék intenzitásokat azaz az (r, g, b) tristimulus értékeket három sz ínillesztő függvénnyel állíthatjuk elő (r( ), g( ) és b( )), amelyeket fiziológiai mérésekkel vettek fel (2.13. ábra). Vegyük észre, hogy az r( ) függvény (és kisebb mértékben a g( ) is) egyes hullámhossztartományokban negatív, azaz az adott monokromatikus fény keltette színérzet nem állítható elő vörös, zöld és kék fények pozítív keverékeként R=645nm, G=526nm, B=444nm matching functions r(lambda) g(lambda) b(lambda) r,g,b lambda[nm] ábra. Stiles és Burch 10-fokos látószögben felvett színillesztő függvényei: r( ), g( ), b( ). Ha az érzékelt fény kromatikus (nem monokromatikus), hanem spektuma egy L( ) függvénnyel jellemezhető, a tristimulus koordinátákat azzal a feltételezéssel számíthatjuk ki, hogy a színérzet az elemi monokromatikus komponensek összege: r = L( ) r( ) d ; g = L( ) g( ) d ; b = L( ) b( ) d : (2.57) A számítógépes grafika célja az, hogy a virtuális világ képét a számítógépes monitoron néző felhasználó színérzete közelítőleg a valós világ szemlélésekor keletkező színérzettel egyezzen meg. Mivel színérzeteket (r, g, b) hármasokkal adunk meg, a fenti követelmény a monitor fénykibocsátásából számított illetve a valós világ fénye alapján meghatározott tristimulus értékek megegyezőségét jelenti. Ha két, akár nagyon különböző spektum hasonló tristimulus értékekre vezet, akkor a szem által megkülönböztethetetlenek. Ezeket a spektrumokat metamereknek nevezzük. A számítógépes monitorokban az elektronsugarak három különböző foszforvegyületet bombáznak, amelyek ennek hatására vörös, zöld és kék színű fényt bocsátanak ki. Az elektronsugarakat tehát úgy kell szabályozni, hogy a gerjesztett fény a valós fény metamerjét adja [Sch96, BS95]. A gerjesztést az egyes pixelek (R, G, B) értékeivel szabályozhatjuk, amelyeket a raszter-memória tárol. A ábra (r, g, b) színillesztő függvényei függenek a három választott hullámhossztól (ezek a fenti ábrán rendre 645 nm, 526 nm és 444 nm). Előfordulhat, hogy a saját monitorunk más hullámhosszokon sugároz. Ekkor a pixel (R, G, B) értékeit egy járulékos lineáris transzformációval számíthatjuk ki. Összefoglalva, a pixel R; G; B értékeinek számítása a következő lépésekből áll. Először a pixelhez tartozó spektrumot határozzuk meg, majd a színillesztő függvények segítségével előállítjuk a három szabványos tristimulus koordinátát. Végül a tristimulus értékeket a monitor valódi színkoordinátáira transzformáljuk figyelembe véve a monitor tulajdonságait. A

26 24 2. Az árnyalás optikai alapmodellje gyakorlatban a szabványos tristimulus értékeket CIE XY rendszerben adjuk meg [WS82], amelyek olyan három hipotetikus (nem monokromatikus) spektrum kombinálásával fejezik ki a színérzeteket, amelyekre bármely színérzet koordinátái nem negatívak. Az RGB rendszerben ugyanis negatív koordináták a negatív színillesztő függvények miatt minden további nélkül előfordulhatnak, az XY-ben viszont nem.az Y koordinátának speciális jelentése van, ez a szem spektr ális érzékenységi függvénye, tehát ez teremt kapcsolatot a radiometriai és fotometriai mennyiségek között X,Y, matching functions X(lambda) Y(lambda) (lambda) X,Y, lambda[nm] ábra. Stiles és Burch 10 fokos látószögben felvett XY színillesztő függvényei: X( ), Y ( ), ( ) Az XY rendszerből a monitor RGB rendszerébe vivő transzformációt a monitor foszforrégetei által kisugárzott fény X; Y; koordinátáinak és a monitor fehér pontjának ismeretében adhatjuk meg. Szabványos NTSC foszfor rétegek és fehér pont esetén a következő transzformációadódik [Gla95]: 2 4 R G B = 4 1:967 0:548 0:297 0:955 1:938 0:027 0:064 0:130 0: X Y 3 5 : (2.58) A számított spektrumhoz tartozó (R, G, B) értékek meghatározását összefoglalóan sz ínleképzésnek nevezzük. A hardver által megengedett (R, G, B) értékek pozitívak, általában a [ ] tartományba esnek. Nem állítható elő tehát valamennyi valós szín, egyrészt a színillesztő függvények negatív tartományai, másrészt pedig a korlátozott színdinamika miatt. A mai monitorok által létrehozható színek intenzitásainak aránya kb. a százas nagyságrendbe esik, míg az emberi szem akár nagyságú tartományt is át tud fogni, úgy, hogy az egyszerre érzékelt fényesség ugyancsak a százas tartományban esik. Aszínleképzésnek követnie kell a szem adaptációs tulajdonságát és a számított színek alapján egy közelítő színt kell választania a rendelkezésre állókészletből [PP98]. A következőkben összefoglaljuk a legfontosabb skálázási lehetőségeket [MNP99]. Jelöljük a számított színintenzitást I-vel, amely most a vörös, zöld és kék komponensek bármelyikét jelentheti, a rasztertárba írt és a monitor által ténylegesen megjelenített fizikai értéket pedig D-vel. A feladat tehát olyan I! D leképzést találni, amely a számított színeket hűen vissaadja, de figyelembe veszi a monitor illetve a hardver lehetőségeit és az emberi látórendszer tulajdonságait is. A legegyszerűbb leképzés a lineáris skálázás, amely a maximális számított színintenzitást a hardver által előállítható maximális színintenzitásra képezi le: D = D max I max I: A lineáris skálázás használhatatlan eredményt ad, ha a fényforrás is látszik a képen, hiszen a kép túlságosan sötét lesz. Ezen úgy segíthetünk, hogy az I max értéket a képen levő azon pixelek színértékeinek maximumaként keressük meg, amelyben nem fényforrás látszik. A látható fényforrás értékek színe ennek következtében D max -ot meghaladhatja, amikoris az színértéket D max -ra vágjuk. A közép érték leképzés az átlagos számított intenzitást (I ave )afizikai tartomány felére képezi le, majd a D max -nál nagyobbra adódó értékeket D max -ra vágja: D = minρ Dmax 2I ave I;D max ff :

27 2.13. Színleképzés 25 A leképzés során a [2I ave ;I max ] tartományba eső információ elveszik. Másrészt, ha az átlagos színintenzitás alacsony (például szénbánya), a kép túl világos lesz, míg ha az átlagos színintenzitás magas (például havas táj), a kép túl sötétté válik. Ezeket a problémákat a fényképezésben a blende és expozíciós idő beállításával oldják meg. A következő eljárás éppen ezt a módszert szimulálja. Az interaktív kalibráció a leképzést két szabad paraméterrel vezérli, amelyet kontrasztnak és apertúrának nevezünk. A c kontraszt a számított színértékek vágási tartományában a minimum és szélesség értékek arányát adja meg, tehát a túlcsordulás elkerülése végett minden színt az [s; s + s c] tartományra vágunk. Az a apertúrát log 2 -s skálán adjuk meg úgy, hogy 0 apertúra esetén a közép érték leképzéshez hasonlóan 2I ave a felsővágási értékre kerüljön: s (1 + c) =2I ave 2 a =) s = I ave 2 a+1 A vágás után az intenzitások a [s; s + s c]-ben lehetnek, ahonnan egy lineáris leképzéssel átvisszük őket a fizikailag ábrázolható [0;D max ]-ra: D = D max s c és a 0 alatti illetve D max feletti értékeket 0-val illetve D max -szal cseréljük ki. Ebben a módszerben a kontrasztot és az apertúrát a felhasználónak kell beállítania. A kontrasztot a képernyő paraméterek alapján célszerű kiválasztani (c = 50::100). Az apertúra automatikusan is megkereshető ha minimális információ veszteségre törekszünk. A minimális információ veszteség módszer az intenzitások vágási tartományát úgy állítja be, hogy a vágott színek száma (vagy akár a vágott színeket tartalmazó pixelek száma) minimális legyen. Vegyünk fel egy log-log típusú hisztogramot az intenzitásokról és rögzített c kontraszt érték mellett keressük meg azt az s intervallum kezdetet, amelyre a [s; s + s c] intervallum a legtöbb hisztogram bejegyzést tartalmazza. A Ward skálázó faktora az emberi látórendszer vizsgálatán alapul és figyelembe veszi, hogy mielőtt a felhasználó a monitorra pillantana, a szeme milyen fényességhez szokott. A szem által érzékelt fényességet a fotometriai f ényerő (luminancia) fejezi ki, amelynek mértékegysége a kandela [cd]. A fotometriai fényerőt a fény spektrumának és az érzékenységi függvény szorzatának az integrálja adja meg. A javasolt leképzés: D = D max I d;max (I s)» 1:219 + Id;max =2 1:219 + I 0:4 w 1+c 2:5 I; ahol I d;max maximális képernyő luminancia, I w pedig az a luminancia, amihez a szem hozzászokott. A monitort figyelő felhasználónál az adaptációs luminancia a képernyőn látható értékek átlaga. A RenderPark program ezt a színleképzést alkalmazza. Ismert tény, hogy az emberi érzékelés nem lineáris, hanem logaritmikus, ami nem lineáris skálázásnak is létjogosultságot ad. Az egyik legegyszerűbb nem-lineáris modell a Schlick lek épzés: D = D max p I p I I + I max ; ahol p egy alkalmasan választott paraméter. Legyen G a legsötétebb nem fekete szürke szín, N pedig a fizikai eszköz által megjeleníthető intenzitások száma (tipikusan 255). Ekkor az ismeretlen p paraméter: p = G I max G I min N I min G I min : :

28 26 2. Az árnyalás optikai alapmodellje

29 3. fejezet A globális illuminációs feladat megoldásának lehetőségei Mivel az árnyalási- és potenciál egyenlet az ismeretlen radianciát illetve a potenciált az integrálon belül és kívül is egyaránt tartalmazza, ezért a megoldásnál ezt a csatolást kell feloldani. A megoldási lehetőségeket alapvetően három csoportba oszthatjuk: inverzió, expanzió és iteráció Inverzió Az inverzió az ismeretlen függvényektől függő tagokat az egyenlet egyik oldalán csoportosítja, majd formálisan egy inverziós műveletet hajt végre: (1 T)L = L e =) L =(1 T) 1 L e : (3.1) Amért teljesítmény tehát: ML = M(1 T) 1 L e : (3.2) Sajnos a T operátor végtelen dimenziójú, ezért nem invertálható közvetlenül, így a függvényt a v éges-elem módszer segítségével kell közelíteni, ami az eredeti feladatot egy véges dimenziójú térbe vetítve oldja meg. Ez a vetítés az eredeti integrált lináris egyenletrendszerré alakítja át, amely már invertálható, például Gauss eliminációs módszerrel. Ezt a módszer a korai radiozitás eljárásokban használták, de a köbös komplexitás és a mátrix invertálásának numerikus pontatlansága miatt elvetették. Az inverzió kizárólagos tulajdonsága, hogy a hatékonysága nem függ az integráloperátor kontrakciójától, és egyáltalán nem kívánja meg, hogy az integráloperátor kontraktív legyen Expanzió Az expanzió oly módon küszöböli ki a csatolást, hogy a megoldást Neumann-sor formájában írja fel Az árnyalási egyenlet expanziója: a gyűjtőséta Helyettesítsük be a jobb oldali L függvénybe az L e +T L alakú teljes jobb oldalt, ami az egyenlet szerint nyilván egyenlő L-lel: L = L e + T L = L e + T (L e + T L) =L e + T L e + T 2 L: Ugyanezt ismételjük meg n-szer: L = nx i=0 T i L e + T n+1 L: Ha az integráloperator T kontrakció, akkor lim n!1 T n+1 L =0,ezért L = 1X i=0 T i L e : (3.3) Amért fényteljesítmény pedig: ML = 1X i=0 MT i L e : (3.4) 27

30 28 3. A globális illuminációs feladat megoldásának lehetőségei x 2 θ 2 ω 2 p L(x, ω ) ω p p θ 1 ω 1 x 3 x ábra. A T 2 L e integrandusa egy két lépéses gyüjtőséta során Avégtelen sor egyes tagjainak intuitív jelentése van: T 0 L e = L e afényforrások direkt hozzájárulása a mért fényteljesítményhez, T 1 L e az egyszeres visszaverődésekből származik, T 2 L e akétszeres visszaverődésekből, stb. Vizsgáljuk meg a sor i. tagját (T i L e ), amely egy i dimenziós integrál. Például i =2esetben: M(T 2 L e )= S p Ω 0 1 Ω 0 2 c(~p) w 1 (~x 1 ) w 2 (~x 2 ) L e (~x 3 ;! 0 2 S ) d!0 2 d!0 1d~p: (3.5) p ahol S p a pixel területe, c(~p) a kamera-paraméter, ~p a pixelen mozgó pont,! 0 1 és!0 2 az első ill. második visszaverődés iránya (3.1. ábra) és és a súlyfüggvények pedig ~x 1 = h(~p;! ~p ); ~x 2 = h(~x 1 ;! 0 1 ); ~x 3 = h(~x 2 ;! 0 2 )=h(h(~x 1;! 0 1 );!0 2 ); (3.6) w 1 = f r (! 0 1 ;~x 1;! ~p ) cos 0 1 ; w 2 = f r (! 0 2;~x 2 ;! 0 1 ) cos 0 2: (3.7) Az integrandus a (~p;! 1;! ) pontban történőkiértékeléséhez a következő algoritmust kell végrehajtani: 1. Azon ~x 1 = h(~p;! ~p ) pontot kell meghatározni, amely a pixel ~p pontján keresztül látható a szemből. Ehhez a szemponzícióból a ~p pont irányába egy sugarat küldünk, és megkeressük az elsőként metszett felületet. 2. A felület azon ~x 2 = h(~x 1 ;! 0 1 ) pontját azonosítjuk, amely az ~x 1 pontból a! 0 1 irányba látható. Ezt egy újabb sugár ~x 1 pontból! 0 1 irányba való kibocsátásával és az elsőként metszett felületet meghatározásával lehet elérni. 3. Megkeressük a ~x 3 = h(h(~x 1 ;! 0 1 );!0 2 ) felületi pontot, amely ~x 2 pontból! 0 2 irányban látható. Ez a! 0 2 irányba való továbbhaladást jelenti. 4. Az ~x 3 pont! 0 2 irányú emisszióját leolvassuk, majd megszorozzuk a két visszaverődés koszinuszos tagjaival súlyozott BRDF értékeivel. Ez az algoritmus könnyen általánosítható akárhány visszaverődésre. A sugár rekurzívan folytatja útját alátható pontból! 0 1 irányba, majd a megtalált felületről! 0 2 irányba, stb. egészen! n-ig. 0 Az emissziót a visszaverődési lánc végén leolvassuk, majd megszorozzuk az egyes visszaverődések koszinuszos tagjaival súlyozott BRDF értékeivel. Ezek az utak az integrandus értékeit adják a ~p;! 1;! 0 2;:::;! 0 n 0 pontokban. Vegyük észre, hogy egyetlen n hosszú visszaverődési láncot felhasználhatjuk az 1-szeres, 2-szeres, :::, n-szeres visszaverődési tagok becslésére, ha az emissziót nem csupán az utolsó pontban, hanem minden meglátogatott pontban leolvassuk. A bemutatott bolyongás a szempozícióból indul, és gy űjti az illuminációt e séta alatt. Az összegyűjtött illumináció a visszaverődések után csökken az út koszinuszos taggal súlyozott BRDF értékeinek megfelelően. Ez ideáig a Neumann-sor szerkezetének tagjait úgy vizsgáltuk, mint egy darab többdimenziós integrált. Más oldalról közelítve úgy is tekinthetjünk ezt a szerkezetet, mint rekurzívan kiértékelt irányintegrálokat. Például a 2-szeres visszaverődésre fennáll: MT 2 L e = S p w Ω 0 1 w Ω w 2 L e d! 0 25 d! 0 15 d~p: (3.8)

31 3.2. Expanzió 29 Ha számítani akarjuk a külső integrált, akkor a ~p mintapontban meg kell határozni az integrandust. Ez azonban az integrál! 0 1 változójában történő kiértékelését teszi szükségessé a~p-ben, amely rekurzívan az integrál! 0 2 változójának előállítását követeli meg (~p;! 0 1 )-ben. Ha ugyanannyi mondjuk m mintapontot használunk az összes integrálra, akkor ez a rekurzív megközelítés m pontot használ az 1-szeres visszaverődésre, m 2 pontot a 2-szeres visszaverődésre, m 3 pontot a 3-szoros visszaverődésre, stb. Ezt a fajta felosztást hasításnak (splitting) [AK90] nevezzük. A hasítás nem hatékony a többszörös visszaverődésekre az integráloperátor kontraktivitása miatt. A kontraktivitás miatt a többszörös visszaverődés hozzájárulása kisebb, és ezért nincs értelme olyan pontossággal számolni ezeket, mint a kisebb fokú visszaverődéseket Az potenciál egyenlet expanziója: a lövőséta A potenciál egyenlet szintén felírható Neumann-sor segítségével, hasonlóan az árnyalási egyenlethez: ami a következőmért értékhez vezet W = M 0 W = 1X i=0 1X i=0 T 0i W e ; (3.9) M 0 T 0i W e : (3.10) M 0 W e aközvetett emisszióból a kamera által mért teljesítmény, M 0 T 0 W e az egyszeres visszaverődés utáni teljesítmény, M 0 T 02 W e akétszeres visszaverődés utáni teljesítmény, stb. y 2 p ω2 Φ(dy 1, d ω1 ) y 1 ω p θ3 θ 2 ω 1 θ 1 y ábra. Az T 02 W e integrandusa egy két lépéses lövőséta során ahol Most újból vizsgáljuk meg a M 0 T 02 W e szerkezetét: ésasúlyok M 0 T 02 W e = S Ω 1 Ω 2 Ω 3 L e (~y 1 ;! 1 ) w 0 (~y 1 ) w 1 (~y 2 ) w 2 (~y 3 ) W e (~y 3 ;! 3 ) d! 3 d! 2 d! 1 d~y 1 ; (3.11) ~y 2 = h(~y 1 ;! 1 ); ~y 3 = h(~y 2 ;! 2 )=h(h(~y 1 ;! 1 );! 2 ) (3.12) w 0 = cos 1 ; w 1 = f r (! 1 ;~y 2 ;! 2 ) cos 2 ; w 2 = f r (! 2 ;~y 3 ;! 3 ) cos 3 : (3.13) Az elemi kamera mérő függvényét (2.55. egyenlet) behelyettesítve megállapíthatjuk, hogy M 0 T 02 W e csak akkor lehet zérustól különböző, ha ~y 3 látható az adott pixelen keresztül. Ekkor cos 3 hasonló inverz faktorral egyenlítődik ki és az integrál Ω 3 tartományon egyetlen értékre egyszerűsödik a Dirac-delta miatt. A kétszeres visszaverődés végleges képlete: S Ω 1 Ω 2 L e (~y 1 ;! 1 ) w 0 (~y 1 ) w 1 (~y 2 ) w 2 (~y 3 ) g(~y 3 ) d! 2 d! 1 d~y 1 : (3.14) ha ~y 3 látható az adott pixelen keresztül és 0 egyébként, valamint g(~y 3 ) a felületi kamera paraméter. Az integrandus (~y 1 ;! 1 ;! 2 ) pontbeli kiértékeléséhez a következő algoritmus használható:

32 30 3. A globális illuminációs feladat megoldásának lehetőségei 1. Kiszámoljuk az ~y 1 pont! 1 irányának koszinuszos taggal súlyozott emisszióját, majd meghatározzuk azt a ~y 2 = h(~y 1 ;! 1 ) felületi pontot, amely ~y 1 pontból! 1 irányban látható. Ezt elvégezhetjük egy a ~p pont pontból a! 1 irányba küldött sugár segítségével. Ez a pont kapja a számolt koszinuszos taggal súlyozott emissziót. 2. Megkeressük az ~y 3 = h(h(~y 1 ;! 1 );! 2 ) pontot, amely ~y 2 pontból! 2 irányban látható. Ez a sugárkövetés folytatását jelenti! 2 irányban. Az emissziót újból súlyozzuk a helyi BRDF-fel és a felületi normális és a kimenőirány közötti szög koszinuszával. 3. Meghatározzuk, hogy az ~y 3 pont látható-e szempozícióból és megkeressük, hogy melyik pixelen keresztül. Az ehhez a pixelhez tartozó hozzájárulást az emisszió helyi BRDF-jének, koszinuszos tagjának és a felületfüggő kamera paraméterének súlyozásával számolhatjuk ki. Ezt a fajta sétát lövőnek nevezik, amely a fényforrás egy ismert ~y 1 pontjából indul, és a foton visszaverődését szimulálja, majd végül megérkezik ahhoz a pixelhez, amelyik intenzitásához hozzájárul. Megjegyzendő, hogy míg a gyűjtőséta során a BRDF-t a felületi normális és a beeső irány közötti szög koszinuszával szorozzuk, addig a lövősétánál ez a szorzás a felületi normális és a kimenőirány közötti szög koszinuszával történik Az expanzió előnyei és hátrányai Az expanzió fő problémája, hogy nagyon magas dimenziójú integrálok kiértékelését teszik szükségessé, amelyek a végtelen sor egyes tagjai. A gyakorlati megvalósítás során gyakorta csonkítják a végtelen Neumann-sort, ami némi torzítást eredményez, vagy a sétát véletlenszerűen fejezik be, amely jelentősen csökkenti a magasabb fokú többszöri sugár-visszaverődés mintapontjainak számát. Másrészt az expanziónak van egy fontos előnye is, nevezetesen, nem igényli a teljes radiancia függvény ideiglenes ábrázolását, ezért nem kívánja meg a véges-elem megközelítést. Ebből következően ezek az algoritmusok a tér eredeti geometriájával dolgozhatnak a felületek háromszöglistával történőközelítése helyett. Az expanzió a véletlen sétákat egymástól függetlenül állítja elő. Ez egyrészt előny jelent, mivel így ezek az algoritmusok könnyen párhuzamosíthatók. Sajnos, ez egyúttal azt is jelenti hogy ezek az módszerek elfelejtik a megelőző séták alatt felhalmozott információkat, így nem hasznosítják a korábbi lépések részeredményeit Iteráció Az iteráció alapja az a felismerés, hogy az árnyalási egyenlet megoldása a következő iterációs séma fixpontja: L n = L e + T L n 1 ; (3.15) ezért ha a T operátor kontrakció, akkor a séma a megoldáshoz konvergál bármilyen L 0 kezdeti függvényből. A mért teljesítmény határértékként számítható ML = lim n!1 ML n: (3.16) Aközelítő L n függvény tárolására általában véges-elem módszerek használhatók, mint például, a diffúz [SC94] vagy a nem diffúz radiozitásban használatos particionált félgömb [ICG86], gömbi irányeloszlás [SAWG91] vagy illuminációs hálózatok [BF89]. Az iterációban két kritikus problémával találkozhatunk. Egyrészt mivel az L n értelmezési tartománya 4 dimenziós és variációja legtöbbször magas, ezért a pontos véges-elem közelítés nagyon sok bázisfüggvényt igényel. Bár a hierarchikus módszerek [HSA91, AH93], hullám vagy wavelet reprezentáció [CSSD96, SGCH94] és a klaszterezés [SDS95, CLSS97, SPS98] segíthet, de a memória szükséglet még mindig óriási összetett terek esetén. Ez a probléma kevésbé okoz gondot diffúz esetben, mivel itt a radiancia értelmezési tartománya csak 2 dimenziós. A másik probléma, hogy amikor véges-elem módszereket alkalmazunk, akkor a T integráloperátort csak közelítőleg számoljuk, ami újabb hibát okoz minden lépés során. Ha az integráloperátor kontrakciós tényezője, akkor a teljes halmozott hiba megközelítőleg 1=(1 )-szerese az egyes lépések hibáinak [SKFNC97]. Erősen visszaverő tereknél tehát, ha megközelítőleg 1 az iteráció nagyon lassú és az eredmény pontatlan. Diffúz radiozitás esetén az iteráció minőségének javítására több megoldás született. Ezek közé tartozik például az a javaslat [BBS96], miszerint a Jacobi vagy a Gauss-Seidel módszer helyett alkalmazzunk Csebisev iterációt. Másrészt felismerve, hogy az ilyen algoritmusok felépítésének kritikus része abban rejlik, miként találjuk meg az integráloperátor jó és kicsi megközelítését, a jól-elosztott sugár halmazok [NNB97, BNN + 98] módszere az operátor adaptív approximációját javasolja. Ez a megközelítés a helyesen megválasztott sugarak halmazából áll, amelyek a fontos felületi elemeket és irányokat veszik figyelembe. A [BNN + 98]-ben a diszkrét operátor adaptációját kiterjesztették, hogy a hierarchikus radiozitás-sal [HSA91] együttműködhessen.

33 3.3. Iteráció 31 Összehasonlítva az expanzióval, az iteráció mind előnnyel mind pedig hátránnyal rendelkezik. Fontos tulajdonsága, hogy potenciálisan képes az előző lépésekben megszerzett információt újrahasznosítani, és kihasználni a radiancia függvény koherenciáját, ezért az iteráció várhatóan gyorsabb, mint az expanzió. Az iterációt egy végtelen hosszúságú véletlen bolyongásként is értelmezhetjük. Ha megfelelően alkalmazzuk, akkor az iteráció nem csökkenti a becsült értékek számát többszörös visszaverődésekre, ezért az erősen fényvisszaverő terek esetén jóval hatékonyabb, mint az expanzió. Az iteráció azon két tulajdonsága, miszerint tesszellációt és véges-elem közelítést követel meg, általánosan e módszer hátrányai közé sorolható. Az éles árnyékok és világos részek nagyon spekuláris anyagoknál nem tökéletes megjelenítést okozhatnak, és fénylyukak keletkezhetnek. Ennek ellenére a véges elem közelítés a vizualizáció során szűrésnek is megfelel, amely vizuálisan kellemesebb és pont-zaj nélküli képeket eredményez. Összefoglalva, az iteráció jobb választás, ha atér nem nagyon spekuláris.

34 32 3. A globális illuminációs feladat megoldásának lehetőségei

35 4. fejezet Láthatóság számítás Az idáig ismertetett algoritmusok alapvető lépése egy félegyenest, ún. sugarat küld a térbe és megkeresi az objektumoknak és a sugárnak a sugár kezdőpontjához legközelebbi metszéspontját. A gyakorlati tapasztalatok szerint a képszintézis programok a futás során az idő 75 96%-t ezzel a feladattal töltik, ezért ennek hatékony implementációja a gyors sugárkövetés kulcsa. Ebben a fejezetben ezen geometriai művelet hatékony megvalósításával foglalkozunk Metszéspontszámítás egyszerű felületekre A sugarat általában a következő egyenlettel adjuk meg: ~r(t) =~s + t ~d; (t 2 [0; 1)): (4.1) ahol ~s a kezdőpont, ~ d =! a sugár iránya, a t sugárparaméter pedig kifejezi a kezdőponttól valótávolságot. A következőkben áttekintjük, hogy a különböző primitív típusok hogyan metszhetők el az ily módon megadott sugárral Háromszögek metszése A háromszögek metszése két lépésben történik. Először előállítjuk a sugár és a háromszög síkjának a metszéspontját, majd eldöntjük, hogy a metszéspont a háromszög belsejében van-e. Legyen a háromszög három csúcsa ~a, ~ b és ~c. Ekkor aháromszög síkjának normálvektora ~n =( ~ b ~a) (~c ~a), egy helyvektora pedig ~a, tehát a sík p pontjai kielégítik a következő egyenletet: ~n (~p ~a) =0: (4.2) A sugár és a sík közös pontját megkaphatjuk, ha a sugár egyenletét behelyettesítjük a sík egyenletébe, majd a keletkező egyenletet megoldjuk az ismeretlen t paraméterre. Ha a kapott t Λ érték pozitív, akkor visszahelyettesítjük a sugár egyenletébe, ha viszont negatív, akkor a metszéspont a sugár kezdőpontja mögött van. A sík metszése után azt kell ellenőriznünk, hogy a kapott ~p pont vajon a háromszögön kívül vagy belül helyezkedik-e el. A ~p metszéspont akkor van a háromszögön belül, ha a háromszög mind a három oldalegyeneséhez viszonyítva a háromszöget tartalmazó félsíkban van: (( ~ b ~a) (~p ~a)) ~n 0; ((~c ~ b) (~p ~ b)) ~n 0; ((~a ~c) (~p ~c)) ~n 0: (4.3) Implicit felületek metszése A síkmetszéshez hasonlóan egy gömbre úgy kereshetjük a metszéspontot, ha a sugár egyenletét behelyettesítjük a gömb egyenletébe: majd megoldjuk t-re az ebből adódó j(~s + t ~d) ~cj 2 = R 2 (4.4) ( ~ d) 2 t 2 +2 ~d (~s ~c) t +(~s ~c) 2 R 2 =0 (4.5) egyenletet. Csak a pozitív valós gyökök érdekelnek bennünket, ha ilyen nem létezik, az azt jelenti, hogy a sugár nem metszi a gömböt. Ez a módszer bármely más kvadratikus felületre használható. A kvadratikus felületeket különösen azért 33

36 34 4. Láthatóság számítás szeretjük a sugárkövetésben, mert a metszéspontszámítás másodfokú egyenletre vezet, amit a megoldóképlet alkalmazásával könnyen megoldhatunk. Egy F (x; y; z) =0implicit egyenlettel definiált felület metszéséhez a sugáregyenletnek az implicit egyenletbe történő behelyettesítésével előállított f (t) =F (s x + d x t; s y + d y t; s z + d z t) =0 nemlineáris egyenletet kell megoldani, amelyhez numerikus gyökkereső eljárásokat használhatunk [SKe95] Paraméteres felületek metszése Az ~r = ~r(u; v), (u; v 2 [0; 1]) paraméteres felület és a sugár metszéspontját úgy kereshetjük meg, hogy először az ismeretlen u; v; t paraméterekre megoldjuk a ~r(u; v) =~s + t ~d (4.6) háromváltozós nemlineáris egyenletrendszert, majd ellenőrizzük, hogy a t pozitív és az u; v paraméterek valóban a [0; 1] tartomány belsejében vannak-e. A gyakorlatban a nemlineáris egyenletrendszerek megoldása helyett inkább azt az utat követik, hogy a felületeket poligonhálóval közelítik (emlékezzünk vissza, hogy ez az ún. tesszell ációs folyamat különösen egyszerű paraméteres felületekre), majd ezen poligonhálót próbálják elmetszeni. Ha sikerül metszéspontot találni, az eredményt úgy lehet pontosítani, hogy a metszéspont környezetének megfelelő paramétertartományban egy finomabb tesszellációt végzünk, és a metszéspontszámítást újra elvégezzük Transzformált objektumok metszése A sugárkövetés egyedülálló tulajdonsága, hogy nem igényel tesszellációt, azaz az objektumokat nem kell poligonhálóval közelíteni, mégis implicit módon elvégzi a nézeti transzformációs, vágási, vetítési és takarási feladatokat. Ha az objektumokat közvetlenül a világ-koordinátarendszerben írjuk le, ezek elegendőek is a teljes képszintézishez. Ha viszont az objektumok különálló modellezési koordinátarendszerben találhatók, a modellezési transzformációt valahogyan meg kell valósítani. Ez ismét csak elvezet minket ahhoz a problémához, hogy hogyan is kell transzformálni például egy gömböt. Szerencsére ezt a kérdést megkerülhetjük, ha nem az objektumot, hanem a sugarat transzformáljuk, hiszen a sugár és egy T transzformációval torzított objektum metszéspontját kiszámíthatjuk úgy is, hogy meghatározzuk a T inverzével transzformált sugár és az objektum metszetét, majd a T alkalmazásával az eredeti sugárra képezzük a pontokat CSG modellek metszése A konstruktív tömörtest geometria (CSG) a modelleket egyszerű primitívekből (kocka, henger, kúp, gömb, stb.) halmazműveletek ([ Λ ; Λ ; n Λ ) segítségével állítja elő. Egy objektumot általában egy bináris fa adatstruktúra ír le, amelyben a levelek a primitíveket azonosítják, a belső csomópontok pedig a két gyermeken végrehajtandó geometriai transzformációkat és az eredmény előállításához szükséges halmazműveletet. A fa gyökere magát az objektumot képviseli, a többi csomópont pedig a felépítéshez szükséges egyszerűbb testeket. Ha a fa egyetlen levélből állna, akkor a sugárkövetés könnyen megbirkózna a sugár és az objektum közös pontjainak azonosításával. Tegyük fel, hogy a sugár és az objektum felülete közötti metszéspontok t 1» t 2 ;:::» t 2k sugárparamétereknél találhatók. Ekkor a sugár a (~s + t 1 ~d, ~s + t 2 ~d), :::(~s + t 2k 1 ~d, ~s + t 2k ~d), pontpárok közötti szakaszokon (ún. belső szakaszok (ray-span)) a primitív belsejében, egyébként a primitíven kívül halad. A szemhez legközelebbi metszéspontot úgy kaphatjuk meg, hogy ezen szakaszvégpontok közül kiválasztjuk a legkisebb pozitív paraméterűt. Ha a paraméter szerinti rendezés után a pont paramétere páratlan, a szem az objektumon kívül van, egyébként pedig az objektum belsejében ülve nézünk ki a világba. Az esetleges geometriai transzformációkat az előző fejezetben javasolt megoldással kezelhetjük. Most tegyük fel, hogy a sugárral nem csupán egy primitív objektumot, hanem egy CSG fával leírt struktúrát kell elmetszeni! A fa csúcsán egy halmazművelet található, ami a két gyermekobjektumból előállítja a végeredményt. Ha a gyermekobjektumokra sikerülne előállítani a belső szakaszokat, akkor abból az összetett objektumra vonatkozó belső szakaszokat úgy kaphatjuk meg, hogy a szakaszok által kijelölt ponthalmazra végrehajtjuk az összetett objektumot kialakító halmazműveletet. Emlékezzünk vissza, hogy a CSG modellezés regularizált halmazműveleteket használ, hogy elkerülje a háromnál alacsonyabb dimenziójú elfajulásokat. Tehát, ha a metszet vagy a különbség eredményeképpen különálló pontok keletkeznek, azokat el kell távolítani. Ha pedig az egyesítés eredménye két egymáshoz illeszkedő szakasz, akkor azokat egybe kell olvasztani. Az ismertetett módszer a fa csúcsának feldolgozását a részfák feldolgozására és a belső szakaszokon végrehajtott halmazműveletre vezette vissza. Ez egy rekurzív eljárással implementálható, amelyet addig folytatunk, amíg el nem jutunk a CSG-fa leveleihez.

37 4.2. A sugárkövetés gyorsítási lehetőségei 35 r A B r A U * B r A U * B A \ r * B S l S l U * S S r r S l S l S U r * S r S l S l \ * S S r r 4.1. ábra. Belső szakaszok és a kombinálásuk CSGIntersect(ray, node) if node nem levél then left span = CSGIntersect(ray, node bal gyermeke); right span = CSGIntersect(ray, node jobb gyermeke); return CSGCombine(left span, right span, operation); else (node primitív objektumot reprezentáló levél) return PrimitiveIntersect(ray, node); endif end 4.2. A sugárkövetés gyorsítási lehetőségei A sugárkövetést megvalósító algoritmus minden egyes sugarat minden objektummal összevet és eldönti, hogy van-e köztük metszéspont. A módszer jelentősen gyorsítható lenne, ha az objektumok egy részére kapásból meg tudnánk mondani, hogy egy adott sugár biztosan nem metszheti őket (mert például a sugár kezdőpontja mögött, vagy nem a sugár irányában helyezkednek el), illetve miután találunk egy metszéspontot, akkor ki tudnánk zárni az objektumok egy másik körét azzal, hogy ha a sugár metszi is őket, akkor biztosan ezen metszéspont mögött helyezkednek el. Ahhoz, hogy ilyen döntéseket hozhassunk, ismernünk kell az objektumteret. A megismeréshez egy előfeldolgozási fázis szükséges, amelyben egy adatstruktúrát építünk fel. A sugárkövetés végrehajtásakor pedig a kívánt információkat ebből az adatstruktúrából olvassuk ki Befoglaló keretek A legegyszerűbb gyorsítási módszer a befoglal ó keretek (bounding volume) alkalmazása. A befoglaló keret egy egyszerű geometriájú objektum, tipikusan gömb vagy téglatest, amely egy-egy bonyolultabb objektumot teljes egészében tartalmaz. A sugárkövetés során először a befoglaló keretet próbáljuk a sugárral elmetszeni. Ha nincs metszéspont, akkor nyilván a befoglalt objektummal sem lehet metszéspont, így a bonyolultabb számítást megtakaríthatjuk. A befoglaló keretet úgy kell kiválasztani, hogy a sugárral alkotott metszéspontja könnyen kiszámítható legyen, ráadásul kellően szorosan körbeölelje az objektumot. A könnyű metszéspontszámítás követelménye feltétlenül teljesül a gömbre, hiszen ehhez csak egyetlen másodfokú egyenletet kell megoldani. A Cohen-Sutherland vágási algoritmus bevetésével a koordinátatengelyekkel párhuzamosan felállított befoglaló dobozokra ugyancsak hatékonyan dönthetjük el, hogy a sugár metszi-e őket. A vágási tartománynak a dobozt tekintjük, a vágandó objektumnak pedig a sugár kezdőpontja és a maximális sugárparaméter által kijelölt pontja közötti szakaszt. Ha a vágóalgoritmus azt mondja, hogy a szakasz teljes egészében eldobandó, akkor a doboznak és a sugárnak nincs közös része, következésképpen a sugár nem metszhet semmilyen befoglalt objektumot. A befoglaló keretek hierarchikus rendszerbe is szervezhetők, azaz a kisebb keretek magasabb szinteken nagyobb keretekbe foghatók össze. Ekkor a sugárkövetés során a befoglaló keretek által definiált hierarchiát járjuk be.

38 36 4. Láthatóság számítás Az objektumtér szabályos felosztása Tegyünk az objektumtérre egy szabályos 3D rácsot és az előfeldogozás során minden cellára határozzuk meg a cellában lévő, vagy a cellába lógó objektumokat. A sugárkövetés fázisában egy adott sugárra a sugár által metszett cellákat a kezdőponttól való távolságuk sorrendjében látogatjuk meg. Egy cellánál csak azon objektumokat kell tesztelni, amelyeknek van közös része az adott cellával. Ráadásul ha egy cellában az összes ide tartozó objektum tesztelése után megtaláljuk a legközelebbi metszéspontot, be is fejezhetjük a sugár követését, mert a többi cellában esetlegesen előforduló metszéspont biztosan a metszéspontunk mögött van. Az objektumtér szabályos felosztásának előnye, hogy a meglátogatandó cellák könnyen előállíthatók a DDA algoritmus háromdimenziós általánosításának segítségével [FTK86], hátránya pedig az, hogy gyakran feleslegesen sok cellát használ. Két szomszédos cellát ugyanis elég lenne csak akkor szétválasztani, ha azokhoz az objektumok egy más halmaza tartozik. Ezt az elvet követik az adaptív felosztó algoritmusok Az objektumtér adaptív felosztása Az objektumtér adaptív felosztása rekurzív megközelítéssel lehetséges. Foglaljuk kezdetben az objektumainkat egy koordinátatengelyekkel párhuzamos oldalú dobozba. Vizsgáljuk meg, hogy a dobozunk homogénnek tekinthető-e, azaz legfeljebb 1 (általánosabban legfeljebb adott számú) objektum van-e benne. Ha igen, a felosztással elkészültünk. Ha nem, a dobozt a felezősíkjai mentén 8 egybevágórészre bontjuk és a keletkezőrészdobozokra ugyanezt az eljárást folytatjuk. I II IV III 4.2. ábra. A síkot felosztó négyes fa. Ennek a 3D változata az oktális fa Az eljárás eredménye egy oktális fa (4.2. ábra). A fa levelei azon elemi cellák, amelyekhez a belógó objektumokat nyilvántartjuk. A felosztás adaptivitását fokozhatjuk, ha egy lépésben nem mind a három felezősík mentén vágunk, hanem egy olyan (általában ugyancsak a koordinátarendszer valamely tengelyére merőleges) síkkal, amely az objektumteret a lehető legigazságosabban felezi meg. Ez a módszer egy bináris fához vezet, amelynek neve bin áris particionáló fa, vagy BSP-fa. A bináris particionáló fa speciális esete KD-fa, amelyben csak koordináta-tengelyekkel párhuzamos felezősíkot használunk. Ez a felezősík természetesen bárhol elhelyezkedhet. A mérések szerint a KD-fa a már említett adatstruktúrák közül a győztes [Hav01]. A KD-fában az információt egyszerű formában tároljuk, azaz a fa egy belső csomópontja egy felezősíkot tartalmaz, ezért az itt lévő gyermekcsomópontok száma kettő, így csak négy eset közül kell választani: csak a bal oldali ágban folytatjuk az utat, csak csak a jobb oldaliban, először a bal oldali ágat járjuk be, majd a jobb oldalit, vagy először a jobb oldalit, azután a bal oldalit. Az adaptív felosztás kétségkívül kevesebb memóriát igényel, mint a tér szabályos felosztása. Azonban egy új problémát vet fel, amivel foglalkoznunk kell. A szabályos felosztás rácsán szakaszrajzoló algoritmusok segítségével kényelmesen sétálhattunk, azaz könnyen eldönthettük, hogy egy cella után melyik lesz a következő, ami a sugár útjába kerül. Az adaptív felosztásoknál egy cella után következő cella meghatározása már nem ilyen egyszerű. A helyzet azért nem reménytelen, és a következőmódszer elég jól megbirkózik vele. Az aktuális cellában számítsuk ki a sugár kilépési pontját, azaz a sugárnak és a cellának a metszéspontját, majd adjunk hozzá a metszéspont sugárparaméteréhez egy kicsit! A kicsivel továbblendített sugárparamétert visszahelyettesítve a sugáregyenletbe, egy, a következő cellában lévő pontot kapunk. Azt, hogy ez melyik cellához tartozik, az adatstruktúra bejárásával dönthetjük el. Kézbe fogván a pontunkat a fa csúcsán belépünk az adatstruktúrába. A pont koordinátáit a felosztási feltétellel (oktális fánál az aktuális doboz középpontjával, bináris particionáló fánál pedig a sík koordinátájával) összehasonlítva eldönthetjük, hogy melyik úton kell folytatni az adatszerkezet bejárását. Előbb-utóbb eljutunk egy levélig, azaz azonosítjuk a pontot tartalmazó cellát. A továbbiakban a KD-fákkal foglalkozunk részletesebben.

39 4.2. A sugárkövetés gyorsítási lehetőségei 37 I 1 2 II ábra. Bináris particionáló fa A felezősík elhelyezése és iránya a KD-fában A KD-fában a felezősíkot többféleképpen elhelyezhetjük. A t érbeli középvonal módszer a befoglaló keretet mindig két egyforma részre osztja. Mivel a felezés eredménye mindig két egyforma nagyságú részt eredményez, ezért ezeknek a részeknek a fa mélységével arányosan egyre kisebbeknek kell lennie. Ez a megközelítés kiegyensúlyozza a teret. A a test középvonal módszer úgy osztja fel a teret, hogy annak bal és jobb oldalán egyforma számú test legyen. Néhány test ebben az esetben mind a jobb, mind a bal oldali ágba bekerülhet, hiszen a felezősík akár testeket is metszhet. Ez amegközelítés a testek számát egyensúlyozza ki a felezősík mentén. A harmadik módszer valamilyen költség modellt használ, és a KD-fa felépítése során becsli azt az átlagos időt, melyet egy sugár a KD-fa bejárására során felhasznál és ennek minimalizálására törekszik. Ez a módszer teljesítményben felülmúlja mind a térbeli középvonalat, mind a test középvonalat. Egy megfelelőköltségmodell szerint úgy felezzük a cellát, hogy a két gyermek cellában lévő testek összes felülete megközelítőleg megegyezzen [Hav01]. A felezősík irányának meghatározására használhatjuk azt a megoldást, hogy a fa mélységének növekedésével ciklikusan változtatjuk az irányokat a koordináta-tengelynek megfelelően (x; y; z; x; :::). A KD-fa adatstruktúra mélysége A KD-fa felépítése során alapvető kérdés, hogy milyen mélységig érdemes építeni azt. A mélység lehet a felhasználó által megadható paraméter, vagy itt is a költség modellre támaszkodhatunk. Ebben az esetben a KD-fát egy bizonyos d max mélységig építjük, és kiszámítjuk a sugárkövetés C(d max ) becsült költségét. Ezután minden levelet egy lépéssel tovább osztunk, és újból kiszámoljuk a költséget. Ha a C(d max+1 ) jelentősen kisebb mint C(d max ), akkor és a KD-fa tovább építendő, immár a d max+2 mélységben. Ellenkező esetben nem folytatjuk tovább a felosztást. A KD-fa bejárása A KD-fa felépítése után természetesen egy olyan algoritmusra is szükségünk van, amely segítségével egy adott sugárra nézve meg tudjuk mondani annak útját a fában, és meg tudjuk határozni a sugár által elsőként metszett testet is. A következőkben 3 algoritmust mutatunk meg ennek az adatstruktúrának a bejárására: a szekvenci ális sugárbejárási algoritmust (sequential ray traversal algorithm), a rekurzív sugárbejárási algoritmust (recursive ray traversal algorithm) és a szomszéd összekapcsolását használó sugárbejárási algoritmust (ray traversal algorithm with neighbour-links). A szekvenciális sugárbejárási algoritmus (sequential ray traversal algorithm) a sugár mentén lévő pontoknak a KDfában történő szekvenciális megkeresésén alapul. Legelső lépésként a kezdőpontot kell meghatározni a sugár mentén, ami vagy a sugár kezdőpontja vagy pedig az a pont, ahol a sugár belép a befoglaló keretbe, attól függően, hogy sugár kezdőpontja a befoglaló dobozon belül van-e vagy sem. A pont helyzetének meghatározása során azt a cellát kell megtalálnunk, amelyben az adott pont van. Kézbe fogván a pontunkat a fa csúcsán belépünk az adatstruktúrába. A pont koordinátáit a sík koordinátájával összehasonlítva eldönthetjük, hogy melyik úton kell folytatni az adatszerkezet bejárását. Előbb-utóbb eljutunk egy levélig, azaz azonosítjuk a pontot tartalmazó cellát. Ha ez a cella nem üres, akkor megkeressük a sugár és a cellában lévő illetve a cellába belógó testek metszéspontját. A metszéspontok közül azt választjuk ki, amely a legközelebb van a sugár kezdőpontjához. Ezután ellenőrizzük, hogy a metszéspont a vizsgált cellában van-e (mivel egy test több cellába is átlóghat, előfordulhat, hogy nem ez a helyzet). Ha a metszéspont az adott cellában van, akkor megtaláltuk az első metszéspontot, így befejezhetjük az algoritmust. Ha a cella üres, vagy nem találtunk metszéspontot, vagy a metszéspont nem a cellán belül van, akkor tovább kell lépnünk a következő cellára. Ehhez a sugár azon pontját határozzuk meg, ahol elhagyja a cellát. Ezután ezt a metszéspontot egy kicsit előre toljuk, hogy a következő cellában lévő pontot kapjunk. Innentől az algoritmus a tárgyalt lépéseket ismételi.

40 38 4. Láthatóság számítás Ennek az algoritmusnak a hátránya, hogy mindig a fa gyökerétől indul, pedig nagyban valószínűsíthető, hogy két egymás után következő pont esetén részben ugyanazon cellákat járjuk be. Ebből adódóan egy csomópontot többször is meglátogatunk. A rekurzív sugárbejárási algoritmus (recursive ray traversal algorithm) a szekvenciális sugárbejárási algoritmus hátrányait igyekszik kiküszöbölni, és minden belső pontot és levelet csak egyetlen egyszer látogat meg. A javitott algoritmus, amikor a sugár egy olyan belső csomóponthoz ér, amelynek két gyermekcsomópontja van, eldönti a gyermekeket milyen sorrendben látogassa meg. A gyermekcsomópontokat közeli és távoli gyermekcsomópontként osztályozza aszerint, hogy azok milyen messze helyezkednek el a sugár kezdetétől a felezősíkhoz képest. Ha a sugár csak a közeli gyermekcsomóponton halad keresztül, akkor a sugár ennek a csomópontnak az irányába mozdul el, és az algoritmus rekurzívan folytatódik. Ha a sugárnak mindkét gyermekcsomópontot meg kell látogatnia, akkor az algoritmus egy veremtárban megjegyzi az információkat a távoli gyermekcsomópontról, és a közeli csomópont irányába mozdul el, majd rekurzívan folytatódik az algoritmus. Ha a közeli csomópont irányában nem találunk metszetet, akkor visszakeressük a távoli gyermekcsomópontot, és az algoritmus rekurzívan fut tovább, immár ebben az irányban. A következőkben az ismertetett algoritmust C-pszeudokóddal is megadjuk: enum Axes {X_axis, Y_axis, _axis}; struct KDTreeNode { /* a node of the KD-tree */ Point3d min, max; /* extent of the node */ GeomObjlist *objlist; /* list of objects belonging to this node */ struct KDTreeNode *left; /* left child */ struct KDTreeNode *right; /* right child */ Axis axis; /* orientation of the halfplane */ } struct StackElem { /* an element of the Stack */ KDTreeNode* node; float a; /* signed distance of the entry */ float b; /* signed distance of the exit */ } Object RayTravAlg(KFTreeNode *roornode, Ray ray) { /* Recursive ray traversal */ float a, b; /* signed distances of the entry/exit */ float t; /* signed distance of the halfplane */ StackElem stack[maxdepth]; /* Stack */ int stackptr = 0; /* Stack pointer */ KDTreeNode *farchild, *nearchild, *currnode; /* children and the current node */ RayBoxIntersect(ray, rootnode, &a, &b); /* Intersection with the bounding box */ if ( "there is not intersection" ) return ["No intersection"]; "push (rootnode, a, b) onto the stack" } while ( "the stack is not empty" ) { /* while the whole tree is not traversed */ "Pop (currnode, a, b) from the stack" while ("currnode is not a leaf") { float diff = currnode->right.min[axis] - ray.origin[axis] t = diff / ray.dir[axis]; if (diff > 0.0) { nearchild = currnode->left farchild = currnode->right } else { nearchild = currnode->right farchild = currnode->left } if ( (t > b) (t < 0.0) ) currnode = nearchild; else { if (t < a) currnode = farchild; else { "Push (farnode, t, b) onto Stack" currnode = nearchild; b = t; } } } /* the currect node is a leaf */ "Intersect the ray with all objects in the list" "Ignore those intersections that are not between a and b" if (any intersection exists) return ["closest intersection"] } return ["No intersection"];

41 4.2. A sugárkövetés gyorsítási lehetőségei 39 A sugárbejárási algoritmus a szomszéd összekapcsolásával (ray traversal algorithm with neighbour-links)egyújabb módszer a csomópontok ismétlődő meglátogatásának kiküszöbölésére. Ez a megoldás mutatókat használ a szomszédos cellák összekapcsolására.

42 40 4. Láthatóság számítás

43 5. fejezet Monte-Carlo és kvázi Monte-Carlo integrálás Az árnyalási egyenlet megoldása során igen magas dimenziós integrálokat kell kiértékelnünk, amelyhez numerikus integrálformulákat használhatunk. Egy integr álformula általános alakja: V f (z) dz ß 1 M MX i=1 f (z i ) w(z i ); (5.1) ahol w az integrálformulának megfelelősúlyfüggvény. Az alapvetőkérdés az, hogy hol kell felvenni a z i mintapontokat ahhoz, hogy a minták számának növelésével gyorsan a tényleges megoldáshoz konvergáljunk. A legismertebb lehetőség a mintapontok szabályos rácson történő elhelyezése, ami konstans 1=V súlyfüggvénnyel az integrál téglányszabály alkalmazásával történő kiértékeléséhez, nem konstans súlyfüggvényekkel pedig a trap éz szabályhoz illetve a Simpson-szabályhoz vezet. Sajnos ugyanolyan pontosság eléréséhez ezek a formulák egy 1 dimenziós integrálhoz M darab, egy 2 dimenziós integrálhoz M 2 darab, általában egy D dimenziós integrálhoz már M D darab mintapontot igényelnek, azaz a számítási komplexitás az integrálási tartomány dimenziójának exponenciális függvénye. A jelenség magyarázata az, hogy magas dimenziókban a szabályos rács sorai és oszlopai között nagy űrök tátongnak, ezért a mintapontok nem töltik ki elegendően sűrűn az integrálási tartományt (5.1. ábra). Az M D darab mintapontigény elfogadhatatlan a magas dimenziójú integráloknál, ezért más stratégia után kell néznünk A Monte Carlo mószer 1 Random points ábra. 100 mintapont szabályos rácson (bal) és véletlenszerűen (jobb) A mintapontokat megválaszthatjuk véletlenszerűen is. A következőképpen láthatjuk be, hogy aszimptotikusan ez is korrekt módon becsüli az integrál értékét. Szorozzuk be és egyszersmind osszuk is el az integrandust egy p(z) valószínűség sűrűség függvénnyel (az osztás kioltja a szorzás hatását, tehát ez nyilván semmiféle változást nem okoz)! Majd ismerjük fel, hogy az így kapott integrál a várható érték képlete! A várható értéket pedig jól becsülhetjük a minták átlagával és a nagy számok törvénye szerint a becslés a tényleges várható értékhez tart. Formálisan: V f (z) dz = V» f (z) p(z) p(z) dz f (z) = E p(z) 41 ß 1 M MX i=1 f (z i ) p(z i ) : (5.2)

44 42 5. Monte-Carlo és kvázi Monte-Carlo integrálás A becslés hibáját most a szórás fejezi ki. Legyen a p(z) suruségfüggvényű z valószínűségi változó f (z)=p(z) transzformáltjának szórása ff. Ha a mintákat egymástól függetlenül választjuk ki, akkor az M minta átlagának szórása ff= p M, az integrálási tartomány dimenziójától függetlenül. A szórás és a klasszikus hiba fogalmát ugyancsak a nagy számok törvényei segítségével kapcsolhatjuk össze. Ezek szerint valószínűséggel mondhatjuk, hogy M kísérlet elvégzése után az integrálbecslés hibája 3ff= p M-nél kisebb lesz. A ff tényezőt úgy csökkenthetjük, hogy a p(z)-t a lehetőségek szerint az integrandussal arányosan választjuk meg, azaz ahol az integrandus nagy, oda sok mintapontot koncentrálunk. Ennek a szóráscsökkentő eljárásnak a neve fontoss ág szerinti mintavétel. A véletlen mintapontokkal dolgozó eljárást Monte-Carlo m ódszernek nevezzük, amelynek nagy előnye, hogy a komplexitása nem függ a tartomány dimenziójától [Sob91]. A véletlen pontsorozatok magasabb dimenzióban egyenletesebbek, mint a szabályos rácsok. Megjegyezzük, hogy léteznek olyan determinisztikus pontsorozatok, amelyek még a véletlen pontsorozatoknál is egyenletesebben töltik ki a rendelkezésre álló teret. A nagyon egyenletes eloszlás miatt alacsony diszkrepanciájú sorozatoknak nevezik őket [Nie92, PFTV92, Knu81, Sob91]. A determinisztikus pontsorozatokat alkalmazó módszereket kvázi Monte-Carlo eljárásoknak nevezzük A kvázi Monte-Carlo mószer Az egyszerűség kedvéért tételezzük fel, hogy az s-dimenziós f (z) függvényt a [0; 1] s értelmezési tartományon kell integrálni. A Riemann-integrálhatóság biztosítására tételezzük fel, hogy a függvény szakaszosan folytonos. Az integrált a következő összeggel közelíthetjük: z2[0;1] s f (z) dz ß 1 N NX i=1 f (z i ): Akérdés ebben az esetben is természetesen az, hogyan válasszuk meg a z 1 ; z 2 ;:::;z N mintapont sorozatot ahhoz, hogy a lehető legkisebb hibával számoljunk. Elvárjuk, hogy aszimptotikus értelemben a hiba nullával legyen egyenlő bármilyen Riemann integrálhatófüggvényre: z2[0;1] s f (z)dz = 1 lim N!1 N NX i=1 f (z i ): Azon pontsorozatokat, melyek teljesítik ezt a követelményt egyenletes sorozatoknak nevezzük [Nie92]. Azon célból, hogy megfelelő követelményt találjunk az egyenletes pontsorozatokra, vegyünk egy nagyon egyszerű függvényt, amely 1 értékű a koordináta rendszer középpontjából kiinduló d-dimenziós tégla belsejében és 0 ezen kívül: L(z) = 8 < : 1 if 0» zj 1» v 1 ; 0» zj 2» v 2 ;:::;0» zj s» v s ; 0 egyébként. Jelölje V (A) = Q s j=1 v j atégla kiterjedését. Ezt a függvényt integrálva kapjuk: z2[0;1] s L dz = sy j=1 v j = V (A): (5.3) Ha az s-dimenziós A tégla belsejében lévő mintapontok száma m(a), akkor a véges approximációs összeg: 1 N NX i=1 L(z i )= m(a) N : Mivel az integrál pontos értéke ebben az esetben V (A) az egyenletes pontsorozatokra, a tégla belsejében lévő mintapontok átlagszámának arányosnak kell lennie annak kiterjedésével: m(a) lim N!1 N = V (A): Ha a pontsorozat véges, akkor az arányossági követelmény csak megközelítőleg teljesíthető. A közelítés maximális hibája definíciószerűen a pontsorozat diszkrepanci ája: D Λ (z 1 ; z 2 ;:::z N )=supj m(a) V (A)j: (5.4) A N

45 5.2. A kvázi Monte-Carlo mószer 43 Ha a pontsorozat egyenletes, akkor a közelítő összeg a valós megoldáshoz konvergál, így a diszkrepancia a zérushoz tart. Ez egy újabb követelmény, melyet egy nagyon egyszerű függvény vizsgálatából kaptunk. Ez a követelmény nemcsak szükséges, de elégséges is, mivel bármely Riemann-integrálható függvény tetszőleges pontossággal közelíthető az origóból induló blokkok összegével és különbségével. Egy kétdimenziós függvény lépcsős megközelítését láthatjuk a 5.2. ábrán. f2 f1 f4 f3 b1=f1-f2-f3+f4 b2=f2-f4 b3=f3-f4 = b4=f ábra. Egy függvény definíciója a koordináta rendszer középpontjából kiinduló téglák segítségével Alacsony diszkrepanciájú sorozatok definiálása Az ismert, legegyenletesebb sorozatok diszkrepanciájának nagyságrendje O(log s N=N ) vagy akár O(log s 1 N=N ) ha a mintapontok száma előre ismert. Ezeket a sorozatokat alacsony diszkrepanci ájú sorozatoknak nevezzük [Nie92, War95, Deá89, Knu81]. Valószínűleg az egyik legismertebb a Halton-sorozat (az 1-dimenziós verzióját Van der Corput sorozatnak nevezzük). Az 1-dimenziós b alapú Halton sorozat i. elemét mint az i szám b alapú számrendszerbeli kifejtésének radikális inverzeként definiáljuk. A radikális inverz a szám tizedes (azaz b-des) pontjára vett tükörképét jelenti. Az első néhány pontot kettes alappal számolva az 5.1. tábla tartalmazza. i i bináris formája radikális inverz H i táblázat. Az i. Halton pont számolása kettes alappal Vizsgáljuk meg, hogy miért egyenletes ez a sorozat. Az algoritmusban a k +1hosszúságú bináris számok előállítását megelőzi az összes k hosszúságú bináris alak generálása. Ez azt jelenti, hogy a radikális inverz után a H i sorozat végigfut az összes 2 k hosszúságú intervallumon mielőtt új pontot helyezne a már meglátogatott intervallumba, ami már maga után vonja az egyenletességet. Az algoritmus egyetlen pontot tesz minden 1=2 hosszúságú intervallumba, azután minden 1=4 hosszúságú intervallumba, stb. ezért a sorozat nemcsak aszimptotikusan egyenletes, hanem az első N pont is meglehetősen egyenletes eloszlású. Ez természetesen érvényes más hatványalapra is. Ha az alapszám b, akkor a Halton sorozat egy mintapontot helyez el minden b k hosszúságú intervallumba mielőtt újabb pontot helyezne el valamelyik intervallumba. A Halton sorozattal egyenletes eloszlású pontsorozatot generálhatunk az 1-dimenziós [0; 1] intervallumban. Ha magasabb fokú dimenziók, mint például téglalap, kocka, stb. egyenletes kitöltésére van szükségünk, akkor a különböző koordinátájú mintavektorokat különböző alapú Halton sorozatokból generálhatjuk. Azon meggondolásból, hogy ezek a vektorok egyenletesen töltsék ki az egész területet, a különböző koordináták kölcsönös összefüggését a lehető legkisebbre kell csökkenteni. Vizsgáljuk meg ezt egy 2-dimenziós b 1 és b 2 alappal generált Halton sorozat esetén. A Halton sorozat működésének megfelelően, a generáló algoritmus meglátogatja az összes b k1 1 szélességű oszlopot mielőtt újból meglátogatná valamelyik oszlopot, és hasonlóan, meglátogatja az összes b k2 2 méretű sort mielőtt új pontot helyezne el valamelyik sorban. Az oszlopok és sorok b k1 1 b k2 2 nagyságú cellát képeznek. 2-dimenzióban az egyenletesség azt jelenti, hogy az algoritmus mindegyik cellába tesz egy pontot, mielőtt egy újabb, második pontot helyezne el bármelyik cellában. Mivel a

46 44 5. Monte-Carlo és kvázi Monte-Carlo integrálás 5.3. ábra. Az első 10,100 és 1000 Halton pont 2-dimenzióban sorok és oszlopok periodicitása b k1 1 és bk2 2 szorzatával, azaz a cellák számával egyenlő, ha a b k1 1, a cellák periodicitása a bk1 1 és bk2 2 és bk2 2 számok relatívprímek. legkisebb közös többszöröse. Ez a két szám Ezt szintén általánosíthatjuk. A többdimenziós Halton sorozat megalkotásánál a különböző koordináták alapszámainak relatív prímeknek kell lenniük. Akövetkezőkben egy C++ osztályt mutatunk be, amely képes bármilyen Halton pont számítására, majd inkrementálisan előállítja az összes egymást követő pontot [Kel96]: class Halton { double value, inv_base; Number( long i, int base ) { double f = inv_base = 1.0/base; value = 0.0; while ( i > 0 ) { value += f * (double)(i % base); i /= base; f *= inv_base; } } }; void Next( ) { double r = value ; if (inv_base < r) value += inv_base; else { double h = inv_base, hh; do { hh = h; h *= inv_base; } while ( h >= r ); value += hh + h - 1.0; } } operator double() { return value; } 5.3. Fontosság szerinti mintavételezés A fontosság szerinti mintavételezés a Monte-Carlo módszerek szórás csökkentő eljárása. Az alapötlet szerint használjunk nem-egyenletes eloszlást a mintapontok megkeresésére, amely több mintapontot helyez el oda, ahol a függvényérték nagy. Pontosabban ez azt jelenti, hogy I = V f (z) dz = V» f (z) p(z) p(z) dz f (z) = E ß 1 p(z) N NX i=1 f (z i ) p(z ± 3Vff p ; i ) N ahol p(z) sűrűségfüggvény a V -ben, a z i pontokat ennek a valószínűségnek megfelelően választjuk ki, a ff 2 szórásnégyzetet pedig a következőképpen definiáljuk: ff 2 = D 2» f (z) p(z) = E " I 2# f (z) = p(z) V f (z) p(z) I 2 p(z) dz:

47 5.3. Fontosság szerinti mintavételezés 45 A p(z) sűrűségfüggvényt úgy kell kiválasztani, hogy minimalizálja a szórást, ami akkor következik be, ha a p(z) arányos az f (z) integrandussal. Fejezzük ki az integrandus és a sűrűségfüggvény arányát a következőképpen: f (z) p(z) = ff + fi ffi(z); R ahol ff = E[ f (z) p(z) ] és (ffi(z)) 2 p(z) dz =1. Felhasználva ezt, a szórásnégyzet: V ff 2 = E[(ff + fi ffi(z) E[ff + fi ffi(z)]) 2 ]=fi 2 E[(ffi(z)) 2 ]=fi 2 : (5.5) Ez nyilvánvalóan minimális, ha fi =0, amikor is a szórás szintén nulla. A Monte-Carlo integrálás során tehát olyan valószínűségfüggvényt kell választani, amely nagy azokon a területeken, ahol az integrandus nagy és kicsi ott, ahol az integrandus elhanyagolható Véletlen változó generálása megadott valószínűséggel Megállapítottuk, hogy a fontosság szerinti mintavételezés olyan mintapontokkal dolgozik, melyeket az integrandussal legalább közelítően arányos sűrűségfüggvényből állítunk elő. Ebben a részben megvizsgáljuk, hogyan lehet ilyen pontokat találni. Először is tekintsük az 1-dimenziós teret, és tételezzük fel, hogy az integrálási tartomány az [a; b] intervallum. Tételezzük fel, hogy olyan sűrűségfüggvénnyel szeretnénk mintavételezni, mely arányos a g(z) függvénnyel. Ha ez a függvény különböző az integrandustól, akkor a fontosság szerinti mintavételezés nem optimális. A keresett p(z) sűrűségfüggvény a g függvény normalizálásával számítható ki: p(z) = R g(z) b : g(z)dz a Ez egyúttal magyarázatot is ad arra, miért kell nem-optimális sűrűséget használni. Ha a g egyenlő lenne az f függvénnyel, akkor a sűrűségfüggvény konstrukciója az f integrálját követelné meg. A p sűrűségfüggvényből a P eloszlásfüggvény a következőképpen számolható: P (z) = z a g() d: Egy P eloszlásfüggvényű ο valószínűségi változót úgy állathatunk elő, hogy egy másik, a [0; 1] intervallumon egyenletesen eloszlású r valószínűségi változóra a ο = P 1 (r) transzformációt alkalmazunk. Az állítást bizonyítandó vizsgáljuk meg a ο valószínűségi változó eloszlását: Prfο <zg =PrfP 1 (r) <zg =Prfr <P(z)g = P (z): mivel P (z) nem csökkenő és annak a valószínűsége, hogy az egyenletes eloszlású r egy [0; 1]-beli intervallum belsejében van megegyezik ennek az intervallumnak a hosszával. A többdimenziós esetet visszavezethetjük az 1-dimenzióban megismert mintavételezések sorozatára. A normalizáció után: p(z) = R V g(z) g(z)dz : A sűrűségfüggvényt az 1-dimenziós feltételes sűrűségek szorzataként fejezhetjük ki: p(z 1 ;z 2 ;:::;z s )=p 1 (z 1 jz 2 ;:::;z s ) p 2 (z 2 jz 3 ;:::;z s ) ::: p s (z s ): Ezekre a feltételes sűrűségekre ugyanazon módszer alkalmazható rekurzívan, mint az 1-dimenziós esetekre. Ha a különböző koordináták független valószínűségi változók, akkor: p(z 1 ;z 2 ;:::;z s )=p 1 (z 1 ) p 2 (z 2 ) ::: p s (z s ):

48 46 5. Monte-Carlo és kvázi Monte-Carlo integrálás Fontosság szerinti mintavételezés a kvázi-monte Carlo integrálásban A klasszikus Monte-Carlo integráció során a fontosság szerinti mintevételezés több mintapontot helyez el oda, ahol az integrandus nagy. Ez az ötlet jónak tűnik a kvázi-monte Carlo integrálásban is. A formális indokláshoz azonban meg kell küzdeni azzal a nehézséggel, hogy a determinisztikus kvázi-monte Carlo esetén olyan fogalmak, mint a sűrűségfüggvény vagy a szórás nem használható. Az alternatív megközelítés szerint integráljunk úgy, hogy helyettesítéses integrálást alkalmazunk. Tételezzük fel, hogy az f függvényt a V tartományon kell integrálni, és a monoton növekvő T leképezés ezt a tartományt a V 0 tartományra képezi le. Az integrál az új tartományon a következő képlet felhasználásával értékelhető ki: fi fi fi fi V f (z) dz = V 0 fi fi fi f (T 1 (y)) 1 fi fi fi fi dy; (5.6) ahol 1 (y) fi az inverz transzformáció Jacobi A V 0 tartomány a kvázi-monte Carlo integrációban a [0; 1] s s-dimenziós egységkocka. A hiba nagyságának meghatározására felhasználhatjuk a Koksma-Hlawka egyenlőtlenséget, amely a hibát a mintapontok diszkrepanciájának és a függvény variációjának a szorzataként fejezi ki. Mivel a mintapontok diszkrepanciája független az integrálandó függvénytől, ezért a hiba nagysága csökkenthető az integrandus megfelelő transzformációjával. Ehhez a függvényt lapossá kell tennünk. Ideális esetben, ha az integrandus konstans, a variáció0. A transzformált integrandus konstanssá tételéhez a Jacobi determinánsnak fordított arányban kell állnia az f függvénnyel. Mivel a Jacobi determináns intuitívan a két megfelelő V és V 0 -beli differenciális tartomány összenyomódását illetve széthúzását fejezi ki, ez a kritérium azt állítja, hogy ha a mintapontok egyenletesen oszlanak el a V 0 tartományban, akkor a transzformáció olyan területekre koncentrálja őket, ahol az f nagy. Az egyszerűség kedvéért részletesen csak az 1-dimenziós esetet vizsgáljuk meg, amikor is a változó transzformációa következőképpen néz ki: z max z min f (z) dz = 1 0 f (T 1 (y)) dt 1 (y) dy dy: (5.7) Ideális esetben a T leképezés az integrandust nulla variációjúra változtatja, vagyis az új integrandus valamilyen C konstans lesz: f (T 1 (y)) dt 1 (y) = C: dy Ebből a következőadódik: T (z) = 1 C z z min f () d: Mivel a T leképezés várhatóan a [0; 1] intervallumra képez le, ezért megköveteljük, hogy T (z max )=1legyen. A konstans C értéke így f () d. Összefoglalva, az egyenletes eloszlású y pontot a következő függvény inverzével kell z max R z min transzformálni zr f () d z min T (z) = z max : R (5.8) f () d z min Látható, hogy ez hasonló transzformáció, mint amelyet a véletlen pontokra adtunk meg. Ez az jelenti, hogy a fontosság szerinti mintavételezés független attól, hogy véletlen avagy determinisztikus mintákkal dolgozunk-e.

49 5.3. Fontosság szerinti mintavételezés Metropolis mintavételezés A fontosság szerinti mintavételezés olyan eloszlásfüggvényt követel meg, amely arányos a g függvénnyel, azaz az integrandussal. Az előző részben bemutatott módszer elvárja, hogy a g függvény szimbolikusan integrálható és a primitív függvénye invertálható legyen. Ez a követelmény gyakran ellentmond annak, hogy a g függvény az eredeti integrandust pontosan kövesse. Ebben a részben olyan mintavételező stratégiát mutatunk be [MRR + 53], amely kevesebb elvárást támaszt a g függvénnyel szemben, és csak azt feltételezi, hogy a g integrálja vagy szimbolikusan vagy numerikusan meghatározható. A Metropolis módszer a mintavételezéshez egy olyan diszkrét idejű Markov folyamatot hoz létre a minták terében, amelynek határeloszlása arányos a választott függvénnyel: R ahol b = V g(z) dz. g(z) =b p(z); A Markov folyamatot állapot átmeneti valószínűséggel definiálhatjuk, vagyis a következő állapot feltételes valószínűségével, feltéve, hogy a jelenlegi állapot ismert. A Metropolis módszerrel a folyamat következő z i+1. állapotát úgy találhatjuk meg, hogy egy szabadon választott T (z i! z t ) kísérleti átmeneti függvénnyel generálunk egy z t kísérleti mintapontot, melyet az a(z i! z t ) elfogadó valószínűség szerint vagy elfogadunk mint valódi következő állapotot, vagy elutasítunk és az aktuális állapot tartjuk meg. Az állapot átmeneti valószínűség-eloszlásfüggvény az x állapotból y állapotba a következő: P (x! y) dy = T (x! y) dy a(x! y): (5.9) Azon esemény, hogy ugyanabban az állapotban maradunk, a bármilyen más állapotba való átlépés kiegészítő eseménye, ezért az állapot tartás valószínűsége: 1 P (x! y) dy =1 T (x! y) a(x! y) dy: y2v;x6=y y2v;x6=y Jelöljük p n (x)-nel annak a valószínűségét, hogy az n. lépésben az x állapotban vagyunk. A teljes valószínűség tétel szerint és a Markov tulajdonság miatt, miszerint a jövő csak a jelen állapottól függ és független a múlttól, a következő rekurzió írható fel: p n+1 (y) = x2v;x6=y p n (x) P (x! y) dx + 0 Ha p(y) = lim n!1 p n(y) határérték létezik, akkor ez a rekurzió fix pontja, vagyis: p(y) =p(y) + x2v;x6=y x6=y 1 C P (y! x) dxa p n (y): p(x) P (x! y) p(y) P (y! x) dx (5.10) Ha a Markov folyamat ergodikus, akkor a határeloszlás létezik és független a folyamat kezdeti állapotától. Egy folyamat akkor ergodikus, ha adott számú lépés után bármelyik állapot elérhető bármelyik másik állapotból nem nulla valószínűséggel. A Metropolis módszer oly módon konstruálja meg az a(x! y) elfogadóvalószínűséget, hogy a folyamat határeloszlása p(z) =g(z)=b legyen. Behelyettesítve ezt a célkitűzést az 5.10 képletbe, a következő összefüggés adódik: g(y) =g(y) + V;x6=y g(x) P (x! y) g(y) P (y! x) dx: (5.11) Ez akkor áll fenn, ha az x összes bejövő és kimenő átmenete egyensúlyban van. Ezt egy kézenfekvő módon biztosíthatjuk, ha megköveteljük, hogy bármely két állapot közötti átmenet egyensúlyban legyen: g(x) P (x! y) =g(y) P (y! x): (5.12) Felhasználva az 5.9. egyenletet az állapot átmeneti valószínűségre azt kapjuk, hogy: Ebből adódóan a két elfogadó valószínűség aránya: g(x) T (x! y) a(x! y) =g(y) T (y! x) a(y! x): (5.13) a(y! x) g(x) T (x! y) = a(x! y) g(y) T (y! x) : (5.14)

50 48 5. Monte-Carlo és kvázi Monte-Carlo integrálás Bármilyen, a feltételt teljesítő elfogadóvalószínűség esetén a határeloszlás arányos lesz a g függvénnyel. Figyelembe véve a konvergencia sebességét, az állapot átmeneti függvénynek és ebből adódóan az elfogadó valószínűségnek nagynak kell lennie. Mivel a valószínűség nem lehet egynél nagyobb, ezért az optimális elfogadó valószínűség a következőképpen alakul: a(x! y) = min ρ ff g(y) T (y! x) g(x) T (x! y) ; 1 : Akövetkező algoritmus a Markov folyamat egy fz 1 ; z 2 ;:::;z N g olyan trajektóriáját állítja elő, ahol a meglátogatott pontok az Monte-Carlo módszer mintavételi pontjai: for i =1to N do Based on the actual state z i, choose another random, tentative state z t using T (z i! z t) a(z i! z t)=(g(z t) T (z t! z i))=(g(z i) T (z i! z t)) if a(z i! z t) 1 then z i+1 = z t else // accept with probability a(z i! z t) Generate uniformly distributed random number r in [0; 1]. endif endfor if r<a(z i! z t) then z i+1 = z t else z i+1 = z i

51 6. fejezet Véges-elem módszer A folytonos paraméterű függvények véges adattal történő közelítő megadására a v éges-elem módszert(finite-element method) használhatjuk. Ennek lényege, hogy a függvényt függvénysorral közelítjük, azaz a következő alakban keressük: L(p) ß nx j=1 L j b j (p); (6.1) ahol b j (p)-k előre definiált bázis függvények, L j -k pedig skalár tényezők. Két függvény szorzatának a teljes térre vett integrálját a két függvény skalárszorzatának hívjuk, és a következőképpen jelöljük: hf;gi = f (p) g(p) dp: Az egyik leggyakrabban használt bázisfüggvény készlet a közelítendő függvény értelmezési tartományát véges számú tartományra bontja, és az i. bázisfüggvényt 1 értékűnek tekinti az i. tartományban, minden más tartományban pedig 0-nak. A megoldandó L(p) =L e (p) +T L(p) integrálegyenletbe a függvénysoros közelítést behelyettesítve a következő egyenletet kapjuk: nx j=1 L j b j (p) ß nx j=1 L e j b j (p) +T nx j=1 L j b j (p): Vegyük észre, hogy tényleges egyenlőség általában nem áll fenn, hiszen még ha P n j=1 L j b j (~x;!) abázisfüggvények alterében van is, a T integráloperátor kivihet ebből az altérből. Az egyenlőséget ezért csak egy megfelelő altérben követeljük meg, amelyet a ~ b 1 (~x); ~ b 2 (~x);::: ~ b n (~x) adjungált bázisfügvények feszítenek ki. Az egyszerűség kedvéért feltételezzük, hogy az eredeti bázis és az adjungált bázis különböző indexű elemeinek a szorzata zérus, a megegyező indexű elemeké pedig 1: hb i ; ~ b j i = b i (p) ~b j (p) dp =0 ha i 6= j: A zérus skalárszorzat szemléletesen úgy is értelmezhető, hogy a bázisfüggvények és az adjungált bázisfüggvények egymásra merőlegesek, tehát ortogonális rendszert alkotnak. Szorozzuk meg tehát az iterációs képletet külön-külön minden egyes ~ b i adjungált bázisfüggvénnyel. Az ortogonalitási feltétel miatt az i. bázisfüggvénnyel való szorzás a következő egyenletre vezet: L i = L e i + n X j=1 ht b j ; ~ b i i hb j ; ~ b i i L j: A véges-elem módszer alkalmazása tehát a függvénysor együtthatóira egy lineáris egyenletrendszert eredményezett: L = L e + R L; ahol R ij = ht b j;b i i hb j ;b i i : (6.2) Erre a lineáris egyenletrendszerre az inverzió például Gauss-elimináció alkalmazásával már ténylegesen elvégezhető: L = L e + R L =) (1 R) L = L e =) L =(1 R) 1 L e : Afüggvénysor együtthatóiból viszont a függvényérték a P n j=1 L j b j (p) képlet alkalmazásával tetszőleges p pontra megkapható. 49

52 50 6. Véges-elem módszer A fenti módszer a közelítő eredményt úgy keresi meg, hogy a hibát merőlegessé teszi az adjungált bázisfüggvényekre. Az adjungált bázisfüggvényeket felvehetjük a bázisfüggvényekkel párhuzamosan is, azaz egy adott indexű bázisfüggvény és az adjungált bázisfüggvény csak egy skaláris tényező erejéig különbözik egymástól Ezt az eljárást Galerkin m ódszernek nevezzük. Nagyon fontos esetként szeretnénk megemlíteni a szakaszosan konstans approximációt, ahol a felületeket A 1 ;A 2 ;:::;A n részekre bontjuk, az iránytartományt pedig Ω 1 ; Ω 2 ;:::;Ω m térszögekre. Ekkor a bázisfüggvények: b ij (~x;!) = Az adjungált, amennyiben Galerkin módszert használunk: ~ b ij (~x;!) = 8 < : ( 1; ha ~x 2 Ai ^! 2 Ω j ; 0; egyébként. 1=jA i j jω j j; ha ~x 2 A i ^! 2 Ω j ; 0; egyébként.

53 7. fejezet A globális illuminációs probléma véletlen bolyongással történő megoldása Az expanzióamért teljesítményt végtelen Neumann-sor formájában számolja: ML = P 1 i=0 MT i L e. A Neumann-sor tagjai intuitív jelentéssel bírnak: MT 0 L e = ML e az emisszióból adódik, MT 1 L e az első visszaverődésből, MT 2 L e a második visszaverődésből származik, stb Miért használjunk Monte-Carlo módszereket? Az expanziós technikák nagyon nagy dimenziójú valójában végtelen dimenziójú integrálok kiértékelését követelik meg. Ha a klasszikus integrálási szabályokat, mint például a trapéz módszert, alkalmazzuk a több-dimenziós integrálokra [PFTV92], akkor a kívánt pontosságú eredmény eléréséhez a mintapontok száma nagyságrendileg O(N s ) lesz, ahol s az értelmezési tartomány dimenziója. Ezt a jelenséget dimenzion ális robbanásnak nevezzük, és ennek következményeként a klasszikus integrálási szabályok túlságosan is költségesek magasabb dimenziókban. Mivel a Monte-Carlo vagy a kvázi-monte Carlo módszerek egyidejűleg minden dimenzióban elosztják a mintapontokat, ezért képesek elkerülni a dimenzionális robbanást. Például, a Monte-Carlo interálbecslés hibája O(N 0:5 ),függetlenül az értelmezési tartomány dimenziójától. Az s-dimenziós alacsony-diszrepanciájú sorozatok [Nie92] O(log s N=N )= O(N (1 ffl )) konvergencia sebességet is elérhetnek a véges variációjú integrandusokra. A klasszikus integrálási szabályok nem használhatók végtelen dimenziójú integrálok számítására, ezért a Neumann sort D lépés után csonkítani kell. Ez a befejezés D+1 jjl e jj=(1 ) nagyságú torzítást eredményez, ahol az integráloperátor kontrakciós tényezője. Orosz-rulett alapú technikát használva, a Monte-Carlo módszerekkel a végtelen dimenziójú integrálokat torzításmentesen becsülhetünk. A bolyongások naiv generálásának problémája az, hogy annak a valószínűsége, hogy a lövőséta megtalálja a kamerát nagyon kicsi, míg annak a valószínűsége, hogy a gyűjtőséta egy kis fényforrásban végződik ugyancsak elhanyagolható, ezért az utak többsége nem járul hozzáaképhez, következtetésképpen ezek számolása csak felesleges időveszteség. Egyrészt a véletlen sétát egy determinisztikus lépéssel kell kombinálni, amely a sétát a szembe illetve a fényforrásba kényszeríti. Másfelől, fontosság szerinti mintavételezést [Sob91] kell használni, amely azon utakat részesíti előnyben, ahol a szállított sugársűrűség jelentős. A bolyongás lépései a radianciát és a potenciált szállítják a térben. A szállítás forrásai és a céljai pontok a folytonos módszereknél, és felületi elemek a véges-elem módszereknél. Ha az algoritmus olyan, hogy mindig egy egyszerű forrást vagy célt választ ki, akkor az eljárást lokális módszernek nevezzük. Ha egyidejűleg több felületi pontot is figyelembe veszünk, akkor globális módszerről beszélünk [Sbe96] Az árnyalási egyenlet fontosság szerinti mintavételezése Az árnyalási egyenlet megoldása során általában irányfüggő vagy felületi integrálok kiértékelésére van szükségünk. Ezen irányfüggő integrálok a következő formában írhatók fel: T L in (~x;!) = Ω L in (~x;! 0 ) f r (! 0 ;~x;!) cos 0 d! 0 : (7.1) Ha véletlen vagy alacsony diszkrepanciájú pontsorozatokat szeretnénk használni, akkor az integrálási tartományt át kell transzformálni az egységgömbre vagy négyzetre. A leképzéshez először az! 0 irányt fejezzük ki a ffi; 0 gömbi koordináták 51

54 52 7. A globális illuminációs probléma véletlen bolyongással történő megoldása segítségével: L in (~x;! 0 ) f r (! 0 ;~x;!) cos 0 d! 0 = 2ß ß f r (ffi; 0 ) cos 0 sin 0 L in d 0 dffi Ω ffi=0 0 =0 mivel d! =sin 0 d 0 dffi. Jelöljük az f r (ffi; 0 ) cos 0 sin 0 tagot w(ffi; 0 )-vel, amely a visszaverődés valószínűség-sűrűség függvénye. Most megkeressük azt a T (ffi; 0 )=z leképezést, amely nagy ott, ahol az integrandus nagy és leképezi a gömbi koordináták tartományát az egységnégyzetbe: 2ß ß ffi=0 0 =0 ahol w(ffi; 0 ) L in (ffi; 0 ) d 0 dffi = [0;1] 2 w(t 1 (z)) L in (T 1 (z)) fi fififi dt 1 (z) dz fi fi fi fi fi fi fi = 1 t(z) fi fi fi fi dt 1 (z) dz fi dz = [0;1] 2 w(t 1 (z)) L in (T 1 (z)) dz; t(z) az inverz leképezés Jacobi mátrix determinánsa. Ha a Jacobi determináns nagy, akkor az egységgömb kis részét képezzük le nagy tartományra. Ebből adódóan az egységgömbben egyenletes eloszlású mintapontok ritkán fognak elhelyezkedni ezekben a tartományokban. Hasonlóképpen, ahol a Jacobi determináns kicsi, ott a mintapontok sűrűn fognak elhelyezkedni. A t(z) tehát a mintapontok sűrűségét jelenti az! =(ffi; 0 )=T 1 (z) környezetében. Ha a z vektor egyenletes eloszlásúvalószínűségi változó, akkor a! = T 1 (z) valószínűségsűrűség függvénye éppen t(z) lesz. Az árnyalási egyenlet egy adott (~x;!) pontban történő megoldása a következőtöbb-dimenziós integrál kiértékelését követeli meg (3.3 egyenlet): L(~x;!) =L e + T L e + T 2 L e + ::: = [0;1] 2 ::: [0;1] 2 L e w 1 + L e + w 1 t 1 t 1 w2 t 2 L e + :::dz 1 dz 2 ::: (7.2) Ez az integrál Monte-Carlo vagy kvázi-monte Carlo módszerrel becsülhető, melyek az integrandust diszkrét mintapontokban értékelik ki és átlagolják a megoldást. Az ilyen módszerek kritikus pontja a T i leképezés jó megválasztása. Valószínűségi megközelítésben ez annyit jelent, hogy egy út kiválasztásának a valószínűsége arányos ezen út hozzájárulásával. A Koksma-Hlawka egyenlőtlenségből kiindulva, a leképezésnek az integrandust lapossá kell tennie, azaz alacsony variációjúvá vagy konstanssá ideális esetben. Megvizsgálva a 7.2. egyenletet, láthatjuk, hogy jó leképezést nehéz választani, mivel túl sok szabad paramétert kell egyidejűleg beállítani. Szerencsére, a megoldást a következő rekurzív alakban is felírhatjuk: Ha biztosítani tudjuk, hogy a L(~x;!) =L e + [0;1] 2 [0;1] 2 w 1 t 1 [L e + [0;1] 2 w i t i [L e + w 2 t 2 [L e + :::] :::] dz 1 dz 2 ::: (7.3) [0;1] 2 :::] dz i alakú integrandusok konstans értéket vesznek fel (legalább megközelítőleg), akkor a több-dimenziós integrál integrandusa szintén konstans lesz [SKCP99]. Ennek köszönhetően az optimális fontosság szerinti mintavételezés megköveteli, hogy a t i sűrűségfüggvény arányos legyen az L e + R :::bejövő illumináció és a w i koszinusszal súlyozott BRDF-nek a szorzatával. Sajnos, a véletlen bolyongás során a bejövő indirekt illumináció nem ismert. A valószínűség sűrűséget tehát közelíteni kell, mely során három alternatíva közül választhatunk. Először is, feltérképezhetjük a fontos megvilágítási irányokat az előfeldolgozási fázisban, ezután ezen információ felhasználható a fontosság szerinti mintavételezés valószínűség-sűrűségfüggvényének meghatározásához. Ezt glob ális fontosság szerinti mintavételezésnek nevezzük. Ezek a módszerek aszerint csoportosíthatók, hogy milyen adatstruktúrát használunk az előfeldolgozási fázis eredményeinek tárolására. Mivel a sugártér 5-dimenziós, ezért kézenfekvőegy5d adapt ív fa [LW96] alkalmazása. Jensen a foton-térkép alkalmazását javasolta erre a célra [Jen95]. A másik megoldás szerint nem bontjuk két különálló fázisra az algoritmust, hanem az egyetlen fázis korábbi lépéseiben megszerzett információt használjuk, hogy a későbbi lépésekben a fényutakat a fontos tartományok felé tereljük. Ezt a stratégiát adaptív fontosság szerinti mintavételezésnek nevezzük. Az adaptív fontosság szerinti mintavételezés esetén nem kell előre megkonstruálni a nem-egyenletes valószínűség-sűrűségfüggvényt. Három technikát kell megemlíteni ezen a téren, amelyek használatosak az árnyalásban: genetikus algoritmus [LB94], Metropolis mintav ételezés [MRR + 53, VG97] és a VEGAS módszer [Lep80, SK98a]. A Metropolis mintavételezést a számítógépes grafikában elsőként a kétirányú sugárkövetés [VG97] felgyorsítására használták.

55 7.2. Az árnyalási egyenlet fontosság szerinti mintavételezése 53 A harmadik alternatíva szerint, egyszerűsítsük a problémát és a direkt illuminációt ne vegyük figyelembe a fontosság szerinti mintavételezésben. Amikor az irányokat generáljuk, akkor csak a visszaverődés w i valószínűségsűrűség függvényét vagy az aktuális pont L e direkt illuminációját használjuk. Ezt lokális fontosság szerinti mintavételezésnek nevezzük. Nyilvánvaló, hogy a valószínűség-sűrűségfüggvény konstruálása során komoly problémákkal találhatjuk szemben magunkat, ha egyszerre szeretnénk mind a visszaverődés sűrűségfüggvényével mind pedig a saját emisszióval arányos valószínűségsűrűség függvényt előállítani. Ebből adódóan, a lokális fontosság szerinti mintavételezés stratégia általában vagy csak a w i -t vagy az L e -t használja a fontos irányok meghatározására. Az elsőt BRDF mintav ételezésnek, míg a második megoldást fényforrás mintavételezésnek nevezzük BRDF mintavételezés A BRDF alapú fontosság szerinti mintavételezés azt jeleni, hogy az i. lépésben a t i sűrűség arányos a visszaverődés valószínűségsűrűség függvénnyel, vagyis t i / w i = f r (! in ;~x;! out ) cos : (7.4) Agyűjtősétában az! out ismert, a az! in és a felület normálisa közötti szög, és az! in -t kell meghatározni. A lövősétákban viszont az! in ismert, a az! out és a felület normálisa közötti szög, és az! out -t kell meghatározni. Mivel a t i sűrűséget jelent (a Monte-Carlo módszerek valószínűség-sűrűségét), ezért az integrálja egységnyi. A gyűjtősétákra és nem-átlátszó anyagokra, ez az arányossági tényező a 7.4 képletben wd! in = f r (! in ;~x;! out ) cos in d! in = a(~x;! out ) ΩH ΩH ahol a(~x;! out ) a felület ~x pontjának albedója a kimenőirányban. Hasonlóan, az arányossági tényezőalövősétákra wd! out = f r (! in ;~x;! out ) cos out d! out = a(~x;! in ): ΩH ΩH A w Λ = w i =t i súlyfüggvények tehát éppen a meglátogatott pontok albedóját jelentik ebben az esetben. BRDF mintavételezés diffúz anyagokra A diffúz anyagok konstans BRDF-fel rendelkeznek, azaz t i (ffi; ) / w i = f r cos sin : Az arányossági tényezőt kiszámolhatjuk, ha a t i -t normalizáljuk: t i (ffi; ) = R ΩH w i w i d! = f r cos sin 2ß R ß=2 R f r cos sin d dffi ffi=0 =0 = cos sin : ß Tételezzük fel, hogy a két koordináta-minta előállításához használt valószínűségi változók függetlenek, ekkor a sűrűség szorzat formájában írható fel: t i (ffi; ) = 1 [2 cos sin ] ; (7.5) 2ß ahol 1=(2ß) a ffi és 2cos sin =sin2 pedig a sűrűségfüggvénye. A megfelelővalószínűség-sűrűségfüggvények a következők: P (ffi) = ffi 0 1 2ß dφ= ffi 2ß ; P ( ) = 0 sin 2 d =sin 2 : Következésképpen a keresett ffi és valószínűségi változók a következő, a [0; 1] intervallumon egyenletes eloszlású, u; v változók transzformációjával kereshetők meg: ffi =2ß u; = arcsin p v: A transzformált súly a fontosság szerinti mintavételezés után éppen az albedó: w Λ i = w i t i = f r ß = a: (7.6)

56 54 7. A globális illuminációs probléma véletlen bolyongással történő megoldása BRDF mintavételezés spekuláris anyagokra A spekuláris anyagok a Phong BRDF modell reciprok alakjával jellemezhetők, vagyis f r (! in ;~x;! out )=k s cos n ψ ffl(ß=2 ); ahol ψ az! out és a felület normálisához viszonyított! in tükörirány amelyet! r -rel fogunk jelölni közötti szög, és az ffl(ß=2 ) azt jelenti, hogy a kimenőirány nem mutathat a testbe, vagyis a felület normálisa és a visszavert irány közti szögnek kisebbnek kell lennie 90 foknál. N R sík merõleges az R -re V ψ φ felület referencia irány a síkon, amely merõleges az R -re 7.1. ábra. Parametrizálás az albedó számolásához Az iránygömb megfelelő parametrizálásához az északi pólus az! r visszaverődési irány szerint választandó (7.1. ábra). Jelöljük ψ szöggel az! r iránytól való eltérést, és ffi-vel pedig ennek az iránynak az! r -ra merőleges síkra vett vetülete és ezen sík szabadon választott vektora közötti szöget. A BRDF mintavételezés olyan sűrűséget követel meg, amely megfelel a következő feltételnek: t i (ffi; ψ) / w i = k s cos n ψ cos (ψ;ffi) ffl(ß=2 (ψ;ffi)) sin ψ: Sajnos, a cos ffl(ß=2 ) faktor nem teszi lehetővé e formula szimbolikus integrálását, ezért olyan sűrűségfüggvényt fogunk alkalmazni, amely csak a ~w i = k s cos n ψ sin ψ kifejezéssel arányos. Az arányossági tényezőt a t i normalizálásával kapjuk meg: t i (ffi; ψ) = 2ß R R ß=2 ffi=0 ψ=0 k s cos n ψ sin ψ k s cos n ψ sin ψdψdffi = n +1 2ß cosn ψ sin ψ: Tételezzük fel, hogy a koordináta-minták előállítására használt valószínűségi változók függetlenek, azaz a sűrűségfüggvényt szorzat alakban írhatjuk fel: t i (ffi; ψ) = 1 2ß [(n +1)cosn ψ sin ψ]; (7.7) ahol 1=(2ß) a ffi és a (n + 1) cos n ψ sin ψ a ψ valószínűség-sűrűségfüggvénye. A megfelelővalószínűség-sűrűségfüggvények a következők: P (ffi) = ffi 2ß ; P (ψ) = ψ 0 (n +1)cos n ΨsinΨdΨ =1 cos n+1 ψ: Következésképpen a keresett ffi és valószínűségi változók a következő, a [0; 1] intervallumon egyenletes eloszlású, u; v változók transzformációjával kereshetők meg: ffi =2ß u; ψ = arccos(1 v) 1=(n+1) : A transzformált súly a fontosság szerinti mintavételezés után: w Λ i = w i t i = 2ßk s cos (ψ;ffi) ffl(ß=2 (ψ;ffi)): (7.8) n +1 Különböző spekuláris BRDF modellek és azok BRDF mintavételezései megtalálhatóak a [War92, NNSK98b, NNSK98a, NNSK99] publikációkban.

57 7.3. Végtelen-dimenziójú integrálok kezelése A fényforrás mintavételezése A fényforrás mintavételezését a direkt fényforrás számolásnál [SW96] használjuk, mint kiegészítő mintavételező stratégiát a véletlen bolyongás BRDF mintavételezéséhez. Mivel ebben az esetben a mintákat az iránygömb helyett a fényforrásból választjuk, a fényátadás operátort mint a felületeken futó integrált írjuk fel: (T L e )(~x;!)= Ω L e (h(~x;! 0 );! 0 ) f r(! 0 ;~x;!) cos 0 d! 0 = Se L e (~y;! ~y!~x ) f r(! ~y!~x ;~x;!) cos 0 ~x cos ~y j~x ~yj 2 v(~y; ~x) d~y; (7.9) ahol v(~y;~x) =1,haa~x és ~y pontok nincsenek eltakarva egymás elől, minden egyéb esetben v(~y;~x) =0, és S e afényforrás területe. A Monte-Carlo becslés kiszámításához N darab ~y 1 ;:::~y N pontot választunk egyenletesen a fényforráson, és a következőképletet használjuk: (T L e )(~x;!) ß js ej N NX i=1 L e (~y i ;! ~yi!~x) v(~y i ;~x) f r (! ~yi!~x;~x;!) cos 0 i cos ~yi j~x ~y i j 2 : Ha a térben csak egyetlen homogén fényforrás helyezkedik el, amely aránylag kicsi és messze van a vizsgált ponttól, akkor az integrandus megközelítőleg konstans a fényforrás felületén, ezért a szórás kicsi A fényforrás mintavételezése a gyűjtősétában Mivel a fényforrás mintavételezése a mintákat csak a direkt fényforráson állítja elő, ezért teljesen elhanyagolja az indirekt illuminációt. Következésképpen a fényforrás mintavételezés önmagában nem használható a globális illuminációs algoritmusokban, csak mint kiegészítő eljárás, például a BRDF mintavételezéshez. A legegyszerűbb lehetőség a két stratégia kombinálására, amikor is a gyűjtőséta utolsólépéséig a BRDF mintavételezésével generáljuk az utat, majd az utolsó lépésben a fényforrást mintavételezzük. Figyeljük meg, hogy ha megállítjuk a sétát, akkor az indirekt illumináció feltételezhetően nulla lesz, ezért nyugodtan tekinthetjük csak a fényforrások irányát. Egy másik megközelítés szerint, minden meglátogatott pontból árnyék-sugarakat küldünk a fényforrások felé, nemcsak az utolsólépés során. Formálisan ezt a megközelítést a Neumann sor átrendezésével tárgyalhatjuk: L = L e + T L e + T 2 L e + T 3 L e ::: = L e +(T L e )+T (T L e )+T 2 (T L e ) ::: (7.10) Gyakorlati szempontból ez azt jelenti, hogy miután elértük a felületet, egy vagy több árnyék-sugarakat indítunk útnak a fényforrások felé, és kiértékeljük ebben a pontban a fényforrások fényének a visszaverődését. Ez a módszer akkor nagyon hatékony, ha a tér pontszerű fényforrásokból áll. Pontszerű fényforrások használata esetén az illumináció pontosan meghatározható Fontosság szerinti mintavételezés színes terekben Az eddigiekben feltételeztük, hogy a BRDF-eket és az emissziót tartalmazó súlyok valós változók, ezért a sűrűség arányos lehet velük. Ez csak akkor igaz, ha az árnyalási egyenlet egyetlen hullámhosszon oldjuk meg. Jóllehet, ha színes képekre van szükségünk, akkor az árnyalási egyenletet néhány (legalább 3) különböző hullámhosszon kell megoldanunk. Ha a különböző hullámhosszokat teljesen függetlenül kezeljük, akkor a javasolt fontosság szerint mintavételezés változatlanul használható. Mivel ekkor a geometriai számításokat feleslegesen megismételnénk a különböző hullámhosszokra, ez a módszer nem javasolható. Jobban járunk, ha olyan sugarakat használunk, amelyek egyszerre minden hullámhosszon szállítják a fényt. Ebben az esetben az emisszió és a BRDF vektor formájában írható fel, ezért a fontosság szerinti mintavételezés használatához egy I fontosság függvényre van szükségünk, ami nagy ha a vektor elemei nagyok és kicsi, ha az elemek kicsik. A fontosság függvény a spektrum függvénye, például a szállított fény luminanciája Végtelen-dimenziójú integrálok kezelése Az expanzió, a gyűjtő-, illetve lövőséta integrálok sorozatának kiértékelését követeli meg, ahol az integrálási tartomány dimenziója a végtelenbe tart. A Neumann-sor csonkításával ez a probléma megoldható, de ez az eredményt eltorzítja. Szerencsére, a számítás további randomizálásával ez a probléma kiküszöbölhető. A Monte-Carlo integrációval való összefüggésben ezt a megközelítést orosz rulettnek [AK90] hívják.

58 56 7. A globális illuminációs probléma véletlen bolyongással történő megoldása Az orosz rulett A Neumann-sor a következő integrálok sorozatából áll: L = [0;1] 2 w t [Le + :::] dz = [0;1] 2 w Λ (z) L in (z) dz = E w Λ L inλ : A Monte-Carlo módszer az értelmezési tartományban véletlen pontokat állít elő, és az integrandus értékek átlagával becsli az integrált. Próbáljuk meg tovább randomizálni ezt a megközelítést, és minden mintapont előtt s valószínűséggel döntsük el, hogy valóban ki fogjuk-e az adott pontban értékelni az integrált vagy egyszerűen az integrandust nullának tekintjük mindenféle számolás nélkül. Azon célból, hogy kompenzáljuk a nem számolt tételeket, a valóban számolt integrandusokat elosztjuk az s valószínűséggel. A randomizálás új L ref valószínűségi változót vezet be, amely egyenlő w Λ L in =s-sel, ha az integrandust kiértékeljük és egyébként nulla. A Monte-Carlo módszer továbbra is megfelelő értéket szolgáltat: E[L ref ]=s E L ref j Λ a mintát használjuk +(1 s) E L ref j Λ a mintát nem használjuk =» wλ L s in E +(1 s) 0=E w Λ L inλ = L: (7.11) s Az új becslő szórásnégyzete viszont nagyobb lett: D 2 [L ref ]=E[(L ref ) 2 ] E 2 [L ref ]=s E " L ref BRDF mintavételezés a többszörösen fényvisszaverő anyagokra s 2# +(1 s) 0 E 2 [L ref ]= 1 s 1 E[(w Λ L in ) 2 ]+D 2 [w Λ L in ]: (7.12) A gyakorlatban használt visszaverő modellek különböző egyszerű BRDF-eket használnak. Az eddigiekben olyan módszereket mutattunk be, amelyek jól használhatók a csak diffúz vagy csak spekuláris visszaverődésekre. Szerencsére az orosz-rulett kiterjeszthető a kombinált eset kezelésére is. Ha a visszaverődési modell különböző BRDF-ek összege, akkor a különböző összetevőkből véletlenszerűen választhatunk. Tételezzük fel, hogy az visszaverődés valószínűség-sűrűsége a BRDF-eknek megfelelően összegeként írható fel: w = w 1 + w 2 + :::+ w n : Ebből adódóan a sugársűrűség egyszeres visszaverődése: L = w L in d! = w 1 L in d! + :::+ w n L in d!: Ω Ω Ω Tételezzük fel, hogy minden integrálhoz találhatóegyt i leképezés, amely, legalább közelítően arányos az adott integrandussal: w 1 L = L in w dz n + :::+ L in dz = E w Λ 1 L inλ + :::+ E wn Λ L inλ : t 1 t n [0;1] 2 [0;1] 2 Válasszuk ki az i. BRDF-et p i valószínűséggel, és súlyozzuk az eredő radianciát 1=p i -vel vagy fejezzük be a sétát p 0 =1 p 1 ::: p n valószínűséggel. Az i. modell használatakor az új ^L valószínűségi változó értéke wi Λ L in =p i és 0, ha nem választunk ki BRDF modellt. A ^L várható érték továbbra is a megfelelőképpen alakul:» w E[ ^L] Λ» =p 1 E 1 L in w Λ + :::+ p n E n L in +(1 p 1 ::: p n ) 0=E (w Λ 1 + :::+ wλ )LinΛ n = L: (7.13) p 1 p n Ez lényegében egy összeg kiértékelése Monte-Carlo módszerrel. A fontosság szerinti mintavételezés szerint a szórás kicsi lesz, ha a wi ΛLin =p i kifejezés legalább megközelítőleg állandó. Mivel rendszerint nincs előzetes információnk az L in radianciáról, ezért a wi Λ=p i tesszük konstanssá. A kis szórású becslés létrehozásához tehát az alap BRDF-eket azok w i Λ transzformált súlyainak valószínűségével kell kiválasztani. Mivel a fontosság szerinti mintavétel után a w i Λ súly egyenlő vagy megközelítőleg egyenlő az albedóval, ezért a kis szórású becslés az alap BRDF-eket a hozzájuk tartozó albedó valószínűségével választja ki. Ha a bejövő irányból és a felületi normálisból akarunk kimenő irányt generálni, akkor a következő általános BRDF mintavételező algoritmust használhatjuk:

59 7.3. Végtelen-dimenziójú integrálok kezelése 57 BRDFSampling(in, normal, out) prob = SelectBRDFModel(normal, in) if prob = 0 then return 0 prob *= Reflection(in, normal, out) if prob = 0 then return 0 return prob end Ebben a programban a SelectBRDFModel szerepe az alap BRDF-k albedó valószínűségével történő kiválasztása, és ezen valószínűség visszaadása. Ha ez a valószínűség 0, akkor a sétát az orosz-rulett elvei szerint befejezzük. A Reflection függvény új out irányokat generál a választott visszaverődési modell visszaverési valószínűségi sűrűségével megközelítőleg arányosan, és visszaadja a minta előállításának valószínűségét.

60 58 7. A globális illuminációs probléma véletlen bolyongással történő megoldása

61 8. fejezet Vélelen bolyongáson alapuló algoritmusok Ebben a fejezetben képszintézis algoritmusokat mutatunk be, amelyeknek többsége vélelen bolyongással keresi meg a lehetséges fényutakat. A teljesség kedvéért, determinisztikus és nem globális illuminációs jellegű módszereket is tárgyalunk. A véletlen bolyongáson alapuló algoritmusokat aszerint osztályozhatjuk, hogy azok az árnyalási egyenletet megoldó gyűjtősétákat tesznek, vagy pedig a potenciál egyenletet megoldólövősétákat követnek Véletlen bolyongáson alapuló gyűjtőséták A véletlen bolyongáson alapuló gyűjtőséták az árnyalási egyenlet Monte-Carlo módszerrel történő megoldásának felelnek meg. A kamerából indulnak, és összegyűjtik a meglátogatott pontok emisszióját. szem ablak 8.1. ábra. Véletlen bolyongáson alapuló gyűjtőséták Agyűjtőséták általános formája a következő: for each pixel p do color = 0 for i = 1 to N do ray = sample ray randomly from the eye through pixel p samplecolor = c Trace( ray ) color += samplecolor=n endfor Pixel(p, color) endfor A különböző algoritmusok a Trace függvényt különbözőképpen implementálják. Ez a függvény a sugár által a szembe bevitt radianciát határozza meg. A radianciát ezután a c = (c=s p ) S p értékkel szorozzuk meg, ahol a c=s p skálázás a mérőfüggvény (2.51 egyenlet) miatt szükséges, S p pedig az integrálási tartomány nagysága. 59

62 60 8. Vélelen bolyongáson alapuló algoritmusok Egyszerű sugárkövetés A sugárkövetés (ray-casting) a lokális illuminációs algoritmusok csoportjába tartozik, amely az emissziós függvénnyel közelíti az árnyalási egyenlet integráljában szereplő ismeretlen radianciát. A trace függvényben a következő egyszerűsítést használhatjuk a pont radianciájának meghatározására: L(~x;!) =L e (~x;!) + Ω L lightsource (h(~x;! 0 );! 0 ) f r (! 0 ;~x;!) cos 0 d! 0 ; (8.1) ahol L lightsource előre ismert, és egyúttal az L e emissziós függvény egyszerűsítésének tekinthető. normál sugár árnyék sugár, amely fényforrást talál árnyék sugár, amely nem talál fényforrást szem ablak 8.2. ábra. Egyszerű sugárkövetés A sugárkövetés Trace függvénye: Trace(ray) (object, ~x) = FirstIntersect(ray) if no intersection then return L sky color = L e (~x, -ray.direction ) + DirectLightsource(~x, -ray.direction ) return color end Ebben az algoritmusban az L sky aháttér megvilágítás intenzitása (pl. égbolt), a FirstIntersect függvény a sugár által elsőként metszett testet és a metszési pontot adja vissza. A DirectLightsource függvény a fényforrások fényének egyszeri visszaverődését becsüli meg, és kiszámítja ennek hatását az ~x pontban adott irányban. Például, ha a tér l darab pontforrást tartalmaz az ~y 1 ;:::~y l helyeken és Φ 1 ;:::;Φ l teljesítményekkel, valamint a L sky aháttér fény intenzitása, akkor ezek visszaverődése az ~x pontban: L ref (~x;!) =L sky a(~x;!) + lx i=1 Φ l 4ßj~y i ~xj 2 v(~y i;~x) f r (! ~yi!~x;~x;!) cos 0 i ; (8.2) ahol 0 i az! ~y i!~x és a felület normálisa közti szög, és az árnyék sugarakkal számított v(~y i ;~x) akét pont kölcsönös láthatóságát jelzi. A felületi fényforrások L e (~y;!) emissziójának kezelése céljából Monte-Carlo integrált használhatunk, amely N egyenletesen elosztott ~y i mintát választ az A felszínűfényforrás felületén, ésakövetkező becslést alkalmazza: L ref (~x;!) ß A N NX i=1 L e (~y i ;! ~yi!~x) v(~y i ;~x) f r (! ~yi!~x;~x;!) cos 0 i cos ~yi j~x ~y i j 2 : (8.3)

63 8.1. Véletlen bolyongáson alapuló gyűjtőséták Rekurzív sugárkövetés A rekurzív sugárkövetés (visibility ray-tracing) a többszörös hosszúságú fényutakat csak az ideális visszaverődésre és törésre képes követni. normál sugár árnyék sugár, amely fényforrást talát árnyék sugár, amely nem talál fényforrást szem ablak 8.3. ábra. Rekurzív sugárkövetés Formálisan, az árnyalási egyenletet a következő formában egyszerűsíti: L(~x;!) =L e (~x;!) + Ω L lightsource (h(~x;! 0 );! 0 ) f r (! 0 ;~x;!) cos 0 d! 0 + k r (! r ;~x;!) L(h(~x;! r );! r )+k t (! t ;~x;!) L(h(~x;! t );! t ); (8.4) ahol! r és! t az ideális visszaverő- és törőirány, és k r és k t a visszaverődési illetve a törési együttható. A rekurzív sugárkövetés Trace függvénye: Trace(ray) (object, ~x) = FirstIntersect(ray) if no intersection then return L sky color = L e (~x, -ray.direction ) + DirectLightsource(~x, -ray.direction ) if k r > 0 then color += k r Trace(reflected ray) if k t > 0 then color += k t Trace(refracted ray) return color end Ezafüggvény rekurzívan hívja meg saját magát a sugár visszaverődési és törési irányából érkező radiancia meghatározására. A végtelen rekurzió elkerülése céljából a rekurzió maximális mélységét korlátozzuk.

64 62 8. Vélelen bolyongáson alapuló algoritmusok Elosztott sugárkövetés A Cook [CPC84] által javasolt elosztott sugárkövetés (distributed ray-tracing) egy globális illuminációs algoritmus, amely minden lehetséges fényút típust modellezni tud ábra. Elosztott sugárkövetés Ebben a módszerben a sugár útja nem fejeződik be, ha az olyan felületet ér el, amely se nem ideálisan visszaverő, se nem törő, hanem ekkor is véletlen gyermek sugarakat generálunk. Ez a megközelítés az integrálok Neumann-sorbeli (3.8. egyenlet) rekurzív formáján alapul, amit hasítással oldunk meg. Az elosztott sugárkövetés Trace függvénye: Trace(ray) (object, ~x) = FirstIntersect(ray) if no intersection then return L sky color = L e (~x, -ray.direction ) + DirectLightsource(~x, -ray.direction ) for sample = 1 to N do prob = BRDFSampling(-ray.direction, normal, newray) if prob > 0 then color += Trace( newray ) w(newray.direction, normal, -ray.direction) / prob /N endfor return color end Ebben a programban a BRDFSampling függvény mint ahogy az részben definiáltuk megkeresi azt az új sugarat, melyet azután rekurzívan nyomon követünk. Ha a BRDFSampling zérust ad vissza, akkor a színt 0-ra állítjuk minden további rekurzív hívás nélkül.

65 8.1. Véletlen bolyongáson alapuló gyűjtőséták Inverz fényútkövetés A Kajiya [Kaj86] által javasolt inverz fényútkövetés (path tracing) egy Monte-Carlo megközelítés, amely a Neumann-sor (3.5 egyenlet) elemeit több-dimenziós integrálformulaként értelmezi. normál sugár árnyék sugár, amely fényforrást talál árnyék sugár, amely nem talál fényforrást szem szem ablak ablak 8.5. ábra. Inverz fénykövetés: direkt fényforrás számolással (bal oldal) és anélkül (jobb oldal) A szempozícióból indulunk, akár a sugárkövetésnél, de most minden egyes metszéspontnál véletlenszerűen választjuk ki a továbbhaladási irányt, mégpedig olyan t i valószínűség-sűrűségfüggvény szerint, ami arányos a BRDF és a kilépő szög koszinuszának a szorzatával. Minden lépés után az orosz rulett szabályai szerint, az albedónak megfelelő a i = w i =t i valószínűséggel folytatjuk a bolyongást. Egy fényút hatása a kamerában: P = c (L e 1 + Le 2 w 1 t 1 a 1 + L e 3 w 2 t 2 a 2 w 1 t 1 a 1 + :::) ahol L e i ameglátogatott pont emissziója az út i. lépésében w i a visszaverődési sűrűségfüggvénye ebben a pontban, és c amérőműszer skálázó faktora. Ha ideális BRDF mintavételezést használunk, akkor w i a t i -vel arányos és mind a w i =t i, mind pedig az a i az albedóval egyenlő, ami a következő becslést adja: P = c (L e 1 + Le 2 + Le 3 + :::): Ennek a becslésnek nagyon nagy a szórása, ha a fényforrások kicsik. Ez a probléma megoldható, ha a gyűjtősétát a fényforrás mintavételezésével kombináljuk, ami azt jelenti, hogy minden meglátogatott pontban a fényforrás hatását véletlenszerűen megbecsüljük. A inverz fénykövetés Trace függvényének: Trace(ray) (object, ~x) = FirstIntersect(ray) if no intersection then return L sky color = L e (~x, -ray.direction )+ DirectLightsource(~x, -ray.direction ) prob = BRDFSampling(-ray.direction, normal, newray) if prob = 0 then return color color += Trace( newray ) w(newray.direction, normal, -ray.direction) / prob return color end Ebben a programban a BRDFSampling vagy új irányt talál vagy nullával tér vissza, ha az orosz rulett miatt a bolyongást be kell fejezni. Vegyük észre, hogy ez az algoritmus az utolsó irány előállításán kívül BRDF mintavételezést használ, míg az utolsó irány a fényforrás mintavételezéséből adódik. Ha a felület a fény visszaverődésénél fényes (közel van az ideális tükörhöz vagy ideális törő anyaghoz), akkor a BRDF mintavételezés kritikus lehet. Mivel a fényforráshoz közeli ideális felületek okozzák a kausztikus optikai jelenségeket, ezért az inverz fénykövetés mint más gyűjtőséták rosszak a kausztikus effektusok megjelenítésében.

66 64 8. Vélelen bolyongáson alapuló algoritmusok 8.2. Véletlen bolyongáson alapuló lövőséták A lövőséták a potenciál egyenletet Monte-Carlo módszerrel oldják meg. A fényforrásból indulnak, és a téren végighaladva a szemet próbálják megtalálni. szem ablak 8.6. ábra. Véletlen bolyongáson alapuló lövőséta Alövőséták általános formája a következő: Clear Image for i = 1 to N do ray = Sample randomly from a lightsource with selection probability p e power = L e cos =p e =N Shoot( ray, power ) endfor A különböző lövőséta algoritmusok a Shoot függvényt különbözőképpen implementálják. Ez a függvény a teljes út által a szembe bevitt energiát határozza meg, valamint azt a pixelt, amelyen keresztül az út a szembe érkezik.

67 8.2. Véletlen bolyongáson alapuló lövőséták Foton követés A foton követés (photon tracing) a rekurzív sugárkövetés inverze, amely hasonló egyszerűsítéseket használ. foton útja szemhozzájárulás útja takarás miatt nincs hozzájárulás szem ablak 8.7. ábra. Photon tracing A bolyongás itt is befejeződik, ha olyan felülethez érünk, amely se nem koherensen visszaverő, se nem koherensen törő. A sugárkövetésben a sugarak a fényforrásból indulnak, és a sugárral egy felületi pontot elérve megvizsgáljuk, hogy a felület ideálisan visszaverő illetve törő-e. Az ideális visszaverő vagy törő irányban a bolyongás folytatódik új gyermek sugarak indításával. A módszer Shoot függvénye: Shoot(ray, power) (object, ~x) = FirstIntersect(ray) if no intersection then return if ~x is visible from pixel p then color[p] += power w(ray.direction, ~x, eye direction ) g(~x) endif if k r > 0 then Shoot( reflected ray, k r power ) if k t > 0 then Shoot( refracted ray, k t power ) return end Az eye direction az ~x pontból a szem irányába mutató vektor.

68 66 8. Vélelen bolyongáson alapuló algoritmusok Fénykövetés A fénykövetésben (light-tracing) [DLW93] a fotonok véletlenszerűen bolyonganak a térben a fényforrások pontjaiból kiindulva. A fénysugár az indítása után ide-oda verődik a térben. Minden visszaverődési pontot összekötünk a szempozícióval, és ellenőrizzük, hogy lehet-e ennek hatása valamely pixelre. Ha lehet, akkor a pixel színéhez hozzáadjuk a visszaverődés hatását. foton út szemhozzájárulás út takarás miatt nincs hozzájárulás szem ablak 8.8. ábra. Fénykövetés Afénykövetés a Monte-Carlo integrálás direkt implementációja a potenciál egyenlet több-dimenziós alakjának megoldásában. A következő irány meghatározása során a BRDF alapú fontosság szerinti mintavételezés használható az orosz rulettel kombinálva. A véletlen irányt a w i -vel megközelítőleg arányos t i sűrűség szerint választjuk ki (fontosság szerinti mintavételezés). A bolyongás az albedót közelítő a i valószínűséggel folytatódik (orosz rulett). Az út egy lépésének mért értéke: P = Le cos N p e w 1 t 1 a 1 w 2 t 2 a 2 ::: w(eye) g; ha ez a látható a pixelben, egyébként 0. Itt az L e a kezdőpont emissziója, az első irány és a fényforrás felületi normálja közti szög, p e ennek a fényforrás pontnak és a kezdeti iránynak a kiválasztási valószínűsége, w(eye) az adott pont BRDF-je az utolsó irányból a szembe, és g a felületi kamera paraméter. Ha egyidejűleg ideális BRDF mintavételezést használunk azaz w i arányos a t i -vel és mind az w i =t i és mind az a i az albedóval egyenlő, valamint ideális fényforrás-mintavételezést azaz p e arányos az L e cos -val, ezért L e cos =N p e =Φ=N, akkor a következő becslést kapjuk: w(eye) g: P = Φ N Ennek a becslésnek nagy a szórása, ha a kamera rejtett, mivel ha a pont nem látható a kamerából, a fényút hozzájárulása nulla. Afénykövetés Shoot függvénye: Shoot(ray, power) (object, ~x) = FirstIntersect(ray) if no intersection then return if ~x is visible from pixel p then color[p] +=power w(ray.direction, ~x, eye direction ) g(~x) endif prob = BRDFSampling(-ray.direction, normal, newray ) if prob = 0 then return newpower = power * w( -ray.direction, normal, newray.direction ) / prob Shoot( newray, newpower ) return end Ez az algoritmus szintén BRDF mintavételezést használ az utolsó lépés kivételével. Az utolsó látható sugár iránya viszont messze eshet a BRDF által előnyben részesített iránytól. Ez csökkenti a fontosság szerinti mintavételezés hatékonyságát, ha a látható felület nagyon fényes. Azaz a látható tükrök vagy törő felületek (üveg) nehézségeket jelentenek.

69 8.3. Kétirányú fényútkövetés Kétirányú fényútkövetés A kétirányú fényútkövetés (bi-directional path-tracing) [LW93, VG95] az inverz fényútkövetés és a fénykövetés kombinációja, amely hatékonyan tudja kezelni a kis fényforrásokat és a kis látószögű kamerákat is. Ez a módszer egyszerre indít egy gyűjtősétát és egy lövősétát, majd a két séta végpontjait összeköti. Néhány lépés után vagy egy egyszerű determinisztikus árnyéksugarat alkalmazhatunk a két fajta séta összekapcsolására [VG95], vagy a gyűjtőséta minden pontját összekötjük a lövőséta minden pontjával [LW93]. Ha a determinisztikus árnyék sugár azt észleli, hogy a két pont nem látja egymást, akkor ennek az sétának a hozzájárulása nulla. Tudvalevőleg, a gyűjtő- és lövőséták eltérő integrálváltozókat használnak. A gyűjtőséta a pixel területén lévő ponttal és a bejövő irányok sorozatával adott, míg a lövőséta a fényforráson lévő ponttal és a kimenő irányokkal definiált. Ebből adódóan, amikor a két sétát összekötjük, megfelelő változó transzformációkat kell alkalmazni. d ω 1 θ 1 θ d ω 2 dy r 1 θ out θ in r 2 da d ω ábra. Összefüggés a bejövő és kimenő irányok térszögei között Először vizsgáljuk meg az egyszeri visszaverődésű bolyongást (8.9. kép). A térszög definíciója szerint a következőt kapjuk: d! 0 1 d! 2 = da cos out=r 2 1 da cos in =r 2 2 A fényforrás felületi integráljának behelyettesítése szerint viszont Ezekből már adódik a transzformációs szabály d! 0 2 cos 0 1 cos in d! 0 1d! 0 2 = cos 0 1 cos out r 2 1 = r2 2 cos out r1 2 : (8.5) cos in d~y cos = r2 2 : (8.6) cos d! 2 d~y; ami azt jelenti, hogy amikor a lövősétát a gyűjtősétára konvertáljuk, akkor a radianciát meg kell szorozni a következő értékkel: cos 0 1 cos out r1 2 : ablak gyüjtõ út θ 1 x 1 x 2 θ 2 θ θ 3 3 θ θ 2 4 y 3 y 2 lövõ út θ 1 y 1 determinisztikus lépés ábra. Kétirányú fényútkövetés egy determinisztikus lépéssel

70 68 8. Vélelen bolyongáson alapuló algoritmusok Amikor a lövőséta több mint 1 lépésből áll, akkor a 8.5. képletet minden lépésre alkalmazni kell, de a 8.6. formulát csak az utolsó lépésre. Ez a konverzió kicseréli a bejövő irányokat a kimenő irányokkal, és az egymást követő lépések rk+1 2 =r2 k skálázási tényezői kiegyenlítik egymást. Végeredményként lássuk a teljes képletet, ami hasonló az1-lépéses esethez: cos 0 k cos 0 k+1 :::cos 0 n d!0 k :::d!0 n = cos 0 k cos n k+1 r 2 k cos n k :::cos 1 d! n k :::d! 1 d~y: A ábra k =2és n =4értékekre mutat egy példát. Összefoglalva a korábbi fejezetek szabályait alkalmazhatjuk a lövő- és gyűjtőséták előállítására a gyűjtőséta a bejövő szög koszinuszát használja, míg a lövősőta a kimenő szög koszinuszát és a kombinált bolyongást a következőképlettel alakíthatjuk át egyszerűgyűjtősétára: cos k 0 cos n k+1 rk 2 : Formálisan, ha a lövőséta és a gyűjtőséta végpontjai láthatók egymásból, akkor az egyszerű út mért értéke P = Le cos N p e w s 1 t s 1 a s 1 w s 2 t s 2 a s 2 ::: f s r cos s cos 0g r 2 f g r ::: w g 2 t g 2 a g 2 w g 1 t g 1 a g 1 c ahol az s és g felső indexek a lövő- és gyűjtőséta lépéseire vonatkoznak. Ha ideális BRDF mintavételezést használunk, akkor a becslés: P = Φ N f s r cos s cos 0g r 2 f g r c: ablak y2 x1 lövõ út árnyék sugarak x2 fényforrás x0 y0 gyüjtõ út y ábra. Kétirányú fényútkövetés többszörös determinisztikus lépésekkel A kétirányú fényútkövetés Lafortune féle változatában [LW93] nemcsak a lövő- és gyűjtőséták végpontjait kell öszszekötni, hanem az összes meglátogatott pontot. A kétirányú fényútkövetésben egy n hosszúságú teljes utat többféleképpen is előállíthatunk. Például az i hosszúságú gyűjtősétát minden i =0;:::;n-re kombinálhatjuk az n i hosszúságú lövősétával. Ez viszont annak veszélyét hordozza magában, hogy egy utat többször is beleszámítunk a képbe. Ennek a kiküszöbölésére az eredményt a különböző utak súlyozott összegeivel becsüljük,a többszörös fontosság szerinti mintavételezés szellemében. Más heurisztikus súlyok szintén jó eredményt adhatnak [LW93, Vea97].

71 8.3. Kétirányú fényútkövetés Metropolis fényterjedés A véletlen bolyongásos metódusok általában a fénysugár útjait egymástól függetlenül állítják elő. Ha egy bonyolult utat megtalálunk, akkor azt a felhasználása után rögtön eldobjuk, ami nem látszik hatékony megoldásnak. Erre gyógyírként a Metropolis eljárás szolgálhat, amely az előző út perturbációjával állítja elő az újabb mintákat, ezért a bonyolultabb fényviszonyok esetén is jó hatásfokkal alkalmazható. Mint tudjuk, a Metropolis módszer [MRR + 53] olyan mintákat generál, melyek valószínűségsűrűség függvénye aszimptotikus értelemben arányos az adott fontossági függvénnyel. Tételezzük fel, hogy ez a I fontossági függvény a fény luminanciája, melyet a fényút a pixelen keresztül a szembe juttat. Ez a választás azzal indokolható, hogy a szem különösen érzékeny a luminancia változására, és a különböző pixelek egyenlő fontossággal bírnak a képben. szem perturbáció szem perturbáció ablak ablak ábra. Utak generálása mutációval a Metropolis fényterjedésben Ahhoz, hogy a mintákat a I(z)=b szerint generáljuk, egy olyan Markov láncot építünk fel, melynek a stacionárius eloszlása éppen ez (itt z a fényutat jelöli). A b skalár a fontossági függvény integrálját jelenti az egész értelmezési tartományon, melyet az előfeldolgozó fázisban becsülhetünk. A Metropolis algoritmus egy fényút magból indul és ebből perturbációval állítja elő afényutak sorozatát. Veach és Guibas kétirányúfényútkövetést [VG97] javasolt a kiinduló mag megtalálásához, habár bármelyik véletlen bolyongásos algoritmus felhasználható erre a célra. Egy új z i+1. útnak a z i útból történőelőállítása két lépésből áll. Először a T (z i! z t ) kísérleti átvivőfüggvény z t kísérleti utat hoz létre a z i. út egy kisebb mutációval. A mutációazirányok megváltoztatását illetve újabb lépések hozzáadását vagy törlését jelentheti. Ezután a a kísérleti utat véletlenszerűen vagy elfogadjuk vagy elutasítjuk a a(z i! z t )=min ρ ff I(z t ) T (z t! z i ) I(z i ) T (z i! z t ) ; 1 elfogadó valószínűséggel, amely a fontosság növekedését fejezi ki. A mutáció definíciója majdnem tetszőleges, az egyetlen követelmény, hogy a Markov folyamatot ergodikussá tegye. Az ergodikus folyamatnak van határeloszlása és ez az eloszlás független a folyamat kezdeti állapotától. A gyakorlatban ez azt jelenti, hogy bármely pozitív energiájú út bármely más útból létrehozható bizonyos számú perturbáció után. Ezért a mutációk szükségképpen megváltoztathatják a fényút összes tulajdonságát, beleértve az irányokat (vagy a meglátogatott pontokat), kezdeti pontot, hosszat, stb. Ezen felül, hogy ne ragadjunk egy olyan tartományban, amely nulla fontosságú területekkel van körülvéve, a kísérleti átvivő függvénynek elég nagy lépéseket kell tennie ahhoz, hogy átugorja ezeket a nulla fontosságú területeket. Veach [VG97] például egy teljesen új út generálását javasolta, amikor a kísérleti út hozzájárulása nulla. Összefoglalva, a Metropolis fényterjedés algoritmusa a következő: Generate an initial ray-path z 1 using random walk, e.g. bi-directional path tracing for i =1to N do Based on the actual ray-path, find another, tentative path z t mutating z i with T (z i! z t) if I(z t)=0then Generate a completely new path z i+1 from scratch using random walk else a(z i! z t)=(i(z t) T (z t! z i))=(i(z i) T (z i! z t)) Generate uniformly distributed random number r in [0; 1] // accept with probability a(z i! z t) if r<a(z i! z t) then z i+1 = z t else z i+1 = z i endif Compute the contribution of the ray-path z i+1 to the affected pixel Multiply this contribution by b=(i(z i+1) N) and accumulate to the pixel endfor

72 70 8. Vélelen bolyongáson alapuló algoritmusok Foton térkép Akétirányúfényútkövetés egy gyűjtősétát egyetlen lövősétával köt össze. Milyen jó lenne, ha először a lövősétákat számíthatnánk ki, és a gyűjtősétákat pedig nem csupán egyetlen egy, hanem egyszerre az összes lövősétával megpróbálnánk összekötni. Kívánságunkat a foton térképek [JC95, Jen96, JC98] váltják valóra. A foton t érkép (photon-map) olyan adatstruktúra, amely a sok lövőséta hatását tömören tárolja. sphere containing n photon hits surface intersection of the surface and the sphere A = πr ábra. Foton térkép A foton térkép a foton találatok gyűjteménye. Egy találatot a foton által a különböző hullámhosszokon szállított energiával (ez nem fizikai foton, ami csak egy hullámhosszon visz energiát), a találat helyével, a foton érkezési irányával és a felületi normálissal együtt tárolunk. A foton találatokat a hatékony előkeresés érdekében kd-fa adatstruktúrába szervezzük. A gyűjtőséták alatt az árnyalási egyenlet következőközelítésével dolgozunk: Ω L(~x;! 0 )= Ω L(h(~x;! 0 );! 0 ) f r (! 0 ;~x;!) cos 0 d! 0 = dφ(! 0 ) da cos 0 d! 0 f r(! 0 ;~x;!) cos 0 d! 0 ß nx i=1 Φ(! 0 i ) A f r(! 0 i;~x;!); (8.7) ahol Φ(! i 0 ) az A felületre a!0 i irányból érkező foton energiája. A Φ és a A mennyiségeket az ~x pont környezetében található foton találatok tulajdonságaiból approximáljuk a következő eljárással: Az ~x köré egy gömböt teszünk, amelyet addig pumpálunk, amíg azéppen n foton találatot tartalmaz (az n az algoritmus globális paramétere). Ha ekkor agömb sugara r, akkor a felületelem területe A = ßr 2.

73 9. fejezet A globális illuminációs feladat iterációs megoldása Az iterációs eljárások arra a felismerésre építenek, hogy az árnyalási egyenlet megoldása a következő iterációs séma fixpontja L m = L e + T L m 1 : Valóban, ha ez a séma konvergens, akkor lim L m = lim n!1 n!1 L m 1 = L 1, azaz L 1 kielégíti az árnyalási egyenletet. A mért sugársűrűséget határértékként kaphatjuk meg: ML = lim m!1 ML m: Az iteráció a teljes sugársűrűségfüggényt használja, így annak ideiglenes változatát tárolni kell. Egy folytonos függvényt véges-elem módszerrel adhatunk meg közelítőleg véges mennyiségű adat felhasználásával. Közelítsük tehát a sugársűrűség függvényt véges függvénysor alakban: L(~x;!) ß L (n) (~x;!) = nx j=1 L j b j (~x;!) =b T (~x;!) L; ahol b j (~x;!)-k előre definiált bázisfüggvények, L j -k pedig ismeretlen együtthatók. A függvénysoros közelítést az árnyalási egyenletbe helyettesítve a következőkhöz jutunk: nx j=1 L j (m) b j (~x;!) ß nx j=1 L e j b j (~x;!)+t nx j=1 L j (m 1) b j (~x;!) = nx j=1 L e j b j (~x;!)+ nx j=1 L j (m 1) T b j (~x;!): (9.1) Vegyük észre, hogy tényleges egyenlőség általában nem áll fenn, hiszen még ha P n j=1 L j b j (~x;!) abázisfüggvények alterében van is, a T integráloperátor kivisz ebből az altérből. Az egyenlőséget ezért csak egy megfelelő altérben követeljük meg, amelyet a ~ b 1 (~x); ~ b 2 (~x);::: ~ b n (~x) adjungált bázisfügvények feszítenek ki. Szorozzuk meg tehát az iterációs képletet külön-külön minden egyes ~ b i adjungált bázisfüggvénnyel, ami egy lineáris egyenletrendszer iterációs megoldására vezet: L i (m) =L e i + n X j=1ht b j ; ~ b i i L j (m 1): (9.2) A lineáris egyenletrendszer mátrixos alakban is kifejezhető: L(m) =L e + R L(m 1); R ij = ht b j ; ~ b i i: (9.3) A szükséges műveletek száma egyetlen lépés műveletigényének és a konvergenciához szükséges lépések számának a szorzata. Egyetlen lépés egy n dimenziós vektor (n a felületelemek száma) és egy n n dimenziós mátrix szorzását jelenti, amely O(n 2 ) műveletet igényel. Aszükséges lépések meghatározásához abból indulhatunk ki, hogy az iteráció geometriai sor szerint konvergál, azaz a hiba m lépés után O(a m ) nagyságrendű, ahol a = krk az operátor normája, lényegében a művelet kontrakciója. A hibát adott szint alá szorító lépések száma tehát független n-től. Javított iterációs technikák, mint a Gauss-Seidel iteráció, túl-relaxáció, Southwell-iteráció egyrészt felgyorsíthatják az iterációs folyamatot, másrészt csökkenthetik annak memóriaigényét, de a négyzetes bonyolultságot nem változtatják meg [SKM95]. 71

74 72 9. A globális illuminációs feladat iterációs megoldása 9.1. Miért kell Monte-Carlo iterációt használni? A determinisztikus iterációnak két alapvető hiányossága van. Egyrészről, mivel a sugársűrűség függvény 4 változós és gyorsan változó, a pontos véges elemes közelítéshez nagyon sok bázisfüggvény és együttható szükséges, ami viszont igen sok memóriát igényel. Másrészről, amikor véges-elem módszert használunk, a fényátadás operátort csupán közelítjük, ami minden egyes iterációs lépésben valamekkora számítási hibát okoz. Ezek a hibák az iteráció során elviselhetetlen mértékűre duzzadhatnak fel. Mindkét hiányosságot kiküszöbölhetjük az iteráció randomizálásával, amelyet sztochasztikus iter ációnak nevezünk. Az alapötlet az, hogy T fényátadás operátor determinisztikus közelítése helyett egy lényegesen egyszerűbb véletlen operátort használunk az iteráció során, amely átlagos esetben a valódi operátorhoz hasonlóan működik A sztochasztikus iteráció formális definíciója Legyen T Λ véletlen operátor, amelynek hatása várható értékben megegyezik az eredeti fényátadás operátoréval: E[T Λ L]=T L (9.4) bármilyen Riemann integrálható L függvényre. A sztochasztikus iteráció ilyen véletlen operátorok T Λ 1 ; T Λ 2 ;:::;Ti Λ ;:::sorozatával cseréli fel a fényátadás operátort az iterációs szekvencia során L m = L e + TmL Λ m 1 : (9.5) 9.3. A véletlen operátor definíciója Egy megfelelővéletlen operátornak több feltételt kell kielégítenie. Az 9.4. egyenlet kielégítésén túl, ilyen feltételek még akönnyűszámíthatóság és a T Λ L függvények egyszerűtárolhatósága. Ezen utóbbi követelmény abból következik, hogy i a sugársűrűség függvény 4 változós, így a teljes megadása igen sok változót igényelne. Célunk tehát, hogy ne kelljen ezen függvényt teljes értelmezési tartományban leírni. Válasszuk a véletlen operátort úgy, hogy a sugársűrűség függvényt csak egyetlen véletlen mintavételezési pontban használja fel. Az operátor randomizálása tehát ezen pont véletlen választásával történik. A véletlen operátor alkalmazása egy pontból egy újabb folytonos függvényt állíthat elő, amit a következő lépésben megint egyetlen pontban mintavételezünk. A folytonos függvény tárolását megtakaríthatjuk, ha a véletlen operátor alkalmazását késleltetjük mindaddig, amíg a következő lépésben a mintavételezési pont ismertté nem válik. Ekkor a fényátadás operátort minden lépésben kétszer, de csak egyetlen pontra kell számítani. Egyrészt számítjuk az aktuális mintavételezési pontban felvett értéket az előző mintavételezési pont értékéből ([T Λ (p i )L(p i )](p i+1 )). Másrészt, meghatározzuk a kamerabecsléshez szükséges értéket a p eye kamerapontban az előző pontból ([T Λ (p i )L(p i )](p eye )). Összefoglalva az iterációs algoritmus: P =0 Find p 1 randomly L(p 1)=L e (p 1) for i =1to M do P new = L e (p eye) +[T Λ (p i)l(p i)](p eye) P = MP new 1=i +(1 1=i) P Find p i+1 randomly L(p i+1) =L e (p i+1) +[T Λ (p i)l(p i)](p i+1) endfor Display final image // initialize the measured value to zero // select the randomization point of the first iteration // measure the radiance // average the measured value // select the randomization point of the next iteration // a single step of stochastic iteration

75 10. fejezet Sugárköteg módszer A klasszikus globális illuminációs módszerek a fényutakat egyenként állítják elő, és minden lépésben egy sugár segítségével határozzák meg az adott pontból az adott irányban látható következő felületi pontot. A lokális sugárkövetés azonban pazarlóan csak a legközelebbi metszéspontot használja fel. Érdemes tehát globális sugarakkal dolgozni, amelyek az összes metszéspontot felhasználják, azaz egy lépésben több fényutat is kezelnek [Sbe96, Neu95, SMP98, Sbe97]. Másrészről a sugárkövetés nem hatékony láthatóság számítási algoritmus, mivel képtelen a kép és objektumkoherencia kiaknázására. Más ismert eljárások, mint például a z-buffer, festő, Warnock, stb. módszerek egy lépésben párhuzamos sugarak halmazára oldják meg a láthatósági feladatot, és sokkal hatékonyabban mintha azt a sugarakra egyenként tennénk meg. Nevezzük a szabályos rácsból induló párhuzamos sugarak gyűjteményét sug ár-kötegnek. Célunk, hogy a sugárkötegeket a globális illuminációs módszerekben is alkalmazzuk, ezáltal a grafikus hardvert és koherencia elvet is kihasználjuk a gyors globális illuminációs számításokban Az árnyalási egyenlet átalakítása a sugárköteg követéshez Egy sugárköteg minden pont sugársűrűségét átviszi egyetlen irányban. A sugárköteg belsejében a sugársűrűség 2 változós függvénnyel jellemezhező. Ezt a kétváltozós függvényt véges-elem módszerrel írjuk le. Keressük a sugársűrűséget tehát akövetkezővéges függvénysor alakban: L(~x;!) ß L (n) (~x;!) = nx j=1 L j (!) b j (~x) (10.1) ahol L (n) (~x;!) aközelítő sugársűrűség b j (~x)-k pedig teljes függvényrendszert alkotnak. A függvények terében f;g függvénypár skalárszorzatát a szorzatuknak a teljes felületre vett integráljaként definiálhatjuk: hf;gi = S f (~x) g(~x) d~x: Mivel a sugársűrűséget csak egy altérben közelítjük nem várhatjuk el, hogy a közelítő sugársűrűség kielégítse az árnyalási egyenletet. Ehelyett az egyenlőséget csak a ~ b 1 (~x); ~ b 2 (~x);:::; ~ b n (~x) adjungált bázis által kifeszített altérben követeljük meg. Az adjungált bázis elnevezést az indokolja, hogy a b 1 (~x);b 2 (~x);:::;b n (~x) eredeti bázis és az adjungált bázis között fenn kell állnia, hogy hb i (~x); ~ b j (~x)i =1ha i = j és 0 egyébként. Az árnyalási egyenletet az adjungált altérbe vetítve, azaz az egyenletet egyenként az adjungált bázisfüggvényekkel megszorozva, azt kapjuk, hogy hl (n) (~x;!); ~ b i (~x)i = hl e (~x;!); ~ b i (~x)i + h Abázis és adjungált bázis közötti ortonormált voltát kihasználva: L i (!) =L e i (!) + n X j=1 Ω Ω L (n) (h(~x;! 0 );! 0 ) f r (! 0 ;~x;!) cos 0 d! 0 ; ~ b i (~x)i: (10.2) L j (! 0 ) hb j (h(~x;! 0 )) f r (! 0 ;~x;!) cos 0 ; ~ b i (~x)i d! 0 : (10.3) Ugyanezen egyenlet mátrix alakban is megadható: L(!) =L e (!) + T(! 0 ;!) L(! 0 ) d! 0 ; (10.4) Ω 73

76 Sugárköteg módszer ahol L(!)j i = L i (!) a sugársűrűség értékek vektora, T(! 0 ;!)j ij = hf r (! 0 ;~x;!) b j (h(~x;! 0 )) cos 0 ; ~ b i (~x)i pedig az ún. kétirányú átviteli mátrix. Tegyük fel, hogy az f r (! 0 ;~x;!) BRDF függvény azon tartományon belül ahol ~ b i nem zérus, azaz ~ b i alapjából, jól közelíthető egy helyfüggetlen ~ f i (! 0 ;!) BRDF-fel. Ekkor az átviteli mátrixot a BRDF függvények F(! 0 ;!) diagonálmátrixának és egy az! iránytól független A(! 0 ) geometria mátrix szorzataként írhatjuk fel. A BRDF mátrix alakja: F(! 0 ;!)j ii = ~ f i (! 0 ;!); A geometria mátrix a felületelemek közötti! 0 irányúláthatóság erősségét fejezi ki: A geometriai mátrix felhasználásával, a egyenlet végső alakja: A(! 0 ) ij = hb j (h(~x;! 0 )) cos 0 ; ~ b i (~x)i: (10.5) L(!) =L e (!) + Ω F(! 0 ;!) A(! 0 ) L(! 0 ) d! 0 : (10.6) Ez az egyenlet amelyet vetített árnyalási egyenletnek nevezhetünk szemléletes tartalommal bír. Egy felületelem sugársűrűsége a saját kibocsátásnak és a bejövő sugársűrűség visszaverődésének az összege. A kibocsátott és beérkező sugársűrűséget összekapcsoló felület-elem irány felület-elem forma-faktor szerepét a geometria mátrix látja el A geometria mátrix előállítása A sugárköteg által szállított sugársűrűség meghatározásának a kulcsa az A geometria mátrix számítása. Az A(! 0 )j ij = hb j (h(~x;! 0 )) cos 0 ; ~ b i (~x)i = S b j (h(~x;! 0 )) ~b i (~x) cos 0 d~x; geometria mátrix elemeihez azt kell eldönteni, hogy az i. adjungált bázisfügvény alapjából azaz azon pontokból, ahol a függvény nem zérus látható-e a j. bázisfüggvény alapja a! 0 irányban (a b j (h(~x;! 0 )) ~b i (~x) szorzat akkor nem zérus ha ~x a ~ b i alapjában, a h(~x;! 0 ) pont pedig a b j alapjában van). A továbbiakban feltételezzük, hogy a bázisfüggvények alapjai háromszögek. Az! 0 irányt, amelyben a láthatóságot vizsgáljuk transzilluminációs iránynak nevezzük [Neu95, SKFNC97]. Vegyük észre, hogy a geometria mátrix eleme csak akkor lehet pozitív, ha cos 0 0, azaz, amikor az i. felületelem a transzilluminációs irány felé néz. Ezeket a felületelemeket els ő lapoknak nevezzük, míg azokat, amelyekre ez nem teljesül hátsó lapoknak. Nyilván csak az első lapokra érkezhet fény egy adott transzilluminációs irányból ábra. Globális láthatósági algoritmusok A geometria mátrix meghatározása tehát lényegében egy globális láthatósági feladat megoldását jelenti. A globális tulajdonság abból adódik, hogy csak a láthatósági irány rögzített a szempozíció viszont nem. A szempozícióval az összes felületi pontot meg kell látogatnunk. A megoldás során a pontokból látható felületelemeket egy adatstruktúrában tároljuk, amelyet láthatósági térképnek neveztünk el. A láthatósági térkép valójában egy kép azon a síkon, amely a transzilluminációs síkra merőleges. Ezt a síkot transzilluminációs síknak hívjuk (10.1. ábra).

77 10.3. A vetített árnyalási egyenlet megoldása sztochasztikus iterációval 75 Aláthatósági térkép lehet diszkrét avagy folytonos. Diszkrét algoritmusok a transzilluminációs síkot kis ffip nagyságú pixelekre bontják. A láthatósági térkép így egy raszterizált kép, ahol az egyes pixelek az ott látható felületazonosítót tárolják. A geometria mátrix számítása attól is függ, hogy milyen bázis és adjungált bázis függvényeket választunk. A továbbiakban konstans bázisfüggvényekkel és Galerkin módszerrel dolgozunk, amelyben az adjungált és normál bázisfügvények egy normalizáló tényezőtől eltekintve megegyeznek Galerkin módszer konstans bázisfüggvényekkel Legyenek tehát a bázisfüggvények a következők: b j (~x) = ( 1 ha ~x 2 Aj ; 0 egyébként. (10.7) A Galerkin módszer szerint az ismeretlen L i (!) függvényeket úgy állítjuk elő, hogy a közelítő megoldás a bázisfüggvények alterében pontos legyen (a hiba az altérre merőleges legyen). A normalizálási kritérium alapján a következő adjungált bázisfüggvények adódnak: 8 < 1=A j ha ~x 2 A j ; ~ b j (~x) = (10.8) : 0 egyébként. Mivel ekkor hb j (~x); ~ b i (~x)i =1ha i = j és zérus egyébként, a geometria mátrix i; j eleme: A(! 0 )j ij = hb j (h(~x;! 0 )) cos 0 ; ~ b i (~x)i = 1 A i Mivel az integrandus szakaszonként konstans, az integrált zárt alakban is előállíthatjuk: 1 A i A i b j (h(~x;! 0 )) cos 0 d~x = A i b j (h(~x;! 0 )) cos 0 d~x: (10.9) A(i; j;! 0 ) A i ; (10.10) ahol A(i; j;! 0 ) a j. felületelem transzilluminációs síkra vett vetületének azon részét határozza meg, amely az i. felületelem belsejéből a! 0 irányban látható. Ha nincs takarás, ez az i. és j. felületelemek transzilluminációs síkra vett vetületének a metszete. Takarás esetén, a takaró felület vetületét ebből még ki kell vonni, amint az a ábrán látható ábra. Az A(i; j;! 0 ) tényező értelmezése A területek és a takarás számításához egy módosított z-buffer algoritmust használunk [Neu95] (10.3. ábra). A módosított eljárásban az egyes pixelek nem csupán az idáig feldolgozottak közülalegközelebbi felületelem azonosítóját és távolságát (z koordinátáját) tartalmazzák, hanem egy rendezett listában az összes ide vetülő felületelem azonosítóját és távolságát. A felületelemeket egyenként raszterizáljuk, és a vetületükbe eső pixelek listáit továbbépítjük. Az utolsó felületelem feldolgozása után a listákat bejárjuk és a A(i; j;! 0 ) értékeket előállítjuk A vetített árnyalási egyenlet megoldása sztochasztikus iterációval A sztochasztikus iteráció elvei szerint egy TF Λ vetített fényátadás operátoréval: véletlen operátort definiálunk, amelynek hatása átlagban megegyezik a

78 Sugárköteg módszer tranzilluminációs buffer globális irány ablak ábra. A transzilluminációs buffer módosított z-buffer algoritmus esetén Válasszunk egyenletes eloszlás szerint egy véletlen irányt és vigyük át minden egyes felületelem sugársűrűségét ebbe az irányba. Formálisan a definícióazalábbi: T Λ (! 0 )L(!) =4ß T(! 0 ;!) L(! 0 ): (10.11) Ha az! 0 irányt egyenletes eloszlás szerint választjuk azaz a valószínűség sűrűség 1=(4ß) akkor a egyenletnek megfelelően a véletlen operátor alkalmazásának hatása várható értékben: E[T Λ (! 0 )L(!)] = Ω 4ß T(! 0 ;!) L(! 0 ) d!0 4ß = T F L(!): (10.12) Az! irány az aktuális,! 0 irány pedig az előző átvitel során választott irány. A véletlen mintavételi pont tehát a globális irány. A keletkezett algoritmus meglehetősen egyszerű. Egyetlen iterációs lépésben az előző átvitelt a kamera felé visszaverjük, új véletlen irányt választunk és az új, illetve az előző irány ismeretében kiszámítjuk és alkalmazzuk a véletlen operátort. Ebben a formában az algoritmus csupán egyetlen változót igényel felületelemenként, amely az előző átvitel L[i] sugársűrűségét tárolja. Összefoglalva a sztochasztikus iterációt használó sugárköteg módszer algoritmusa: Generate the first random global direction! 1 for each patch i do L[i] = L e i (! 1) for m =1to M do Calculate the image estimate reflecting the incoming radiance L[1];:::;L[n] from! m towards the eye Average the estimate with the Image Generate random global direction! m+1 for each patch i do L new [i] = L e i (! m+1) +4ß Pn f ~ j=1 i(! m;! m+1) A(! m) ij L[j] endfor Display Image // iteration cycles A szimmetria miatt A(i; j;! 0 ) és A(j; i;! 0 ) megegyezik, így az algoritmusban kétirányú sugársűrűség átvitelt is alkalmazhatunk Egyenletes eloszlásúvéletlen irányok előállítása Mivel a véletlen szám generátorok a [0; 1) intervallumban szolgáltatnak véletlen számokat, az irányok előállításához az iránygömb felületét az egységnégyzetbe kell leképezni mégpedig területtartó transzformációval. Egy lehetséges megoldás az alábbi [Sob91]: ffi =2ßu; = arccos(1 2v): (10.13) Ebben az esetben d! = det sin dudv=4ß du dv: (10.14)

79 10.3. A vetített árnyalási egyenlet megoldása sztochasztikus iterációval 77 azaz az új mintapontok egyenletes eloszlásúak a gömbfelületen, ha az eredeti pontok azok voltak az egységnégyzet belsejében Képbecslő számítása Minden egyes iterációs lépés a felületelemek bejövő radianciáját állítja elő egy-egy véletlen irányban. A bejövő radianciát a szem felé kell visszaverni ahhoz, hogy ebből képet kapjunk. A számítást elvégezhetjük felületelemenként egyszer, majd a felületelemek konstans színéből adódó töredezett megjelenítést bi-lineáris interpolációval simíthatjuk ki. Másrészt a visszaverődés számítását elvégezhetjük minden pixelben külön-külön, amely a Phong árnyalás megvalósításához vezet. Bi-lineáris interpoláció A képgenerálás egy egyszerű módja, ha minden felületelemhez egyetlen színt rendelünk a felületelem normálvektora és a felületelem középpontjának megfelelőláthatósági irány alapján. A képbecslőelőállítása első lépésben tehát a következő: for each patch p do Calculate viewing direction! from patch p L[p] += L e [p](!) +4ß ~f p(! (m) 1 ;!) I[p] endfor // do it for each patch A töredezett képet bi-lineáris interpolációval, azaz Gouraud árnyalással simíthatjuk ki. Az interpoláció tartópontjai a háromszögek csúcspontjaiban az illeszkedő háromszögek színátlagaként számított értékek lesznek (10.4. ábra): for each vertex v do L v[v] =0 adjacent patches[v] = 0 endfor for each patch p do for each vertex v of patch p do L v[v] += L[p] adjacent patches[v]++ endfor endfor for each vertex v do L v[v] /= adjacent patches[v] for each patch p do Find vertices of patch p: v 1;v 2;v 3 GouraudShading(v 1;v 2;v 3;L v[v 1];L v[v 2];L v[v 3] ) endfor L 1 L 2 L 4 L 3 L v = L1+ L2+ L3+ L ábra. Bi-lineáris interpoláció Phong interpoláció A Phong interpoláció a felületi normálist és a nézeti irányt a csúcspontokban érvényes vektorokból interpolálja és a BRDF-t valamint a visszavert radianciát minden egyes pixelben külön kiértékeli. Az eljárást felgyorsíthatjuk, ha az előfeldolgozási fázisban a pixelekben látható felületelemeket azonosítjuk, a normál valamint nézeti vektorukat számítjuk, és az eredményt egy táblázatban eltároljuk.

80 Sugárköteg módszer

81 11. fejezet Véges elemes iteráció és Monte-Carlo módszerek kombinálása Ebben a fejezetben egy kombinált módszert ismertetünk, amely képes egyesíteni az iteráció kedvező kezdeti sebességét és a Monte-Carlo módszerek kis memóriaigényét és aszimptotikus pontosságát. Az iterációt a sugársűrűség azon részére használjuk, amely egyszerűen tárolható. Azon komponenseket, amelyeket csak sok változóval tudnánk tárolni, Monte- Carlo módszerrel becsüljük menet közben. A kombinált módszert úgy is elképzelhetjük, mint egy adaptációs stratégiát, amely automatikusan felbontja az eredeti feladatot egy egyszerű véges-elem feladattá és egy kis szórású Monte-Carlo feladattá. A Monte-Carlo szimuláció felelős a véges-elem rész felépítéséért is. A véges-elem rész viszont csökkenti a Monte-Carlo komponens szórását. (11.1. ábra). Az eljárás hasonló a f őrész kiemelése elnevezésű klasszikus szóráscsökkentő módszerhez [Sob91]. A különbség annyi, hogy most a fő részt nem ismerjük és nem is tudjuk zárt alakban integrálni. Ezért a főrészt adaptíven állítjuk elő és a Monte-Carlo komponens számításával együtt Monte-Carlo kvadratúrával számítjuk ábra. A kombinált algoritmus sémája A sugársűrűség függvény dekompozíciója Bontsuk fel az L sugársűrűség függvényt L e saját sugárzásra, egy véges-elemekkel jól közelíthető ~ L visszavert véges-elem komponensre, és a maradékot leíró L(!) visszavert Monte-Carlo komponensre: L = L e + ~ L + L: (11.1) Jelöljük a helyfüggő bázis- és adjungált bázisfüggvényeket s i (~x)-vel és ~s i (~x)-vel, az irányfüggő bázisfüggvényeket és adjungált bázisfüggvényeket pedig d ~ j (!)-vel és d ~ j (!)-vel. A véges-elemek által reprezentált tag tehát ~L(~x;!) = XX i j s i (~x)d j (!) L ij ; L ij = hl L e ; ~s i ~ d j i: Helyettesítsük be ezt a felbontást a sztochasztikus iterációképletébe (9.5. egyenlet): L(m) =L e + T Λ f r (L e + ~ L(m 1) + L(m 1)): Avéges-elem tag a sugársűrűség függvénynek az adjungált bázis által kifeszített térbe vett vetülete: ~L(m) = XX i j s i (~x)d j (!) hl(m) L e ; ~s i ~ d j i: 79

82 Véges elemes iteráció és Monte-Carlo módszerek kombinálása Mivel f r az egyetlen olyan tényező, amely az! kimeneti iránytól függ, azt kapjuk, hogy: ahol ~ f r avetített BRDF: ~L(m) = ~f r (! 0 ;~x;!) = X i X j s i (~x) S d j (!) Ω T Λ ~f r L(m 1) ~s i (~x) d~x f r (! 0 ;~x;!) ~d j (!) cos d!: Tegyük fel, hogy konstans bázisfüggvényeket használunk, tehát s i (~x) =1és ~s i (~x) =1=A i,ha~x az i. felületelem belsejében R van és zérus különben, valamint d j (!) =1és d ~ j (!) =1=Ω Λ j,ha! a Ω j térszögben van és zérus különben, ahol Ω Λ j = cos d!:ezek a bázis függvények a következőképletekhez vezetnek: Ωj ahol ~L(m) = ~f r (! 0 ;~x;!) = X i X j s i (~x) 1 A i 1 d j (!) Ω Λ j A i T Λ ~f r L(m 1) d~x (11.2) Ωj f r (! 0 ;~x;!) cos d!: Ha egyetlen irányfüggőbázisfüggvényt használunk, akkor a vetített BRDF az anyag ß-vel osztott albedo-ja. A Monte-Carlo komponenst úgy kapjuk, hogy a visszavert sugársűrűségből kivonjuk az emissziót valamint a végeselem komponenst: L(m) =L L e ~ L = T Λ f r L(m 1) X i s i (~x) S T Λ~ f r L(m 1) ~s i (~x) d~x: A Monte-Carlo komponenst addig kell tárolni, amígakövetkezőlépésben be nem helyettesítjük az iterációs formulába A kombinált algoritmus A kombinált algoritmus a sztochasztikus iteráció minden lépése után a sugársűrűséget az adjungált bázis által kifeszített altérbe vetíti. Természetesen a vetített sugársűrűség, miként a képbecslő is, önmagában nem konvergál, hanem az értékek a határérték körül fluktuálnak. Ezért a végső képet és a véges-elem komponenst az egyes lépésekből származó értékek átlagaként állítjuk elő. Ha az m. lépés utánavetített sugársűrűség ~ L 0 (m), akkor a véges-elem komponenst a következő kifejezéssel adhatjuk meg: ~L(m) = 1 m mx n=1 ~L 0 (n) = 1 m ~L 0 (m) m ~L(m 1): (11.3) A Monte-Carlo komponens korrigálja a véges-elem komponenst, és egyszersmind azt is mutatja, hogy a véges-elem felbontás mennyire pontos. Ezt az információt felhasználhatjuk a véges-elem rendszer adaptív finomításához.

83 11.3. A kombinált algoritmus alkalmazása a sugárköteg módszerhez 81 A teljes algoritmus: CombinedGlobalIllumination ~L(0) = 0, L(0) = 0 for m =1to M do L r = T Λ fr (Le + ~ L(m 1) + L(m 1)) ~L 0 (m) =projection of L r to an adjoint base L(m) =L r ~ L 0 (m) ~L(m) =1=m ~L 0 (m) +(1 1=m) ~L(m 1) C 0 (m) =M(L e + ~ L(m)+ L(m)) C(m) =1=m C 0 (m) +(1 1=m) C(m 1) Contribute to the norms if m is an end of the phase Refine the finite-element structure endif endfor Display C(m) colors end Az algoritmus adatfolyamát a ábrán láthatjuk. Figyeljük meg, hogy az ~ L(m) + L(m) új visszavert radianciát úgy számítjuk a véletlen fényátadás operátor eredményéből, hogy először kivonjuk belőle a vetített sugársűrűséget, majd hozzáadjuk ezek átlagát. Az algoritmus kezdetén ezzel egy nagy szórású tagot az átlagával váltunk fel, később azonban a két tag kiejti egymást. Ezzel megőrizzük az iteráció gyors kezdeti konvergenciáját és a Monte-Carlo módszer aszimptotikus pontosságát is. radiancia Monte-Carlo komponens vetítés átlagolás T * n véges-elem komponens átlagolás mérés kivonás Ha nagy, finomítsd a véges-elem felbontást ábra. Az algoritmus adatfolyama A kombinált algoritmus alkalmazása a sugárköteg módszerhez Ebben a fejezetben a kombinált módszert a sugárköteg eljárásra alkalmazzuk. A helyfüggő bázisfüggvények az egyes háromszögeken állandók, és szükség esetén a háromszöget négy kis háromszögre bontjuk. A L(m) Monte-Carlo komponenst ideiglenesen tárolni kell, amíg a képbecslőt ki nem számítjuk, illetve a következő iterációs lépésbe be nem helyettesítjük. A Monte-Carlo komponenst a felületelemeken is tárolhatjuk, amennyiben azok elegendően kicsinyek. Ezért a felületelemeket addig bontjuk, amíg feltételezhetjük, hogy egy irányban a sugárzásuk közel állandó.

84 Véges elemes iteráció és Monte-Carlo módszerek kombinálása

85 12. fejezet Elsőlövés technikák Az árnyalási egyenlet megoldásának Neumann soros alakja a következő integrálokat tartalmazza: T (L e + T (L e + :::) :::)=T (L e + L i )= Ω (L e + L i ) f r cos 0 d! 0 ahol L i akövetkező integrál által számított indirekt illumináció. A Monte-Carlo becslés akkor pontos, ha a L r (! 0 )=(L e + L i ) f r cos 0 integrandus lapos, azaz közel konstans, különben a becslő szórása nagy. Vizsgáljuk meg ezt a kérdést formálisan is. Tegyük fel, hogy az integrált Monte-Carlo kvadratúrával becsüljük, azaz az integrált mint várható értéket tekintjük, amit végül átlaggal közelítünk. Legyen az! 0 minták valószínűség sűrűsége p(! 0 ). Az integrál tehát:» L r (! 0 ) NX Ω L r (! 0 ) d! 0 = Ω L r (! 0 ) p(! 0 ) p(!0 ) d! 0 = E Az ^L r szintén véletlen változó, amelynek a szórása ff= p N ahol ff 2 : ff 2 = Ω Lr (! 0 ) p(! 0 ) Ω L r (!) d! p(! 0 ) 1 A 2 ß ^L r = 1 N i=1 L r (! 0 i ) p(! 0 i ) : p(! 0 ) d! 0 : (12.1) Aszórás akkor kicsi, ha L r (! 0 )=p(! 0 ) közel van a R Ω L r (!) d! integrálhoz az értelmezési tartományban. A szórás csökkentésének egy lehetséges módja a fontos ág szerinti mintavételezés [Sob91], amely azt jelenti, hogy p(! 0 ) követi az L r (! 0 ) integrandus változását és így L r (! 0 )=p(! 0 ) közelítőleg konstans. Sajnos az árnyalási egyenlet integrandusa nem áll rendelkezésre explicit formában, így a fontoság szerinti mintavételezés általában csak a lokális BRDF értékeket veszi figyelembe [DLW93, LW93] azaz az f r cos 0 függvényt követi, nem pedig a (L e + L i ) f r cos 0 függvényt. Egy másik lehetséges eljárás a globális illuminációs modell más integrálokkal történő megközelítése. Mivel a gyors változásért a fényforrások közvetlen hatása felelős, ezt a tagot célszerű külön kezelni Az első lövés alapötlete Az első-lövés a pontszerű és kis méretű fényforrások fényét a felületekre lövi, majd megnöveli ezek saját sugárzását a kis fényforrások megvilágításának a visszaverődésével, és eltávolítja a kis fényforrásokat a térből. Formálisan az ismeretlen L sugársűrűséget két tagra bontjuk: L = L ep + L np (12.2) ahol L ep a kis (és pontszerű) fényforrások kibocsátása, L np a nagyobb fényforrások saját sugárzása és a visszavert sugársűrűség összege. Az árnyalási egyenletbe helyettesítve azt kapjuk, hogy Az L np -t kifejezve azt kapjuk, hogy: L ep + L np = L e + T (L ep + L np ): (12.3) L np =(L e L ep + T L ep )+T L np : (12.4) 83

86 Első lövés technikák = ábra. Elsőlövés Vezessük be a módosított saját sugárzást L eλ = L e L ep + T L ep (12.5) amely a kis fényforrások emisszióját (L ep ) az egyszeres visszaverődésükkel (T L ep )váltja fel. Az L np tagra az eredeihez hasonló egyenletet kapunk: L np = L eλ + T L np : (12.6) Ezen egyenlet megoldásában felbukkanó integrandus lényegesen laposabb az eredeti integrandusénál. A módosított saját sugárzást, legalábbis részben, az előfeldolgozási fázisban határozzuk meg. Pontosabbban a direkt megvilágítás okozta bejövő radianciát számítjuk az előfeldolgozási lépésben, amiből a kilépő irány függvényében menet közben kapjuk a tényleges módosított sugárzást Elsőlövés pontszerű fényforrásokra Tegyük fel, hogy a színtér l db pontszerű fényforrást tartalmaz az ~y 1 ;:::~y l pontokban, amelyek rendre Φ 1 ;:::;Φ l teljesítménnyel sugároznak. A fényforrások fényének visszaverődése az ~x pontban: (T L ep )(~x;!) = lx i=1 Φ i v(~y i ;~x) 4ßj~y i ~xj 2 f r(! 0 i;~x;!) cos 0 i; (12.7) ahol! 0 i az i fényforrás felé mutatóirány, 0 i az!0 i irány és a felületi normális által bezárt szög, és v(~y i;~x) a ~x és ~y i pontok kölcsönös láthatóságának indikátorfüggvénye. Tekintsük a j. felületelemet és jelöljük a területét A j -val. Az átlagos visszavert sugársűrűség: ht L ep i j (!) = 1 A j A j (T L ep )(~x;!) d~x = lx i=1 1 A j A j Φ i v(~y i ;~x) 4ßj~y i ~xj 2 f r(! 0 i;~x;!) cos 0 i d~x: (12.8) A láthatóság indikátor értékének meghatározásához azt kell eldönteni, hogy a fényforrás az adott pontból láthatóe. A számításhoz a grafikus hardvert is felhasználhatjuk. Helyezzük a szempozíciót a fényforrásra, az ablakot pedig rendre a fényforrás köré tett kocka 6 lapjára. Számíttassuk ki a képet konstans árnyalással úgy, hogy a színindexeket a felületelemek sorszáma szerint választjuk. A képek alapján a látható felületelemek és területük számítható. Az egyenlet integrálját a fényforrás köré tett kocka lapjain (W ) is kiértékelhetjük, a radiozitás híres félkocka algoritmusához hasonlóan [CG85]. Fejezzük ki azt a dω p térszöget, amelyben d~x differenciális terület láthatóad~p pixel területen keresztül: dω p = d~x cos 0 i j~y i ~xj 2 = d~p cos p j~y i ~pj 2 ; (12.9) ahol p az ~x-t ~y i -vel összekötő irány és az ablak felületi normálisa által bezárt szög (12.2. ábra). Az j~y i ~pj távolság az f=cos p hányadossal egyenlő, ahol f a ~y i pont és az ablak síkja közötti távolság, amelyet fókusztávolságnak is neveznek. A egyenlet felhasználásával a d~x differenciális terület kifejezhető, amit a egyenletbe helyettesíthetünk be: ht L ep i j (!) = lx i=1 1 A j W Φ i v(~y i ;~x) 4ß f r (! 0 i;~x;!) cos 3 p f 2 Legyen P j azon pixelek halmaza, amelyben éppen a j. felületelem látszik a fényforrásból. A P j -t a kocka lapjaira végrehajtott z-buffer/konstans árnyalás alapú képszintézis lépésekkel kaphatjuk meg, amelyben a j. felületelem színét j-nek d~p:

87 12.3. Kis területi fényforrások 85 y i pont fényforrás θp f P j ω ω θ i x j felületelem ablakok W ábra. A fényforrás láthatóságának számítása választjuk. A képek előállítása után a képtartalmakat visszaolvassuk a raszter-memóriából. A j. felületelem visszavert sugársűrűségét a következő összeggel becsüljük: ht L ep i j (!) ß lx i=1 Φ i X 4ßf 2 A j p2p j f r (! 0 i ;~x;!) cos 3 p ffip; ahol ffip egyetlen pixel területe. Ha a kép felbontása R, akkor ffip = 4f 2 =R 2 : A BRDF-t f ~ j (! i 0 ;!)-vel közelítjük a j. felületelem belsejében. Végül a visszavert sugársűrűséget három tényezőre bonthatjuk: a fényforrás Φ i kisugárzott hullámhosszfüggő teljesítményére, a f ~ j (! i 0 ;!) BRDF-re, amely maga is hullámhossz függő, és a következő skaláris tényezőre: r ij = 1 X ßR 2 A j p2p j cos 3 p : Ezeket a skaláris tényezőket az előfeldolgozás során számítjuk ki és az elemi felületelemeken tároljuk őket. A tárolóigény a felületelemek számának és a pontszerűfényforrások számának szorzata. A globális illuminációs számítások alatt, amikor a ht L ep i j (!) visszavert sugársűrűségre van szükség a j. felületelem egy ~x pontjában, ezt menet közben számítjuk az eltárolt r ij skaláris paraméterből, az ~x pontot a fényforrással összekötő irányból és a fényforrás sugárzási teljesítményéből: ht L ep i j (!) = Kis területi fényforrások lx i=1 Φ i r ij fr j (!0 i ;!): (12.10) Ebben a fejezetben a kis területi fényforrások fényének egyszeres viszaverődésének számítását tárgyaljuk. Tekintsük az S területű L e (~y;!) emissziójúfényforrás hatását az ~x pontra: (T L ep )(~x;!) = ΩS L e (h(~x;! 0 );! 0 ) f r (! 0 ;~x;!) cos 0 d! 0 = S L e (~y;! 0 ) cos v(~y;~x) j~y ~xj 2 f r (! 0 ;~x;!) cos 0 d~y; ahol Ω S azon térszög, amelyben az S fényforrás látható, ~y afényforráson futó változó, pedig az! 0 irány és az ~y pontban érvényes felületi normális által bezárt szög. A j. felületelem átlagos visszavert sugársűrűsége ht L ep i j (!) = 1 A j (T L ep )(~x;!) d~x = A j S 1 A j A j L e (~y;! 0 ) cos v(~y;~x) j~y ~xj 2 cos 0 f r (! 0 ;~x;!) d~x d~y: Akülső integrált trapéz szabállyal becsüljük. A fényforrás területét háromszögekre (vagy négyszögekre) bontjuk és az integrandust a csúcspontokban számítjuk, a többi pontban pedig lineárisnak tekintjük. Ha a csúcspontok száma l, akvad- ratúra akövetkező alakú: ht L ep i j (!) ß lx i=1 S ti A j A j L e (~y i ;! 0 i ) cos i v(~y i ;~x) 3j~y i ~xj 2 cos 0 i f r (! 0 i;~x;!) d~x;

88 Első lövés technikák ahol S ti azon fényforrás háromszögek teljes területe, amelyek az i. csúcspontra illeszkednek és az 1=3 szorzó annak a következménye, hogy minden háromszögnek három csúcsa van. Vegyük észre, hogy a belső integrál a egyenlet integráljával megegyező, ha elvégezzük a következő helyettesítést: Φ i 4ß ( Le (~y i ;! i 0 ) cos i Sti : 3 Még egy különbségre kell felhívni a figyelmet. Egy egyoldalú területi fényforrás csak abba a féltérbe sugározhat, amely afényforrás síkja felett van, így az ablak felülete félkocka lesz (12.3. ábra) ábra. A félkocka és a fényforrás mintapont elhelyezkedése, valamint az 5 félkocka lapon keresztül látható képek Összefoglalva, a területi fényforrásokra végrehajtott első-lövés a következő lépésekből áll: először fényforrást háromszög hálóval közelítjük, majd egy félkockát helyezünk el a háló minden egyes ~y i csúcspontjára, és a felületek láthatóságát meghatározzuk. A r ij = 4S ti cos i X 3R 2 A j p2p j cos 3 p skaláris tényezőket a felületelemeken tároljuk. A globális illuminációs számítás során a visszavert radianciát a skarális tényezőkből kapjuk a következőmódon: ht L ep i j (!) = X i L e (~y i ;! 0 i ) r ij f j r (!0 i;!): (12.11) Az első-lövés felhasználása a sugárköteg módszerben Egy iterációs lépésben nem csupán az előző átvitel sugársűrűségét verjük vissza az új irányba, hanem a felületelemből látható fényforrások bejövő sugársűrűségét is. A művelet ára l db BRDF számítás felületelemenként, ahol l a felületelemről látható fényforrások száma.

Hajder Levente 2017/2018. II. félév

Hajder Levente 2017/2018. II. félév Hajder Levente hajder@inf.elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar 2017/2018. II. félév Tartalom 1 A fény elektromágneses hullám Az anyagokat olyan színűnek látjuk, amilyen színű fényt visszavernek

Részletesebben

Tartalom. Tartalom. Anyagok Fényforrás modellek. Hajder Levente Fényvisszaverési modellek. Színmodellek. 2017/2018. II.

Tartalom. Tartalom. Anyagok Fényforrás modellek. Hajder Levente Fényvisszaverési modellek. Színmodellek. 2017/2018. II. Hajder Levente hajder@inf.elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar 2017/2018. II. félév 1 A fény elektromágneses hullám Az anyagokat olyan színűnek látjuk, amilyen színű fényt visszavernek

Részletesebben

CAD RENDSZERBEN. IKTA-KÉPI 00101/2000 projekt Szerződés számok: OMFB-00179/2001, OMFB-00190/2001 Fotorealisztikus megjelenítes CAD rendszerekben

CAD RENDSZERBEN. IKTA-KÉPI 00101/2000 projekt Szerződés számok: OMFB-00179/2001, OMFB-00190/2001 Fotorealisztikus megjelenítes CAD rendszerekben IKTA-KÉPI 00101/2000 projekt Szerződés számok: OMFB-00179/2001, OMFB-00190/2001 Fotorealisztikus megjelenítes CAD rendszerekben GLOBÁLIS ILLUMINÁCIÓS SÁMÍTÁSI MÓDSEREK CAD RENDSERBEN 1.0 verzió: 2001.07.30

Részletesebben

Számítógépes Grafika mintafeladatok

Számítógépes Grafika mintafeladatok Számítógépes Grafika mintafeladatok Feladat: Forgassunk a 3D-s pontokat 45 fokkal a X tengely körül, majd nyújtsuk az eredményt minden koordinátájában kétszeresére az origóhoz képest, utána forgassunk

Részletesebben

Az Ampère-Maxwell-féle gerjesztési törvény

Az Ampère-Maxwell-féle gerjesztési törvény Az Ampère-Maxwell-féle gerjesztési törvény Maxwell elméleti meggondolások alapján feltételezte, hogy a változó elektromos tér örvényes mágneses teret kelt (hasonlóan ahhoz ahogy a változó mágneses tér

Részletesebben

OTKA Nyilvántartási szám: T ZÁRÓJELENTÉS

OTKA Nyilvántartási szám: T ZÁRÓJELENTÉS OTKA Nyilvántartási szám: T042735 ZÁRÓJELENTÉS Témavezető neve: dr. Szirmay-Kalos László. A téma címe: Interaktív globális illumináció A kutatás időtartama: 4 év A kutatási tervnek megfelelően az interaktív

Részletesebben

Optika gyakorlat 2. Geometriai optika: planparalel lemez, prizma, hullámvezető

Optika gyakorlat 2. Geometriai optika: planparalel lemez, prizma, hullámvezető Optika gyakorlat. Geometriai optika: planparalel lemez, prizma, hullámvezető. példa: Fényterjedés planparalel lemezen keresztül A plánparalel lemezen történő fényterjedés hatására a fénysugár újta távolsággal

Részletesebben

x = cos αx sin αy y = sin αx + cos αy 2. Mi a X/Y/Z tengely körüli forgatás transzformációs mátrixa 3D-ben?

x = cos αx sin αy y = sin αx + cos αy 2. Mi a X/Y/Z tengely körüli forgatás transzformációs mátrixa 3D-ben? . Mi az (x, y) koordinátákkal megadott pont elforgatás uténi két koordinátája, ha α szöggel forgatunk az origó körül? x = cos αx sin αy y = sin αx + cos αy 2. Mi a X/Y/Z tengely körüli forgatás transzformációs

Részletesebben

Alapfogalmak folytatás

Alapfogalmak folytatás Alapfogalmak folytatás Színek Szem Számítási eljárások Fényforrások 2014.10.14. OMKTI 1 Ismétlés Alapok: Mi a fény? A gyakorlati világítás technika alap mennyisége? Φ K m 0 Φ e ( ) V ( ) d; lm Fényáram,

Részletesebben

Geometriai és hullámoptika. Utolsó módosítás: május 10..

Geometriai és hullámoptika. Utolsó módosítás: május 10.. Geometriai és hullámoptika Utolsó módosítás: 2016. május 10.. 1 Mi a fény? Részecske vagy hullám? Isaac Newton (1642-1727) Pierre de Fermat (1601-1665) Christiaan Huygens (1629-1695) Thomas Young (1773-1829)

Részletesebben

Számítógépes Grafika mintafeladatok

Számítógépes Grafika mintafeladatok Számítógépes Grafika mintafeladatok Feladat: Forgassunk a 3D-s pontokat 45 fokkal a X tengely körül, majd nyújtsuk az eredményt minden koordinátájában kétszeresére az origóhoz képest, utána forgassunk

Részletesebben

Akusztikai tervezés a geometriai akusztika módszereivel

Akusztikai tervezés a geometriai akusztika módszereivel Akusztikai tervezés a geometriai akusztika módszereivel Fürjes Andor Tamás BME Híradástechnikai Tanszék Kép- és Hangtechnikai Laborcsoport, Rezgésakusztika Laboratórium 1 Tartalom A geometriai akusztika

Részletesebben

Hajder Levente 2017/2018. II. félév

Hajder Levente 2017/2018. II. félév Hajder Levente hajder@inf.elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar 2017/2018. II. félév Tartalom 1 Sugár és sík metszéspontja Sugár és háromszög metszéspontja Sugár és poligon metszéspontja

Részletesebben

5.1. ábra. Ábra a 36A-2 feladathoz

5.1. ábra. Ábra a 36A-2 feladathoz 5. Gyakorlat 36A-2 Ahogyan a 5. ábrán látható, egy fénysugár 5 o beesési szöggel esik síktükörre és a 3 m távolságban levő skálára verődik vissza. Milyen messzire mozdul el a fényfolt, ha a tükröt 2 o

Részletesebben

OPTIKA. Fotometria. Dr. Seres István

OPTIKA. Fotometria. Dr. Seres István OPTIKA Dr. Seres István Segédmennyiségek: Síkszög: ívhossz/sugár Kör középponti szöge: 2 (radián) Térszög: terület/sugár a négyzeten sr A 2 r (szteradián = sr) i r Gömb középponti térszöge: 4 (szteradián)

Részletesebben

Tartalom. Megjegyzések. Valasek Gábor Befoglaló keretek. Felosztások. Informatikai Kar

Tartalom. Megjegyzések. Valasek Gábor Befoglaló keretek. Felosztások. Informatikai Kar Tartalom Számítógépes Grafika Valasek Gábor valasek@inf.elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar 2015/2016. őszi félév Rekurzív sugárkövetés Megjegyzések Sugárkövetés gyorsítása Befoglaló

Részletesebben

Orvosi Biofizika I. 12. vizsgatétel. IsmétlésI. -Fény

Orvosi Biofizika I. 12. vizsgatétel. IsmétlésI. -Fény Orvosi iofizika I. Fénysugárzásanyaggalvalókölcsönhatásai. Fényszóródás, fényabszorpció. Az abszorpciós spektrometria alapelvei. (Segítséga 12. tételmegértéséhezésmegtanulásához, továbbá a Fényabszorpció

Részletesebben

KOVÁCS BÉLA, MATEMATIKA I.

KOVÁCS BÉLA, MATEMATIKA I. KOVÁCS BÉLA MATEmATIkA I 6 VI KOmPLEX SZÁmOk 1 A komplex SZÁmOk HALmAZA A komplex számok olyan halmazt alkotnak amelyekben elvégezhető az összeadás és a szorzás azaz két komplex szám összege és szorzata

Részletesebben

Optika és Relativitáselmélet II. BsC fizikus hallgatóknak

Optika és Relativitáselmélet II. BsC fizikus hallgatóknak Optika és Relativitáselmélet II. BsC fizikus hallgatóknak 2. Fényhullámok tulajdonságai Cserti József, jegyzet, ELTE, 2007. Az elektromágneses spektrum Látható spektrum (erre állt be a szemünk) UV: ultraibolya

Részletesebben

OPTIKA. Geometriai optika. Snellius Descartes-törvény. www.baranyi.hu 2010. szeptember 19. FIZIKA TÁVOKTATÁS

OPTIKA. Geometriai optika. Snellius Descartes-törvény. www.baranyi.hu 2010. szeptember 19. FIZIKA TÁVOKTATÁS OPTIKA Geometriai optika Snellius Descartes-törvény A fényhullám a geometriai optika szempontjából párhuzamos fénysugarakból áll. A vákuumban haladó fénysugár a geometriai egyenes fizikai megfelelője.

Részletesebben

Felügyelt önálló tanulás - Analízis III.

Felügyelt önálló tanulás - Analízis III. Felügyelt önálló tanulás - Analízis III Kormos Máté Differenciálható sokaságok Sokaságok Röviden, sokaságoknak nevezzük azokat az objektumokat, amelyek egy n dimenziós térben lokálisan k dimenziósak Definíció:

Részletesebben

A gradiens törésmutatójú közeg I.

A gradiens törésmutatójú közeg I. 10. Előadás A gradiens törésmutatójú közeg I. Az ugrásszerű törésmutató változással szemben a TracePro-ban lehetőség van folytonosan változó törésmutatójú közeg definiálására. Ilyen érdekes típusú közegek

Részletesebben

A mérési eredmény megadása

A mérési eredmény megadása A mérési eredmény megadása A mérés során kapott értékek eltérnek a mérendő fizikai mennyiség valódi értékétől. Alapvetően kétféle mérési hibát különböztetünk meg: a determinisztikus és a véletlenszerű

Részletesebben

OPTIKA. Fotometria. Dr. Seres István

OPTIKA. Fotometria. Dr. Seres István OPTIKA Dr. Seres István Segédmennyiségek: Síkszög: ívhossz/sugár i r Kör középponti szöge: 2 (radián) Térszög: terület/sugár a négyzeten A sr (szteradián = sr) 2 r Gömb középponti térszöge: 4 (szteradián)

Részletesebben

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Koordináta-geometria

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Koordináta-geometria MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Koordináta-geometria A szürkített hátterű feladatrészek nem tartoznak az érintett témakörhöz, azonban szolgálhatnak fontos információval az érintett

Részletesebben

Pontműveletek. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar február 20.

Pontműveletek. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar február 20. Pontműveletek Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2012. február 20. Sergyán (OE NIK) Pontműveletek 2012. február 20. 1 / 40 Felhasznált irodalom

Részletesebben

Tartalom. Tartalom. Raycasting. Hajder Levente 2017/2018. II. félév. Raycasting. Raycasting. Sugár és háromszög metszéspontja

Tartalom. Tartalom. Raycasting. Hajder Levente 2017/2018. II. félév. Raycasting. Raycasting. Sugár és háromszög metszéspontja Hajder Levente hajder@inf.elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar 2017/2018. II. félév 1 2 1 2 Albrecht Dürer, 1525 Tekintsünk minden pixelre úgy, mint egy kis ablakra a világra Milyen színértéket

Részletesebben

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT. Koordináta-geometria

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT. Koordináta-geometria MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT 1) Adott két pont: A 4; 1 felezőpontjának koordinátáit! AB felezőpontja legyen F. Koordináta-geometria és B 3 1; Írja fel az AB szakasz 1 3 4

Részletesebben

Megoldás: feladat adataival végeredménynek 0,46 cm-t kapunk.

Megoldás: feladat adataival végeredménynek 0,46 cm-t kapunk. 37 B-5 Fénynyaláb sík üveglapra 40 -os szöget bezáró irányból érkezik. Az üveg 1,5 cm vastag és törésmutatója. Az üveglap másik oldalán megjelenő fénynyaláb párhuzamos a beeső fénynyalábbal, de oldalirányban

Részletesebben

Hajder Levente 2018/2019. II. félév

Hajder Levente 2018/2019. II. félév Hajder Levente hajder@inf.elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar 2018/2019. II. félév Tartalom 1 2 3 4 5 Albrecht Dürer, 1525 Motiváció Tekintsünk minden pixelre úgy, mint egy kis ablakra

Részletesebben

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI statisztika 10 X. SZIMULÁCIÓ 1. VÉLETLEN számok A véletlen számok fontos szerepet játszanak a véletlen helyzetek generálásában (pénzérme, dobókocka,

Részletesebben

Hajder Levente 2014/2015. tavaszi félév

Hajder Levente 2014/2015. tavaszi félév Hajder Levente hajder.levente@sztaki.mta.hu Eötvös Loránd Tudományegyetem Informatikai Kar 2014/2015. tavaszi félév Tartalom 1 2 3 4 5 Albrecht Dürer, 1525 Motiváció Tekintsünk minden pixelre úgy, mint

Részletesebben

azonos sikban fekszik. A vezetőhurok ellenállása 2 Ω. Számítsuk ki a hurok teljes 4.1. ábra ábra

azonos sikban fekszik. A vezetőhurok ellenállása 2 Ω. Számítsuk ki a hurok teljes 4.1. ábra ábra 4. Gyakorlat 31B-9 A 31-15 ábrán látható, téglalap alakú vezetőhurok és a hosszúságú, egyenes vezető azonos sikban fekszik. A vezetőhurok ellenállása 2 Ω. Számítsuk ki a hurok teljes 4.1. ábra. 31-15 ábra

Részletesebben

13. Előadás. A Grid Source panelen a Polarization fül alatt megadhatjuk a. Rendre az alábbi lehetőségek közül választhatunk:

13. Előadás. A Grid Source panelen a Polarization fül alatt megadhatjuk a. Rendre az alábbi lehetőségek közül választhatunk: 13. Előadás Polarizáció és anizotrópia A Grid Source panelen a Polarization fül alatt megadhatjuk a sugár polarizációs állapotát Rendre az alábbi lehetőségek közül választhatunk: Polarizálatlan Lineáris

Részletesebben

Láthatósági kérdések

Láthatósági kérdések Láthatósági kérdések Láthatósági algoritmusok Adott térbeli objektum és adott nézőpont esetén el kell döntenünk, hogy mi látható az adott alakzatból a nézőpontból, vagy irányából nézve. Az algoritmusok

Részletesebben

5. házi feladat. AB, CD kitér élpárra történ tükrözések: Az ered transzformáció: mivel az origó xpont, így nincs szükség homogénkoordinátás

5. házi feladat. AB, CD kitér élpárra történ tükrözések: Az ered transzformáció: mivel az origó xpont, így nincs szükség homogénkoordinátás 5. házi feladat 1.feladat A csúcsok: A = (0, 1, 1) T, B = (0, 1, 1) T, C = (1, 0, 0) T, D = ( 1, 0, 0) T AB, CD kitér élpárra történ tükrözések: 1 0 0 T AB = 0 1 0, elotlási rész:(i T AB )A = (0, 0, )

Részletesebben

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI statisztika 3 III. VÉLETLEN VEKTOROK 1. A KÉTDIMENZIÓs VÉLETLEN VEKTOR Definíció: Az leképezést (kétdimenziós) véletlen vektornak nevezzük, ha Definíció:

Részletesebben

Statisztika - bevezetés Méréselmélet PE MIK MI_BSc VI_BSc 1

Statisztika - bevezetés Méréselmélet PE MIK MI_BSc VI_BSc 1 Statisztika - bevezetés 00.04.05. Méréselmélet PE MIK MI_BSc VI_BSc Bevezetés Véletlen jelenség fogalma jelenséget okok bizonyos rendszere hozza létre ha mindegyik figyelembe vehető egyértelmű leírás általában

Részletesebben

TÁVKÖZLÉSI ISMERETEK FÉNYVEZETŐS GYAKORLAT. Szakirodalomból szerkesztette: Varga József

TÁVKÖZLÉSI ISMERETEK FÉNYVEZETŐS GYAKORLAT. Szakirodalomból szerkesztette: Varga József TÁVKÖZLÉSI ISMERETEK FÉNYVEZETŐS GYAKORLAT Szakirodalomból szerkesztette: Varga József 1 2. A FÉNY A külvilágról elsősorban úgy veszünk tudomást, hogy látjuk a környező tárgyakat, azok mozgását, a természet

Részletesebben

Összeállította: dr. Leitold Adrien egyetemi docens

Összeállította: dr. Leitold Adrien egyetemi docens Az R 3 tér geometriája Összeállította: dr. Leitold Adrien egyetemi docens 2008.09.08. 1 Vektorok Vektor: irányított szakasz Jel.: a, a, a, AB, Jellemzői: irány, hosszúság, (abszolút érték) jel.: a Speciális

Részletesebben

Vezetők elektrosztatikus térben

Vezetők elektrosztatikus térben Vezetők elektrosztatikus térben Vezető: a töltések szabadon elmozdulhatnak Ha a vezető belsejében a térerősség nem lenne nulla akkor áram folyna. Ha a felületen a térerősségnek lenne tangenciális (párhuzamos)

Részletesebben

Optika gyakorlat 6. Interferencia. I = u 2 = u 1 + u I 2 cos( Φ)

Optika gyakorlat 6. Interferencia. I = u 2 = u 1 + u I 2 cos( Φ) Optika gyakorlat 6. Interferencia Interferencia Az interferencia az a jelenség, amikor kett vagy több hullám fázishelyes szuperpozíciója révén a térben állóhullám kép alakul ki. Ez elektromágneses hullámok

Részletesebben

A számítógépes grafika alapjai kurzus, vizsgatételek és tankönyvi referenciák 2014

A számítógépes grafika alapjai kurzus, vizsgatételek és tankönyvi referenciák 2014 Pázmány Péter Katolikus Egyetem Információs Technológiai Kar A számítógépes grafika alapjai kurzus, vizsgatételek és tankönyvi referenciák 2014 Benedek Csaba A vizsga menete: a vizsgázó egy A illetve egy

Részletesebben

A +Q töltés egy L hosszúságú egyenes szakasz mentén oszlik el egyenletesen (ld ábra ábra

A +Q töltés egy L hosszúságú egyenes szakasz mentén oszlik el egyenletesen (ld ábra ábra . Gyakorlat 4B-9 A +Q töltés egy L hosszúságú egyenes szakasz mentén oszlik el egyenletesen (ld. 4-6 ábra.). Számítsuk ki az E elektromos térerősséget a vonal irányában lévő, annak.. ábra. 4-6 ábra végpontjától

Részletesebben

A geometriai optika. Fizika május 25. Rezgések és hullámok. Fizika 11. (Rezgések és hullámok) A geometriai optika május 25.

A geometriai optika. Fizika május 25. Rezgések és hullámok. Fizika 11. (Rezgések és hullámok) A geometriai optika május 25. A geometriai optika Fizika 11. Rezgések és hullámok 2019. május 25. Fizika 11. (Rezgések és hullámok) A geometriai optika 2019. május 25. 1 / 22 Tartalomjegyzék 1 A fénysebesség meghatározása Olaf Römer

Részletesebben

A fény mint elektromágneses hullám és mint fényrészecske

A fény mint elektromágneses hullám és mint fényrészecske A fény mint elektromágneses hullám és mint fényrészecske Segítség az 5. tétel (Hogyan alkalmazható a hullám-részecske kettősség gondolata a fénysugárzás esetében?) megértéséhez és megtanulásához, továbbá

Részletesebben

A bifiláris felfüggesztésű rúd mozgásáról

A bifiláris felfüggesztésű rúd mozgásáról 1 A bifiláris felfüggesztésű rúd mozgásáról A végein fonállal felfüggesztett egyenes rúd részleges erőtani vizsgálatát mutattuk be egy korábbi dolgozatunkban, melynek címe: Forgatónyomaték mérése - I.

Részletesebben

2012.11.27. Maga a tématerület így nagyon nagy. A fények pontos fizikai szimulációja kimondottan számításigényes

2012.11.27. Maga a tématerület így nagyon nagy. A fények pontos fizikai szimulációja kimondottan számításigényes Fények a számítógépes grafikában Dr. Mileff Péter A fények és árnyékok területe különösen frekventált terület a számítógépes vizualizációban. Az utóbbi években ez tovább fokozódott Oka a hardver folyamatos

Részletesebben

Sugárkövetési algoritmusok (2. rész)

Sugárkövetési algoritmusok (2. rész) Sugárkövetési algoritmusok (2. rész) Ismét jelentkezik a sugarak szerelmeseinek szóló cikkünk, melyben tovább folytatjuk a fények birodalmában megkezdett utazásunkat. A fénysugarak rekurzív követésével

Részletesebben

Keresztmetszet másodrendű nyomatékainak meghatározása

Keresztmetszet másodrendű nyomatékainak meghatározása BUDAPEST MŰSZAK ÉS GAZDASÁGTUDOMÁNY EGYETEM Keresztmetszet másodrendű nyomatékainak meghatározása Segédlet a Szilárdságtan c tárgy házi feladatához Készítette: Lehotzky Dávid Budapest, 205 február 28 ábra

Részletesebben

17. előadás: Vektorok a térben

17. előadás: Vektorok a térben 17. előadás: Vektorok a térben Szabó Szilárd A vektor fogalma A mai előadásban n 1 tetszőleges egész szám lehet, de az egyszerűség kedvéért a képletek az n = 2 esetben szerepelnek. Vektorok: rendezett

Részletesebben

Elektromágneses hullámok - Interferencia

Elektromágneses hullámok - Interferencia Bevezetés a modern fizika fejezeteibe 2. (d) Elektromágneses hullámok - Interferencia Utolsó módosítás: 2012 október 18. 1 Interferencia (1) Mi történik két elektromágneses hullám találkozásakor? Az elektromágneses

Részletesebben

Klár Gergely Informatikai Kar. 2010/2011. tavaszi félév

Klár Gergely Informatikai Kar. 2010/2011. tavaszi félév Számítógépes Grafika Klár Gergely tremere@elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar 2010/2011. tavaszi félév Tartalom I Sugárkövetés 1 Sugárkövetés 2 3 Tartalom Sugárkövetés Sugarak indítása

Részletesebben

1. ábra. 24B-19 feladat

1. ábra. 24B-19 feladat . gyakorlat.. Feladat: (HN 4B-9) A +Q töltés egy hosszúságú egyenes szakasz mentén oszlik el egyenletesen (ld.. ábra.). Számítsuk ki az E elektromos térerősséget a vonal. ábra. 4B-9 feladat irányában lévő,

Részletesebben

A brachistochron probléma megoldása

A brachistochron probléma megoldása A brachistochron probléma megoldása Adott a függőleges síkban két nem egy függőleges egyenesen fekvő P 0 és P 1 pont, amelyek közül a P 1 fekszik alacsonyabban. Azt a kérdést fogjuk vizsgálni. hogy van-e

Részletesebben

A 2014/2015. tanévi Országos Középiskolai Tanulmányi Verseny első forduló MATEMATIKA I. KATEGÓRIA (SZAKKÖZÉPISKOLA) Javítási-értékelési útmutató

A 2014/2015. tanévi Országos Középiskolai Tanulmányi Verseny első forduló MATEMATIKA I. KATEGÓRIA (SZAKKÖZÉPISKOLA) Javítási-értékelési útmutató Oktatási Hivatal 04/0 tanévi Országos Középiskolai Tanulmányi Verseny első forduló MTEMTIK I KTEGÓRI (SZKKÖZÉPISKOL) Javítási-értékelési útmutató Határozza meg a tízes számrendszerbeli x = abba és y =

Részletesebben

Termék modell. Definíció:

Termék modell. Definíció: Definíció: Termék modell Összetett, többfunkciós, integrált modell (számítógépes reprezentáció) amely leír egy műszaki objektumot annak különböző életfázis szakaszaiban: tervezés, gyártás, szerelés, szervízelés,

Részletesebben

Gyakorlat 30B-14. a F L = e E + ( e)v B képlet, a gravitációs erőt a (2.1) G = m e g (2.2)

Gyakorlat 30B-14. a F L = e E + ( e)v B képlet, a gravitációs erőt a (2.1) G = m e g (2.2) 2. Gyakorlat 30B-14 Az Egyenlítőnél, a földfelszín közelében a mágneses fluxussűrűség iránya északi, nagysága kb. 50µ T,az elektromos térerősség iránya lefelé mutat, nagysága; kb. 100 N/C. Számítsuk ki,

Részletesebben

Elektromágneses hullámok

Elektromágneses hullámok Bevezetés a modern fizika fejezeteibe 2. (a) Elektromágneses hullámok Utolsó módosítás: 2015. október 3. 1 A Maxwell-egyenletek (1) (2) (3) (4) E: elektromos térerősség D: elektromos eltolás H: mágneses

Részletesebben

Világítástechnika I. VEMIVIB544V A fény és tulajdonságai, fotometriai alapfogalmak és színmérés

Világítástechnika I. VEMIVIB544V A fény és tulajdonságai, fotometriai alapfogalmak és színmérés Világítástechnika I. VEMIVIB544V A fény és tulajdonságai, fotometriai alapfogalmak és színmérés tartalom Fotometriai ismétlés Fénysűrűség Színmérés Sugárzáseloszlások Lambert (reflektáló) felület egyenletesen

Részletesebben

10. Koordinátageometria

10. Koordinátageometria I. Nulladik ZH-ban láttuk: 0. Koordinátageometria. Melyek azok a P x; y pontok, amelyek koordinátái kielégítik az Ábrázolja a megoldáshalmazt a koordináta-síkon! x y x 0 egyenlőtlenséget? ELTE 00. szeptember

Részletesebben

Analitikus térgeometria

Analitikus térgeometria Analitikus térgeometria Wettl Ferenc el adása alapján 2015.09.21. Wettl Ferenc el adása alapján Analitikus térgeometria 2015.09.21. 1 / 23 Tartalom 1 Egyenes és sík egyenlete Egyenes Sík 2 Alakzatok közös

Részletesebben

Q 1 D Q 2 (D x) 2 (1.1)

Q 1 D Q 2 (D x) 2 (1.1) . Gyakorlat 4B-9 Két pontszerű töltés az x tengelyen a következőképpen helyezkedik el: egy 3 µc töltés az origóban, és egy + µc töltés az x =, 5 m koordinátájú pontban van. Keressük meg azt a helyet, ahol

Részletesebben

Optika gyakorlat 1. Fermat-elv, fénytörés, reexió sík és görbült határfelületen. Fermat-elv

Optika gyakorlat 1. Fermat-elv, fénytörés, reexió sík és görbült határfelületen. Fermat-elv Optika gyakorlat 1. Fermat-elv, fénytörés, reexió sík és görbült határfelületen Kivonat Geometriai optika: közelítés, amely a fényterjedést, közeghatáron való áthaladást geometriai alakzatok görbék segítségével

Részletesebben

(Solid modeling, Geometric modeling) Testmodell: egy létező vagy elképzelt objektum digitális reprezentációja.

(Solid modeling, Geometric modeling) Testmodell: egy létező vagy elképzelt objektum digitális reprezentációja. Testmodellezés Testmodellezés (Solid modeling, Geometric modeling) Testmodell: egy létező vagy elképzelt objektum digitális reprezentációja. A tervezés (modellezés) során megadjuk a objektum geometria

Részletesebben

Abszorpciós spektroszkópia

Abszorpciós spektroszkópia Tartalomjegyzék Abszorpciós spektroszkópia (Nyitrai Miklós; 2011 február 1.) Dolgozat: május 3. 18:00-20:00. Egész éves anyag. Korábbi dolgozatok nem számítanak bele. Felmentés 80% felett. A fény; Elektromágneses

Részletesebben

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Koordináta-geometria

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Koordináta-geometria MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Koordináta-geometria A szürkített hátterű feladatrészek nem tartoznak az érintett témakörhöz, azonban szolgálhatnak fontos információval az érintett

Részletesebben

Infobionika ROBOTIKA. X. Előadás. Robot manipulátorok II. Direkt és inverz kinematika. Készült a HEFOP P /1.0 projekt keretében

Infobionika ROBOTIKA. X. Előadás. Robot manipulátorok II. Direkt és inverz kinematika. Készült a HEFOP P /1.0 projekt keretében Infobionika ROBOTIKA X. Előadás Robot manipulátorok II. Direkt és inverz kinematika Készült a HEFOP-3.3.1-P.-2004-06-0018/1.0 projekt keretében Tartalom Direkt kinematikai probléma Denavit-Hartenberg konvenció

Részletesebben

2014/2015. tavaszi félév

2014/2015. tavaszi félév Hajder L. és Valasek G. hajder.levente@sztaki.mta.hu Eötvös Loránd Tudományegyetem Informatikai Kar 2014/2015. tavaszi félév Tartalom Geometria modellezés 1 Geometria modellezés 2 Geometria modellezés

Részletesebben

Vektorok és koordinátageometria

Vektorok és koordinátageometria Vektorok és koordinátageometria Vektorral kapcsolatos alapfogalmak http://zanza.tv/matematika/geometria/vektorok-bevezetese Definíció: Ha egy szakasz két végpontját megkülönböztetjük egymástól oly módon,

Részletesebben

1. ábra Tükrös visszaverődés 2. ábra Szórt visszaverődés 3. ábra Gombostű kísérlet

1. ábra Tükrös visszaverődés 2. ábra Szórt visszaverődés 3. ábra Gombostű kísérlet A kísérlet célkitűzései: A fény visszaverődésének kísérleti vizsgálata, a fényvisszaverődés törvényének megismerése, síktükrök képalkotásának vizsgálata. Eszközszükséglet: szivacslap A/4 írólap vonalzó,

Részletesebben

9. Trigonometria. I. Nulladik ZH-ban láttuk: 1. Tegye nagyság szerint növekvő sorrendbe az alábbi értékeket! Megoldás:

9. Trigonometria. I. Nulladik ZH-ban láttuk: 1. Tegye nagyság szerint növekvő sorrendbe az alábbi értékeket! Megoldás: 9. Trigonometria I. Nulladik ZH-ban láttuk: 1. Tegye nagyság szerint növekvő sorrendbe az alábbi értékeket! x = cos 150 ; y = sin 5 ; z = tg ( 60 ) (A) z < x < y (B) x < y < z (C) y < x < z (D) z < y

Részletesebben

Geometriai Optika (sugároptika)

Geometriai Optika (sugároptika) Geometriai Optika (sugároptika) - Egyszerû optikai eszközök, ahogy már ismerjük õket - Mi van ha egymás után tesszük: leképezések egymásutánja (bonyolult) - Gyakorlatilag fontos eset: paraxiális közelítés

Részletesebben

STATISZTIKA ELŐADÁS ÁTTEKINTÉSE. Matematikai statisztika. Mi a modell? Binomiális eloszlás sűrűségfüggvény. Binomiális eloszlás

STATISZTIKA ELŐADÁS ÁTTEKINTÉSE. Matematikai statisztika. Mi a modell? Binomiális eloszlás sűrűségfüggvény. Binomiális eloszlás ELŐADÁS ÁTTEKINTÉSE STATISZTIKA 9. Előadás Binomiális eloszlás Egyenletes eloszlás Háromszög eloszlás Normális eloszlás Standard normális eloszlás Normális eloszlás mint modell 2/62 Matematikai statisztika

Részletesebben

Megoldott feladatok november 30. n+3 szigorúan monoton csökken, 5. n+3. lim a n = lim. n+3 = 2n+3 n+4 2n+1

Megoldott feladatok november 30. n+3 szigorúan monoton csökken, 5. n+3. lim a n = lim. n+3 = 2n+3 n+4 2n+1 Megoldott feladatok 00. november 0.. Feladat: Vizsgáljuk az a n = n+ n+ sorozat monotonitását, korlátosságát és konvergenciáját. Konvergencia esetén számítsuk ki a határértéket! : a n = n+ n+ = n+ n+ =

Részletesebben

FÉNYTAN A FÉNY TULAJDONSÁGAI 1. Sorold fel milyen hatásait ismered a napfénynek! 2. Hogyan tisztelték és minek nevezték az ókori egyiptomiak a Napot?

FÉNYTAN A FÉNY TULAJDONSÁGAI 1. Sorold fel milyen hatásait ismered a napfénynek! 2. Hogyan tisztelték és minek nevezték az ókori egyiptomiak a Napot? FÉNYTAN A FÉNY TULAJDONSÁGAI 1. Sorold fel milyen hatásait ismered a napfénynek! 2. Hogyan tisztelték és minek nevezték az ókori egyiptomiak a Napot? 3. Mit nevezünk fényforrásnak? 4. Mi a legjelentősebb

Részletesebben

Matematika A1a Analízis

Matematika A1a Analízis B U D A P E S T I M Ű S Z A K I M A T E M A T I K A É S G A Z D A S Á G T U D O M Á N Y I I N T É Z E T E G Y E T E M Matematika A1a Analízis BMETE90AX00 Vektorok StKis, EIC 2019-02-12 Wettl Ferenc ALGEBRA

Részletesebben

Véletlen jelenség: okok rendszere hozza létre - nem ismerhetjük mind, ezért sztochasztikus.

Véletlen jelenség: okok rendszere hozza létre - nem ismerhetjük mind, ezért sztochasztikus. Valószín ségelméleti és matematikai statisztikai alapfogalmak összefoglalása (Kemény Sándor - Deák András: Mérések tervezése és eredményeik értékelése, kivonat) Véletlen jelenség: okok rendszere hozza

Részletesebben

6. gyakorlat. Gelle Kitti. Csendes Tibor Somogyi Viktor. London András. jegyzetei alapján

6. gyakorlat. Gelle Kitti. Csendes Tibor Somogyi Viktor. London András. jegyzetei alapján Közelítő és szimbolikus számítások 6. gyakorlat Sajátérték, Gersgorin körök Készítette: Gelle Kitti Csendes Tibor Somogyi Viktor Vinkó Tamás London András Deák Gábor jegyzetei alapján . Mátrixok sajátértékei

Részletesebben

I. Vektorok. Adott A (2; 5) és B ( - 3; 4) pontok. (ld. ábra) A két pont által meghatározott vektor:

I. Vektorok. Adott A (2; 5) és B ( - 3; 4) pontok. (ld. ábra) A két pont által meghatározott vektor: I. Vektorok 1. Vektorok összege Általánosan: Az ábra alapján Adott: a(4; 1) és b(; 3) a + b (4 + ; 1 + 3) = (6; ) a(a 1 ; a ) és b(b 1 ; b ) a + b(a 1 + b 1 ; a + b ). Vektorok különbsége Általánosan:

Részletesebben

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Megoldások

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Megoldások Megoldások 1. Határozd meg a szakasz hosszát, ha a végpontok koordinátái: A ( 1; ) és B (5; )! A szakasz hosszához számítsuk ki a két pont távolságát: d AB = AB = (5 ( 1)) + ( ) = 6 + 1 = 7 6,08.. Határozd

Részletesebben

Fotó elmélet 2015. szeptember 28. 15:03 Fény tulajdonságai a látható fény. 3 fő tulajdonsága 3 fizikai mennyiség Intenzitás Frekvencia polarizáció A látható fények amiket mi is látunk Ibolya 380-425 Kék

Részletesebben

KOVÁCS BÉLA, MATEMATIKA I.

KOVÁCS BÉLA, MATEMATIKA I. KOVÁCS BÉLA MATEmATIkA I 8 VIII VEkTOROk 1 VEkTOR Vektoron irányított szakaszt értünk Jelölése: stb Vektorok hossza A vektor abszolút értéke az irányított szakasz hossza Ha a vektor hossza egységnyi akkor

Részletesebben

A loxodrómáról. Előző írásunkban melynek címe: A Gudermann - függvényről szó esett a Mercator - vetületről,illetve az ezen alapuló térképről 1. ábra.

A loxodrómáról. Előző írásunkban melynek címe: A Gudermann - függvényről szó esett a Mercator - vetületről,illetve az ezen alapuló térképről 1. ábra. 1 A loxodrómáról Előző írásunkban melynek címe: A Gudermann - függvényről szó esett a Mercator - vetületről,illetve az ezen alapuló térképről 1. ábra. 1. ábra forrása: [ 1 ] Ezen a térképen a szélességi

Részletesebben

10. előadás. Konvex halmazok

10. előadás. Konvex halmazok 10. előadás Konvex halmazok Konvex halmazok Definíció: A K ponthalmaz konvex, ha bármely két pontjának összekötő szakaszát tartalmazza. Állítás: Konvex halmazok metszete konvex. Konvex halmazok uniója

Részletesebben

= Φ B(t = t) Φ B (t = 0) t

= Φ B(t = t) Φ B (t = 0) t 4. Gyakorlat 32B-3 Egy ellenállású, r sugarú köralakú huzalhurok a B homogén mágneses erőtér irányára merőleges felületen fekszik. A hurkot gyorsan, t idő alatt 180 o -kal átforditjuk. Számitsuk ki, hogy

Részletesebben

Matematika III előadás

Matematika III előadás Matematika III. - 2. előadás Vinczéné Varga Adrienn Debreceni Egyetem Műszaki Kar, Műszaki Alaptárgyi Tanszék Előadáskövető fóliák Vinczéné Varga Adrienn (DE-MK) Matematika III. 2016/2017/I 1 / 23 paramétervonalak,

Részletesebben

Végeselem modellezés alapjai 1. óra

Végeselem modellezés alapjai 1. óra Végeselem modellezés alapjai. óra Gyenge alak, Tesztfüggvény, Lagrange-féle alakfüggvény, Stiness mátrix Kivonat Az óra célja, hogy megismertesse a végeselem módszer (FEM) alkalmazását egy egyszer probléma,

Részletesebben

Az egyenlőtlenség mindkét oldalát szorozzuk meg 4 16-al:

Az egyenlőtlenség mindkét oldalát szorozzuk meg 4 16-al: Bevezető matematika kémikusoknak., 04. ősz. feladatlap. Ábrázoljuk számegyenesen a következő egyenlőtlenségek megoldáshalmazát! (a) x 5 < 3 5 x < 3 x 5 < (d) 5 x

Részletesebben

Matematika szóbeli érettségi témakörök 2016/2017-es tanév őszi vizsgaidőszak

Matematika szóbeli érettségi témakörök 2016/2017-es tanév őszi vizsgaidőszak Matematika szóbeli érettségi témakörök 2016/2017-es tanév őszi vizsgaidőszak Halmazok Halmazok egyenlősége Részhalmaz, valódi részhalmaz Üres halmaz Véges és végtelen halmaz Halmazműveletek (unió, metszet,

Részletesebben

VEMIVIB544V A fény és tulajdonságai, fotometriai alapfogalmak és színmérés

VEMIVIB544V A fény és tulajdonságai, fotometriai alapfogalmak és színmérés Világítástechnika I. VEMIVIB544V A fény és tulajdonságai, fotometriai alapfogalmak és színmérés tartalom Fotometriai ismétlés Fénysűrűség Színmérés Sugárzáseloszlások Lambert (reflektáló) felület egyenletesen

Részletesebben

MÉRÉSI EREDMÉNYEK PONTOSSÁGA, A HIBASZÁMÍTÁS ELEMEI

MÉRÉSI EREDMÉNYEK PONTOSSÁGA, A HIBASZÁMÍTÁS ELEMEI MÉRÉSI EREDMÉYEK POTOSSÁGA, A HIBASZÁMÍTÁS ELEMEI. A mérési eredmény megadása A mérés során kapott értékek eltérnek a mérendő fizikai mennyiség valódi értékétől. Alapvetően kétféle mérési hibát különböztetünk

Részletesebben

SZE, Doktori Iskola. Számítógépes grafikai algoritmusok. Összeállította: Dr. Gáspár Csaba. Felületmegjelenítés

SZE, Doktori Iskola. Számítógépes grafikai algoritmusok. Összeállította: Dr. Gáspár Csaba. Felületmegjelenítés Felületmegjelenítés Megjelenítés paramétervonalakkal Drótvázas megjelenítés Megjelenítés takarással Triviális hátsólap eldobás A z-puffer algoritmus Megvilágítás és árnyalás Megjelenítés paramétervonalakkal

Részletesebben

Matematika szigorlat június 17. Neptun kód:

Matematika szigorlat június 17. Neptun kód: Név Matematika szigorlat 014. június 17. Neptun kód: 1.. 3. 4. 5. Elm. Fel. Össz. Oszt. Az eredményes szigorlat feltétele elméletből legalább 0 pont, feladatokból pedig legalább 30 pont elérése. A szigorlat

Részletesebben

Milyen simaságú legyen a minta felülete jó minőségű EBSD mérésekhez

Milyen simaságú legyen a minta felülete jó minőségű EBSD mérésekhez 1 Milyen simaságú legyen a minta felülete jó minőségű EBSD mérésekhez Havancsák Károly Dankházi Zoltán Ratter Kitti Varga Gábor Visegrád 2012. január Elektron diffrakció 2 Diffrakció - kinematikus elmélet

Részletesebben

1.1 Emisszió, reflexió, transzmisszió

1.1 Emisszió, reflexió, transzmisszió 1.1 Emisszió, reflexió, transzmisszió A hőkamera által észlelt hosszú hullámú sugárzás - amit a hőkamera a látómezejében érzékel - a felület emissziójának, reflexiójának és transzmissziójának függvénye.

Részletesebben

Matematika (mesterképzés)

Matematika (mesterképzés) Matematika (mesterképzés) Környezet- és Településmérnököknek Debreceni Egyetem Műszaki Kar, Műszaki Alaptárgyi Tanszék Vinczéné Varga A. Környezet- és Településmérnököknek 2016/2017/I 1 / 29 Lineáris tér,

Részletesebben

Koordináta-geometria feladatok (középszint)

Koordináta-geometria feladatok (középszint) Koordináta-geometria feladatok (középszint) 1. (KSZÉV Minta (1) 2004.05/I/4) Adott az A(2; 5) és B(1; 3) pont. Adja meg az AB szakasz felezőpontjának koordinátáit! 2. (KSZÉV Minta (2) 2004.05/I/7) Egy

Részletesebben

Egy sík és a koordinátasíkok metszésvonalainak meghatározása

Egy sík és a koordinátasíkok metszésvonalainak meghatározása 1 Egy sík és a koordinátasíkok metszésvonalainak meghatározása Ehhez tekintsük az 1. ábrát! 1. ábra Itt az ( u, v, w ) tengelymetszeteivel adott S síkot látjuk, az Oxyz térbeli derékszögű koordináta -

Részletesebben

Optika gyakorlat 5. Gyakorló feladatok

Optika gyakorlat 5. Gyakorló feladatok Optika gyakorlat 5. Gyakorló feladatok. példa: Leképezés - Fruzsika játszik Fruzsika több nagy darab ívelt üveget tart maga elé. Határozd meg, hogy milyen típusú objektívek (gyűjtő/szóró) ezek, és milyen

Részletesebben