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 Pszeudókód 1 Sugárkövetés Sugarak indítása Pszeudókód 2 3
Sugarak indítása Pszeudókód Albrecht Dürer, 1525
Suga rko vete s Gyorsı ta si leheto se gek Foton ko vete s Egyszeru sı tett illumina cio s egyenlet Sugarak indı ta sa Pszeudo ko d Transzforma lt objektumok Minden pixelre egyma sto l fu ggetlenu l hata rozzuk meg azok szı ne t oldjuk meg az a rnyala si e s takara si feladatot. 5. elo ada s
Suga rko vete s Gyorsı ta si leheto se gek Foton ko vete s Egyszeru sı tett illumina cio s egyenlet Sugarak indı ta sa Pszeudo ko d Transzforma lt objektumok Minden pixelre egyma sto l fu ggetlenu l hata rozzuk meg azok szı ne t oldjuk meg az a rnyala si e s takara si feladatot. Turner Whitted, 1980 5. elo ada s
Sugarak indítása Pszeudókód L( x, ω) = L e ( x, ω) + f r ( x, ω, ω)l( x, ω )( ω n)dω Ω A fény útját két féle komponensre bontjuk: koherens és inkoherens komponensre Koherens eset Az optikának megfelelő ideális visszaverődés ( tükröződés ) és törés Tovább követjük a fény útját Inkoherens eset Minden egyéb Csak az absztrakt fényforrás direkt megvilágítását vesszük figyelembe
Sugarak indítása Pszeudókód L( x, ω) = L e ( x, ω) + f r ( x, ω, ω)l( x, ω )( ω n)dω Ω A fény útját két féle komponensre bontjuk: koherens és inkoherens komponensre Koherens eset Az optikának megfelelő ideális visszaverődés ( tükröződés ) és törés Tovább követjük a fény útját Inkoherens eset Minden egyéb Csak az absztrakt fényforrás direkt megvilágítását vesszük figyelembe
Sugarak indítása Pszeudókód L( x, ω) = L e ( x, ω) + f r ( x, ω, ω)l( x, ω )( ω n)dω Ω A fény útját két féle komponensre bontjuk: koherens és inkoherens komponensre Koherens eset Az optikának megfelelő ideális visszaverődés ( tükröződés ) és törés Tovább követjük a fény útját Inkoherens eset Minden egyéb Csak az absztrakt fényforrás direkt megvilágítását vesszük figyelembe
Koherens komponens Sugarak indítása Pszeudókód
Inkoherens komponens Sugarak indítása Pszeudókód
Sugarak indítása Pszeudókód helyett L( x, ω) = L e ( x, ω) + f r ( x, ω, ω)l( x, ω )( ω n)dω Ω L( x, ω) = L e ( x, ω) + k a L a + l Lights f r ( x, ω l, ω)l i ( x, ω l )( ω l n) + k r L( x, ω r ) + k t L( x, ω t )
Sugarak indítása Pszeudókód helyett L( x, ω) = L e ( x, ω) + f r ( x, ω, ω)l( x, ω )( ω n)dω Ω L( x, ω) = L e ( x, ω) + k a L a + l Lights f r ( x, ω l, ω)l i ( x, ω l )( ω l n) + k r L( x, ω r ) + k t L( x, ω t )
Sugárkövetés Sugarak indítása Pszeudókód L( x, ω) = L e ( x, ω) + k a L a + f r ( x, ω l, ω)l i ( x, ω l )( ω l n) l Lights + k r L( x, ω r ) + k t L( x, ω t ) A szempozicóból sugarakat indítunk minden pixel középpontján keresztül. Ennek a sugárnak az irányát adja meg ω-t (minusz omega!). A sugár és a színtér objetumainak szemhez legközelebbi metszéspontja adja meg x-et.
Emisszió Sugárkövetés Sugarak indítása Pszeudókód L( x, ω) = L e ( x, ω) + k a L a + l Lights f r ( x, ω l, ω)l i ( x, ω l )( ω l n) + k r L( x, ω r ) + k t L( x, ω t ) Az x felületi pontból, az ω nézeti irányból érkező radiancia, a felület saját sugárzása emissziója miatt.
Ambiens fény Sugárkövetés Sugarak indítása Pszeudókód L( x, ω) = L e ( x, ω) + k a L a + l Lights f r ( x, ω l, ω)l i ( x, ω l )( ω l n) + k r L( x, ω r ) + k t L( x, ω t ) k a a felület, L a a környezet ambiens együtthatója. Az egyenlet ambiens tagja közelíti azt a fénymennyiséget, ami általánosan jelen van, minden felületet ér, azok helyzetétől és az absztrakt fényforrásoktól függetlenül.
Fényforrások Sugárkövetés Sugarak indítása Pszeudókód L( x, ω) = L e ( x, ω) + k a L a + f r ( x, ω l, ω)l i ( x, ω l )( ω l n) l Lights + k r L( x, ω r ) + k t L( x, ω t ) Az inkoherens visszarődéseket fogalja össze a szummás tag Csak a fényforrások direkt hatását vesszük figyelembe És csak akkor, ha az az x felületi pontból látszik
Fényforrások Sugárkövetés Sugarak indítása Pszeudókód L( x, ω) = L e ( x, ω) + k a L a + f r ( x, ω l, ω)l i ( x, ω l )( ω l n) l Lights + k r L( x, ω r ) + k t L( x, ω t ) ω l a fényforrásból a felületi pontba mutató egységvektor. f r ( x, ω l, ω) most csak a diffúz és spekuláris visszaverődést jellemző BRDF. ω l n a felületi normális és a fényforrás fele mutató vektor által bezárt szög koszinusza.
Fényforrások Sugárkövetés Sugarak indítása Pszeudókód L( x, ω) = L e ( x, ω) + k a L a + f r ( x, ω l, ω)l i ( x, ω l )( ω l n) l Lights + k r L( x, ω r ) + k t L( x, ω t ) Ha az l fényforrás teljesítménye Φ l és poziciója x l akkor L i ( x, ω l ) = v( x, x l ) Φ l x x l 2. v( x, x l ) [0, 1] függvény: Mi van a felületi pont és a fényforrás között?
Fényforrások Sugárkövetés Sugarak indítása Pszeudókód L( x, ω) = L e ( x, ω) + k a L a + v( x, x l ) [0, 1] függvény l Lights = 0, ha a fényforrás nem látható x-ből, = 1, ha igen, f r ( x, ω l, ω)l i ( x, ω l )( ω l n) + k r L( x, ω r ) + k t L( x, ω t ) (0, 1), ha átlatszó objektumok vannak a kettő között. v kiszámításához úgynevezett árnyéksugarat indítunk x-ből x l -fele, és az objektumokkal való metszését nézzük.
Tükröződés Sugárkövetés Sugarak indítása Pszeudókód L( x, ω) = L e ( x, ω) + k a L a + f r ( x, ω l, ω)l i ( x, ω l )( ω l n) l Lights + k r L( x, ω r ) + k t L( x, ω t ) A tükörirányból érkező fényt k r arányban vesszük figyelembe. ω r az ideális tüköriránynak megfelelő beeső vektor. L( x, ω r ) kiszámítása azonos L( x, ω) kiszámításával (rekurzió!). Új sugár: szempozició helyett x, és a sugár iránya ω r.
Fénytörés Sugárkövetés Sugarak indítása Pszeudókód L( x, ω) = L e ( x, ω) + k a L a + f r ( x, ω l, ω)l i ( x, ω l )( ω l n) l Lights + k r L( x, ω r ) + k t L( x, ω t ) A törési-irányból érkező fényt k t arányban vesszük figyelembe. ω t a törésiránynak megfelelő beeső vektor. L( x, ω t ) kiszámítása megint azonos L( x, ω) kiszámításával (rekurzió!). Új sugár: szempozició helyett x, és a sugár iránya ω t.
Sugarak indítása Pszeudókód
Sugarak indítása Pszeudókód
Sugarak indítása Pszeudókód
Sugarak indítása Pszeudókód
Sugarak indítása Sugárkövetés Sugarak indítása Pszeudókód A szempozicióból indítunk sugarakat minden pixel középpontján keresztül. Hogyan kapjuk meg ezeket a sugarakat? Szem/kamera tulajdonságok: szempozició (eye), egy pont amire néz (center), felfele irányt megadó vektor (up), nyílásszög (fovx, fovy). Ezek segítségvel fogjuk megadni az i, j-dik pixel koordinátáit.
Sugarak indítása Pszeudókód
Sugarak indítása Pszeudókód Keressük a kamera által adott u, v, w (jobbkezes!) koordinátarendszert! Nézzen a kamera Z irányba! w = eye center eye center Az X tengely legyen merőleges mind w-re, mind az up irányra! u = up w up w Az Y tengely merőleges u-ra és w-re is: v = w u
i, j pixel koordinátái Sugárkövetés Sugarak indítása Pszeudókód Legyen p az i, j pixel középpontja. Ekkor Ahol p = eye + (αu + βv w). α = tan és β = tan ( fovx 2 + j width/2 ), width/2 ( fovy 2 + height/2 i ). hight/2
Sugarak indítása Sugárkövetés Sugarak indítása Pszeudókód void raytrace(camera c, Image img) { for (int j=0; j<img.height; ++j) for (int i=0; i<img.widht; ++i) { Ray r = CalcRay(c, i, j); img[i][j] = trace(r, 0); } }
trace függvény 1. Sugárkövetés Sugarak indítása Pszeudókód Color trace(ray r, int d) { if (d>max_d) return La; (q, x) = intersect(r); if (nincs metszéspont) return La; omega = -r.direction; c = Le(x, omega)+ k_a * La; foreach(light l in lights) { r_s = Ray(x, x_l - x); (q_s, x_s) = intersect(r_s); if (nincs metszéspont (x_s-x).length() > (x_l-x).length()) c += f_r(x, omega_l, omega) * omega_l.dot(n) * } //...
trace függvény 2. Sugárkövetés Sugarak indítása Pszeudókód } //... if (k_r(x) > 0) { r_r = Ray(x, reflect(r.direction, n)); c += k_r(x)*trace(r_r, d+1) } if (k_t(x) > 0) { r_t = Ray(x, refract(r.direction, n, eta)); c += k_t(x)*trace(r_t, d+1) } return c;
Sugarak indítása Pszeudókód Legyen M egy adott objektum transzformációs mátrixa. Feladat: Keressük r sugár és az M-mel transzformált objektum metszéspontját! Probléma: Hogyan transzformálunk egy gomböt? Megoldás: Transzformáljuk inkább a sugarat!
Sugarak indítása Pszeudókód Legyen M egy adott objektum transzformációs mátrixa. Feladat: Keressük r sugár és az M-mel transzformált objektum metszéspontját! Probléma: Hogyan transzformálunk egy gomböt? Megoldás: Transzformáljuk inkább a sugarat!
Sugarak indítása Pszeudókód Legyen M egy adott objektum transzformációs mátrixa. Feladat: Keressük r sugár és az M-mel transzformált objektum metszéspontját! Probléma: Hogyan transzformálunk egy gomböt? Megoldás: Transzformáljuk inkább a sugarat!
Sugarak indítása Pszeudókód Tétel Az r sugár és az M-mel transzformált objektum metszéspontja az M 1 -zel transzformált r sugár és az objektum metszéspontja. M R 4 4, homogén transzformáció Sugár kezdőpontja: p = (p x, p y, p z ) [p x, p y, p z, 1] Sugár iránya: d = (d x, d y, d z ) [d x, d y, d z, 0]. Így nem hat rá az eltolás. Transzformált sugár r : pm 1 + t dm 1
Sugarak indítása Pszeudókód Tétel Az r sugár és az M-mel transzformált objektum metszéspontja az M 1 -zel transzformált r sugár és az objektum metszéspontja. M R 4 4, homogén transzformáció Sugár kezdőpontja: p = (p x, p y, p z ) [p x, p y, p z, 1] Sugár iránya: d = (d x, d y, d z ) [d x, d y, d z, 0]. Így nem hat rá az eltolás. Transzformált sugár r : pm 1 + t dm 1
Sugarak indítása Pszeudókód Metszésvizsgálat: használjuk r -t! Metszéspont: q, akkor az eredeti térben q M. Távolságokat újra kell számolni az eredeti térben! Normálvektorok: n helyett n M T (inverz-transzponált).
Sugarak indítása Pszeudókód Metszésvizsgálat: használjuk r -t! Metszéspont: q, akkor az eredeti térben q M. Távolságokat újra kell számolni az eredeti térben! Normálvektorok: n helyett n M T (inverz-transzponált).
Sugarak indítása Pszeudókód Metszésvizsgálat: használjuk r -t! Metszéspont: q, akkor az eredeti térben q M. Távolságokat újra kell számolni az eredeti térben! Normálvektorok: n helyett n M T (inverz-transzponált).
Sugarak indítása Pszeudókód Metszésvizsgálat: használjuk r -t! Metszéspont: q, akkor az eredeti térben q M. Távolságokat újra kell számolni az eredeti térben! Normálvektorok: n helyett n M T (inverz-transzponált).
Tartalom Sugárkövetés Befoglaló keretek Térfelosztó módszerek 1 Sugárkövetés 2 Befoglaló keretek Térfelosztó módszerek 3
Befoglaló keretek Térfelosztó módszerek Metszésvizsgálat gyorsítása Az algoritmus sebessége leginkább az intersect függvény sebességétől függ. Hogyan gyorsíthatnánk ezt? Ne vizsgáljunk metszést olyan objektumokra, amiket biztosan nem metsz a sugár! Ne vizsgáljunk metszést olyan objektumokra, amik biztosan távolabbi metszéspontot adnak, mint a már megtalált!
Befoglaló keretek Térfelosztó módszerek Metszésvizsgálat gyorsítása Az algoritmus sebessége leginkább az intersect függvény sebességétől függ. Hogyan gyorsíthatnánk ezt? Ne vizsgáljunk metszést olyan objektumokra, amiket biztosan nem metsz a sugár! Ne vizsgáljunk metszést olyan objektumokra, amik biztosan távolabbi metszéspontot adnak, mint a már megtalált!
Befoglaló keretek Térfelosztó módszerek Metszésvizsgálat gyorsítása Az algoritmus sebessége leginkább az intersect függvény sebességétől függ. Hogyan gyorsíthatnánk ezt? Ne vizsgáljunk metszést olyan objektumokra, amiket biztosan nem metsz a sugár! Ne vizsgáljunk metszést olyan objektumokra, amik biztosan távolabbi metszéspontot adnak, mint a már megtalált!
Befoglaló keretek Térfelosztó módszerek Metszésvizsgálat gyorsítása Az algoritmus sebessége leginkább az intersect függvény sebességétől függ. Hogyan gyorsíthatnánk ezt? Ne vizsgáljunk metszést olyan objektumokra, amiket biztosan nem metsz a sugár! Ne vizsgáljunk metszést olyan objektumokra, amik biztosan távolabbi metszéspontot adnak, mint a már megtalált!
Befoglaló keretek Térfelosztó módszerek Befoglaló keretek Minden objektumot vegyünk körbe valamilyen kerettel amivel gyorsan lehet metszést számolni. Ha egy sugár metszi az objektumot, akkor metsze biztosan a keretet is! Fordítva legyen minél nagyobb a valószínűsége! Befoglaló gömb: másodfokú egyenlet megoldás. Befoglaló doboz: élei a tengelyekkel párhuzamosak, Cohen-Sutherland szakaszvágó algoritmussal gyorsan számítható.
Befoglaló keretek Térfelosztó módszerek Befoglaló keretek Minden objektumot vegyünk körbe valamilyen kerettel amivel gyorsan lehet metszést számolni. Ha egy sugár metszi az objektumot, akkor metsze biztosan a keretet is! Fordítva legyen minél nagyobb a valószínűsége! Befoglaló gömb: másodfokú egyenlet megoldás. Befoglaló doboz: élei a tengelyekkel párhuzamosak, Cohen-Sutherland szakaszvágó algoritmussal gyorsan számítható.
Befoglaló keretek Térfelosztó módszerek Befoglaló keretek Minden objektumot vegyünk körbe valamilyen kerettel amivel gyorsan lehet metszést számolni. Ha egy sugár metszi az objektumot, akkor metsze biztosan a keretet is! Fordítva legyen minél nagyobb a valószínűsége! Befoglaló gömb: másodfokú egyenlet megoldás. Befoglaló doboz: élei a tengelyekkel párhuzamosak, Cohen-Sutherland szakaszvágó algoritmussal gyorsan számítható.
Befoglaló keretek Térfelosztó módszerek Befoglaló keretek Minden objektumot vegyünk körbe valamilyen kerettel amivel gyorsan lehet metszést számolni. Ha egy sugár metszi az objektumot, akkor metsze biztosan a keretet is! Fordítva legyen minél nagyobb a valószínűsége! Befoglaló gömb: másodfokú egyenlet megoldás. Befoglaló doboz: élei a tengelyekkel párhuzamosak, Cohen-Sutherland szakaszvágó algoritmussal gyorsan számítható.
Befoglaló keretek Térfelosztó módszerek Befoglaló keretek Minden objektumot vegyünk körbe valamilyen kerettel amivel gyorsan lehet metszést számolni. Ha egy sugár metszi az objektumot, akkor metsze biztosan a keretet is! Fordítva legyen minél nagyobb a valószínűsége! Befoglaló gömb: másodfokú egyenlet megoldás. Befoglaló doboz: élei a tengelyekkel párhuzamosak, Cohen-Sutherland szakaszvágó algoritmussal gyorsan számítható.
Befoglaló keretek Térfelosztó módszerek
Befoglaló keretek Térfelosztó módszerek
Befoglaló keretek Térfelosztó módszerek Hierachikus befoglaló keretek A kisebb kereteket nagyobb keretekbe fogjuk össze. Fa struktúrát kapunk. Egy részfát csak akkor kell kiértékelni, ha a gyökérrel van metszés.
Befoglaló keretek Térfelosztó módszerek
Befoglaló keretek Térfelosztó módszerek
Befoglaló keretek Térfelosztó módszerek
Befoglaló keretek Térfelosztó módszerek Szabályos felosztás Egy szabályos 3D ráccsal lefedjük az egész színteret. Előfeldolgozás: minden cellához feljegyezzük a beletartozó objektumokat. Használat: csak azokra végzünk metszésszámítást, amik adott cellában benne vannak. Előnye: A vizsgálandó cellák gyorsan számíthatók szakazrajzoló algoritmussal. Hátránya: Feleslegesen sok cella nagyrészük üres teret fed le.
Befoglaló keretek Térfelosztó módszerek Szabályos felosztás Egy szabályos 3D ráccsal lefedjük az egész színteret. Előfeldolgozás: minden cellához feljegyezzük a beletartozó objektumokat. Használat: csak azokra végzünk metszésszámítást, amik adott cellában benne vannak. Előnye: A vizsgálandó cellák gyorsan számíthatók szakazrajzoló algoritmussal. Hátránya: Feleslegesen sok cella nagyrészük üres teret fed le.
Befoglaló keretek Térfelosztó módszerek Szabályos felosztás Egy szabályos 3D ráccsal lefedjük az egész színteret. Előfeldolgozás: minden cellához feljegyezzük a beletartozó objektumokat. Használat: csak azokra végzünk metszésszámítást, amik adott cellában benne vannak. Előnye: A vizsgálandó cellák gyorsan számíthatók szakazrajzoló algoritmussal. Hátránya: Feleslegesen sok cella nagyrészük üres teret fed le.
Befoglaló keretek Térfelosztó módszerek Szabályos felosztás Egy szabályos 3D ráccsal lefedjük az egész színteret. Előfeldolgozás: minden cellához feljegyezzük a beletartozó objektumokat. Használat: csak azokra végzünk metszésszámítást, amik adott cellában benne vannak. Előnye: A vizsgálandó cellák gyorsan számíthatók szakazrajzoló algoritmussal. Hátránya: Feleslegesen sok cella nagyrészük üres teret fed le.
Befoglaló keretek Térfelosztó módszerek Szabályos felosztás Egy szabályos 3D ráccsal lefedjük az egész színteret. Előfeldolgozás: minden cellához feljegyezzük a beletartozó objektumokat. Használat: csak azokra végzünk metszésszámítást, amik adott cellában benne vannak. Előnye: A vizsgálandó cellák gyorsan számíthatók szakazrajzoló algoritmussal. Hátránya: Feleslegesen sok cella nagyrészük üres teret fed le.
Befoglaló keretek Térfelosztó módszerek Oktális fa Fa gyökere: a teljes színteret magában foglaló tengelyekkel párhuzamos élű befoglaló doboz (AABB) Vágjuk ezt nyolc egyenlő részre! Minden új dobozra: ha elég sok objektum van benne, akkor tovább osztjuk, különben megállunk. Előny: az üres részeket nem osztjuk tovább feleslegesen. Hátrány: bonyolultabb bejárás.
Befoglaló keretek Térfelosztó módszerek Oktális fa Fa gyökere: a teljes színteret magában foglaló tengelyekkel párhuzamos élű befoglaló doboz (AABB) Vágjuk ezt nyolc egyenlő részre! Minden új dobozra: ha elég sok objektum van benne, akkor tovább osztjuk, különben megállunk. Előny: az üres részeket nem osztjuk tovább feleslegesen. Hátrány: bonyolultabb bejárás.
Befoglaló keretek Térfelosztó módszerek Oktális fa Fa gyökere: a teljes színteret magában foglaló tengelyekkel párhuzamos élű befoglaló doboz (AABB) Vágjuk ezt nyolc egyenlő részre! Minden új dobozra: ha elég sok objektum van benne, akkor tovább osztjuk, különben megállunk. Előny: az üres részeket nem osztjuk tovább feleslegesen. Hátrány: bonyolultabb bejárás.
Befoglaló keretek Térfelosztó módszerek Oktális fa Fa gyökere: a teljes színteret magában foglaló tengelyekkel párhuzamos élű befoglaló doboz (AABB) Vágjuk ezt nyolc egyenlő részre! Minden új dobozra: ha elég sok objektum van benne, akkor tovább osztjuk, különben megállunk. Előny: az üres részeket nem osztjuk tovább feleslegesen. Hátrány: bonyolultabb bejárás.
Befoglaló keretek Térfelosztó módszerek Oktális fa Fa gyökere: a teljes színteret magában foglaló tengelyekkel párhuzamos élű befoglaló doboz (AABB) Vágjuk ezt nyolc egyenlő részre! Minden új dobozra: ha elég sok objektum van benne, akkor tovább osztjuk, különben megállunk. Előny: az üres részeket nem osztjuk tovább feleslegesen. Hátrány: bonyolultabb bejárás.
Befoglaló keretek Térfelosztó módszerek
Befoglaló keretek Térfelosztó módszerek
Befoglaló keretek Térfelosztó módszerek
Befoglaló keretek Térfelosztó módszerek kd-fa Probléma az oktális fával: mindig középen és minden sík mentén vág nem veszi figyelembe az objektumokat. Oktális fa: keresési idő fa magasága. DE! az oktális fa kiegyensúlyozatlan. kd-fa: minden lépésben egyetlen síkkal vágunk, ami egy tengelyre merőleges. Sorrend: X, Y, Z, X, Y, Z,... Felező sík elhelyezése: térbeli középvonal módszer test középvonal módszer költség modell alapú módszer
Befoglaló keretek Térfelosztó módszerek kd-fa Probléma az oktális fával: mindig középen és minden sík mentén vág nem veszi figyelembe az objektumokat. Oktális fa: keresési idő fa magasága. DE! az oktális fa kiegyensúlyozatlan. kd-fa: minden lépésben egyetlen síkkal vágunk, ami egy tengelyre merőleges. Sorrend: X, Y, Z, X, Y, Z,... Felező sík elhelyezése: térbeli középvonal módszer test középvonal módszer költség modell alapú módszer
Befoglaló keretek Térfelosztó módszerek kd-fa Probléma az oktális fával: mindig középen és minden sík mentén vág nem veszi figyelembe az objektumokat. Oktális fa: keresési idő fa magasága. DE! az oktális fa kiegyensúlyozatlan. kd-fa: minden lépésben egyetlen síkkal vágunk, ami egy tengelyre merőleges. Sorrend: X, Y, Z, X, Y, Z,... Felező sík elhelyezése: térbeli középvonal módszer test középvonal módszer költség modell alapú módszer
Befoglaló keretek Térfelosztó módszerek kd-fa Probléma az oktális fával: mindig középen és minden sík mentén vág nem veszi figyelembe az objektumokat. Oktális fa: keresési idő fa magasága. DE! az oktális fa kiegyensúlyozatlan. kd-fa: minden lépésben egyetlen síkkal vágunk, ami egy tengelyre merőleges. Sorrend: X, Y, Z, X, Y, Z,... Felező sík elhelyezése: térbeli középvonal módszer test középvonal módszer költség modell alapú módszer
Tartalom Sugárkövetés Leírás Előnyök és hátrányok 1 Sugárkövetés 2 3 Leírás Előnyök és hátrányok
Leírás Előnyök és hátrányok A sugárkövetés kifordítása : a fényforrásokból fotonokat indítünk, és azok útját követjük. Addig haldunk, amíg már nem ütközhet semmivel, vagy teljesen elnyelődik, vagy eltalálja a vetítő ernyőt gyakorlatilag egy pixelt.
Leírás Előnyök és hátrányok A sugárkövetés kifordítása : a fényforrásokból fotonokat indítünk, és azok útját követjük. Addig haldunk, amíg már nem ütközhet semmivel, vagy teljesen elnyelődik, vagy eltalálja a vetítő ernyőt gyakorlatilag egy pixelt.
Leírás Előnyök és hátrányok Előnyök és hátrányok Előnye Globális illumináció és radiózitás ingyen. Kausztikus hatások automatikusan adódnak. Sub-surface scattering-et egyszerű megvalósítani. Egyszerű. Jól párhuzamosítható. Hátránya Lasssssú! Egyetlen kép kiszámítása napokig tarthat!
Leírás Előnyök és hátrányok Előnyök és hátrányok Előnye Globális illumináció és radiózitás ingyen. Kausztikus hatások automatikusan adódnak. Sub-surface scattering-et egyszerű megvalósítani. Egyszerű. Jól párhuzamosítható. Hátránya Lasssssú! Egyetlen kép kiszámítása napokig tarthat!