Máté: Számítógépes grafika alapjai

Hasonló dokumentumok
Máté: Számítógépes grafika alapjai

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

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

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

Máté: Számítógépes grafika alapjai

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?

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

Látható felszín algoritmusok

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

Számítógépes Grafika mintafeladatok

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

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

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

Információ megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter

Máté: Számítógépes grafika alapjai

Információ megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter

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

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

= Y y 0. = Z z 0. u 1. = Z z 1 z 2 z 1. = Y y 1 y 2 y 1

Területi primitívek: Zárt görbék által határolt területek (pl. kör, ellipszis, poligon) b) Minden belső pont kirajzolásával (kitöltött)

Az egyenes és a sík analitikus geometriája

Számítógépes grafika. XIV. rész

9. Írjuk fel annak a síknak az egyenletét, amely átmegy az M 0(1, 2, 3) ponton és. egyenessel;

Számítógépes Grafika mintafeladatok

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

Modellezési transzformáció: [r lokális,1] T M = [r világ,1] Nézeti transzformáció: [r világ,1] T v = [r képernyo,1]

2014/2015. tavaszi félév

Transzformációk. Szécsi László

Koordináta-geometria feladatgyűjtemény

3D koordináta-rendszerek

Területi primitívek: Zárt görbék által határolt területek (pl. kör, ellipszis, poligon)

Területi primitívek: Zárt görbék által határolt területek (pl. kör, ellipszis, poligon)

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

Analitikus térgeometria

Tartalom. Tartalom. Hajder Levente 2018/2019. I. félév

Transzformációk. Grafikus játékok fejlesztése Szécsi László t05-transform

Koordinátageometria. M veletek vektorokkal grakusan. Szent István Egyetem Gépészmérnöki Kar Matematika Tanszék 1

A bemutatott példa a Phong modell egy egyszerűsített változatát alkalmazza a Blinn-Phong-féle megközelítést

Koordináta-geometria feladatgyűjtemény (A feladatok megoldásai a dokumentum végén találhatók)

Elengedhetetlen a játékokban, mozi produkciós eszközökben Nélküle kvantum hatás lép fel. Az objektumok áthaladnak a többi objektumon

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

Számítási feladatok a Számítógépi geometria órához

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

Transzformációk, amelyek n-dimenziós objektumokat kisebb dimenziós terekbe visznek át. Pl. 3D 2D

Lin.Alg.Zh.1 feladatok

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

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

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

Tartalom. Hajder Levente 2016/2017. I. félév

Számítógépes Grafika SZIE YMÉK

Hajder Levente 2016/2017.

Koordinátageometriai gyakorló feladatok I ( vektorok )

Nagy András. Feladatok a koordináta-geometria, egyenesek témaköréhez 11. osztály 2010.

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

Klár Gergely

Koordináta-geometria II.

Robotika. Kinematika. Magyar Attila

Lin.Alg.Zh.1 feladatok

VIK A2 Matematika - BOSCH, Hatvan, 3. Gyakorlati anyag. Mátrix rangja

Vektorok és koordinátageometria

Skaláris szorzat: a b cos, ahol α a két vektor által bezárt szög.

OpenGL és a mátrixok

Geometria 1 normál szint

Számítógépes geometria (mester kurzus) III

9. előadás. Térbeli koordinátageometria

Matematika 11 Koordináta geometria. matematika és fizika szakos középiskolai tanár. > o < szeptember 27.

1. Fénysugár követő és festő algoritmus (3p) fénysugárkövető módszer Festő algoritmus: 2. Fények, fény, fény az opengl-ben, anyagtulajdonság (12pt)

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

Irrlicht 3D. Programfejlesztés az OpenGL segítségével (2. rész) Fejlesztõi sarok

Megoldás: Mindkét állítás hamis! Indoklás: a) Azonos alapú hatványokat úgy szorzunk, hogy a kitevőket összeadjuk. Tehát: a 3 * a 4 = a 3+4 = a 7

Kocka perspektivikus ábrázolása. Bevezetés

SDL_Universe SDL, C++, 3D szoftver renderelő

egyenletrendszert. Az egyenlő együtthatók módszerét alkalmazhatjuk. sin 2 x = 1 és cosy = 0.

Tárgy. Forgóasztal. Lézer. Kamera 3D REKONSTRUKCIÓ LÉZERES LETAPOGATÁSSAL

A tér lineáris leképezései síkra

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

1. Bevezetés 1. Köszönetnyilvánítás A számítógépes játékfejlesztésről 3

Koordináta-geometria feladatok (emelt szint)

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

Térbeli transzformációk, a tér leképezése síkra

Síklapú testek. Gúlák, hasábok Metszésük egyenessel, síkkal

Helyvektorok, műveletek, vektorok a koordináta-rendszerben

Tartalom. Tartalom. Hajder Levente Szakasz raszterizálása. 2017/2018. II. félév. Poligon raszterizáció.

Lineáris leképezések. Wettl Ferenc március 9. Wettl Ferenc Lineáris leképezések március 9. 1 / 31

Regresszió számítás. Tartalomjegyzék: GeoEasy V2.05+ Geodéziai Kommunikációs Program

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

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

Segédlet: Főfeszültségek meghatározása Mohr-féle feszültségi körök alkalmazásával

Koordináta geometria III.

Realisztikus színtér 1 / 59

VEKTOROK. 1. B Legyen a( 3; 2; 4), b( 2; 1; 2), c(3; 4; 5), d(8; 5; 7). (a) 2a 4c + 6d [(30; 10; 30)]

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

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

Vektorgeometria (2) First Prev Next Last Go Back Full Screen Close Quit

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.

Feladatsor A differenciálgeometria alapja c. kurzus gyakorlatához

Analitikus térgeometria

λ 1 u 1 + λ 2 v 1 + λ 3 w 1 = 0 λ 1 u 2 + λ 2 v 2 + λ 3 w 2 = 0 λ 1 u 3 + λ 2 v 3 + λ 3 w 3 = 0

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

Koordinátageometria Megoldások

Átírás:

Tükröző (specular) visszaverődés Tükröző (specular) visszaverődés Fényes felületekről (tükörről) Phong-féle modell: I λ = I aλ k a + f att I pλ [ k d cos θ + W (θ) cos n α ] n: a tükrözési visszaverődés kitevője (csillogás) (tompa) 1 n 1 (éles fény) W(θ): a tükrözötten visszaverődő fény hányada, lehet konstans, k s ( k s 1), 1 2 Tükröző (specular) visszaverődés Megvilágítási modellek (példa) Phong-féle modell: A tárgy anyagát is figyelembe véve: I λ = I aλ k a + f att I pλ [k d (N L) + k s O sλ (R V) n ] Több fényforrásra: f I λ = I aλ k a + i f atti I pλi [k d (N L i )+ k s O sλ (R i V) n ] szórt diffúz tükröző, csillogás = 2 szórt + diffúz + tükröző 3 4 Poligonokból álló felületek fényességének meghatározása. Minden pontban kiszámítjuk a megvilágítási egyenlet szerinti intenzitást (nagyon drága módszer) Poligonokból álló felületek fényességének meghatározása 1. Konstans fényesség Az egész poligon ugyanolyan intenzitású. Jó, ha: - végtelen távoli fényforrás (N, L konstans) - végtelen távoli megfigyelő ( N, V konstans) - poligon oldalú felület 5 6 1_bevez 1

Poligonokból álló felületek fényességének meghatározása 2. Interpolált fényesség Poligonokból álló felületek fényességének meghatározása 3. Poligon-hálózat fényessége Az intenzitást a csúcsokban számított intenzitásból kapjuk interpolációval Az egyes poligonok konstans fényessége csak kiemelné a poligonok közötti éleket 7 8 Érzékelt fényesség Mach-féle hatás Tényleges megvilágítás Az intenzitás változását eltúlozva érezzük ott, ahol az intenzitás folytonossága megszűnik. Poligonokból álló felületek fényességének meghatározása 3. Poligon-hálózat fényessége Mach-hatás 9 Megoldás: minden poligon fényességét változó intenzitásúnak generáljuk 1 Gouraud-féle fényesség Gouraud-féle fényesség 1. A poligonok normálisait ismerve határozzuk meg a csúcspontok normálisait (pl. az ott érintkező poligonok normálisainak átlagaként) 2. Számoljuk ki az intenzitásokat a csúcspontokban 3. Az élek mentén lineáris interpolációval számoljuk az intenzitást 4. Az élek között (a pásztázó vonalak mentén) lineáris interpolációval számoljuk az intenzitást 11 12 1_bevez 2

Phong-féle fényesség Phong-féle fényesség: 1. Számoljuk ki a normálvektorokat a csúcspontokban, 2. Interpolációval a csúcspontok között az élek mentén a normálvektorokat, 3. Interpolációval az élek között, 4. Intenzitás számítása Sokszor jobb, mint a Gouraud-féle módszer Gouraud- és Phong-féle fényesség Gouraud Phong 13 Konstans Gouraud Phong 14 Gömb közelítése szabályos dodekaéderrel n=1 Példák Példák Gömbszelet felszín közelítése poligonokkal Phong n=8 15 Gouraud 16 Példák Fényforrás (OpenGL) szórt Phong (szórt + diffúz) Világítási komponensek RGBA értékeivel definiálható: szórt (GL_AMBIENT) diffúz (GL_DIFFUSE): a megvilágított felületről minden irányban azonos a visszaverődés tükröző (GL_SPECULAR): fényes felületről - csillogás Phong (szórt + diffúz + tükröző) 17 18 1_bevez 3

Fényforrás (OpenGL) A specifikálható fényforrások száma: max. 8 pozícionált: az objektum közelében van irányított: végtelen távoli a pozícióvektor negyedik koordinátája. A fényforrás fénysugara: szűk fókuszált széles Fényforrás (OpenGL) void gllight{if}(enum light, enum pname, T param); void gllight{if}v(enum light, enum pname, T *param); light: kijelöli a fényforrást (GL_LIGHT,..., GL_LIGHT7), pname: a beállítandó tulajdonság, param: a beállítandó tulajdonság értéke. 19 2 Fényforrás (OpenGL) pname alapértelmezés Jelentés GL_AMBIENT (.,.,., 1.) Szórt fény RGBA intenzitása GL_DIFFUSE (1., 1., 1., 1.) Diffúz fény RGBA intenzitása GL_SPECULAR (1., 1., 1., 1.) Tükröző fény RGBA intenzitása GL_POSITION (.,., 1.,.) A fényforrás (x, y, z, w) pozíciója GL_SPOT_DIRECTION (.,., -1.) A fény (x, y, z) iránya GL_SPOT_EXPONENT. Reflektorfény exponens GL_SPOT_CUTOFF 18. Reflektorfény kúpszöge GL_CONSTANT_ATTENUATION 1. Konstans elnyelő faktor GL_LINEAR_ATTENUATION. Lineáris elnyelő faktor GL_QUADRATIC_ATTENUATION, Négyzetes elnyelő faktor 21 Fényforrás (OpenGL) A fényforrás távolságával a fény intenzitása gyengül OpenGL-ben a gyengítő faktor: f att = 1/(e k + e l VP + e n VP 2 ), e k : konstans gyengítő faktor GL_CONSTANT_ATTENUATION, e l : lineáris gyengítő faktor GL_LINEAR_ATTENUATION, e n : négyzetes gyengítő faktor GL_QUADRATIC_ATTENUATION, VP : a tárgy és a fényforrás távolsága 22 Reflektorszerű fényforrás (OpenGL) Világítási modell (OpenGL) void gllightmodel{if}(enum pname, T param); void gllightmodel{if}v(enum pname, T *param); pname: a világítási i modell tulajdonság kijelölése: Középvonal: Intenzitás eloszlás: Kúpszög: GL_SPOT_DIRECTION GL_SPOT_EXPONENT GL_SPOT_CUTOFF 23 GL_LIGHT_MODEL_AMBIENT a szórt megvilágítás értékeinek megadása Alapértelmezés: RGBA = (.2,.2,.2, 1.) 24 1_bevez 4

Világítási modell (OpenGL) GL_LIGHT_MODEL_TWO_SIDE: egy- vagy kétoldalas világítási számításokat kell alkalmazni a poligonoknál. Ha param=., akkor csak az első oldal világít, különben mindkettő GL_LIGHT_MODEL_LOCAL_VIEWER: hogyan kell kiszámítani a spekuláris (tükröző) fényvisszaverődés szögét Alapértelmezés:.: a z tengely irányából, más érték esetén a nézőpontból Objektumok fényvisszaverő tulajdonságai (OpenGL) Az objektumok tulajdonságai: szín komponensek (meghatározzák a fénykomponensek visszavert hányadát), fényvisszaverő képesség: szórt, diffúz és tükröző fény számára, az objektumok saját fénye, emissziós érték. 25 26 Szín: Objektumok fényvisszaverő tulajdonságai (OpenGL) void glcolormaterial(glenum face, Glenum mode); face: GL_FRONT, GL_BACK, GL_FRONT_AND_BACK Alapértelmezés: GL_FRONT_AND_BACK mode: GL_EMISSION, GL_AMBIENT, GL_SPECULAR, GL_DIFFUSE, GL_AMBIENT_AND_DIFFUSE Alapértelmezés: GL_AMBIENT_AND_DIFFUSE Objektumok fényvisszaverő tulajdonságai (OpenGL) void glmaterial{if}(enum face, enum pname, T param); void glmaterial{if}v(enum face, enum pname,t params); face: GL_FRONT, GL_BACK, GL_FRONT_AND_BACK pname: a specifikálandó paraméter neve, param(s): az érték, vagy értékek, amelyre a pname által jelzett paramétert be kell állítani. 27 28 Objektumok fényvisszaverő tulajdonságai (OpenGL) pname Alapértelmezés Jelentés GL_AMBIENT (.2,.2,.2, 1.) szórt RGBA fényvisszaverés GL_DIFFUSE (.8,.8,.8, 1.) diffúz RGBA fényvisszaverés GL_SPECULAR (.,.,., 1.) tükröző RGBA fényvisszaverés GL_EMISSION (.,.,., 1.) emissziós fény intenzitás GL_SHININESS tükröző exponens (csillogás) GL_AMBIENT_AND_DIFFUSE szórt és diffúz szín együtt GL_COLOR_INDEXES (, 1, 1) szórt, diffúz és tüktöző szín indexek 29 Feladat (OpenGL) Rajzoljuk meg egy kocka perspektivikus képét megvilágítással és a kocka saját színeivel! main-be: glutinitdisplaymode(glut_single GLUT_RGB GLUT_DEPTH); SetupRC-be: glenable(gl_depth_test); TEST); RenderScene-be: glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT); glenable(gl_depth_test); glmatrixmode(gl_projection); glloadidentity(); gluperspective(fovy, aspect, near, far); glulookat(ex,ey,ez, cx,cy,cz, ux,uy,uz); 3 1_bevez 5

Az árnyékolás általánosan ÁRNYÉKOLÁS Az árnyékolás általánosan Árnyék generálása pásztázó-vonal algoritmussal Kétmenetes árnyékolási algoritmus Árnyék tér Kétmenetes z-pufferes árnyékolási algoritmus Az árnyékolás általánosan Árnyék (Shedow) Algoritmus, amely meghatározza, hogy melyik felszín látható a fényforrásból nézve Általában bonyolult (sok mindentől függ, pl. a fényforrás méretétől) 31 32 Egyszerűsítés: Pontszerű fényforrásokra: I λ = I aλ k a + i S i f atti I pλi [ k d (N L i )+ k s O sλ (R i V) n ] Ahol S i = Az árnyékolás általánosan ha az i forrásból ez a pont nem látszik 1 különben. Csak poligon határú testekkel foglalkozunk egyetlen fényforrás esetén: egyszerű árnyék 33 1. (Blinn 1988) Egyetlen tárgy árnyéka sík felszínen Pl. pontszerű fényforrás esetén az árnyék a vízszintes síklapon (z S = ) perspektív vetítéssel ' M per 1 = 1 1 d 1 P L S 34 Tetszőleges helyzetű síklap: transzformáció, vetítés Pl.: párhuzamos megvilágításnál: síklap z = x = x s s p y = y p z x / z p z y / z l p l l l L(x l, y l, z l ) P(x p, y p, z p ) S(x s, y s, z s ) M par 1 = xl zl y l 1 z l 1 35 Árnyékolás: poligon projekció vetített pásztázás z-buffer (tárgy) poligon 36 1_bevez 6

2. Árnyék generálás pásztázó-vonal algoritmussal (APPEL 1968, BOUKNIGHT, KELLEY 197) A látható felszín meghatározására szolgáló pásztázóvonal algoritmus kibővítése árnyék generálással 37 Árnyék generálása pásztázó-vonal algoritmussal A B poligonon az A poligon vetülete (A' poligon) adja meg az árnyékot Tehát a pásztázó vonal és A' metszéspontjai határozzák meg az árnyék határait Az árnyék ki-be kapcsolása ugyanúgy történik, mint a látható felszín meghatározásánál Sok számolás: n poligon esetén n(n-1) vetület számítása 38 Árnyék generálása pásztázó-vonal algoritmussal Adatstruktúra: látható felszín, árnyék Algoritmus: Pásztázás - a látható szakaszokra megvizsgáljuk, hogy árnyékban vannak-e 39 Árnyék generálása pásztázó-vonal algoritmussal Esetek: Ha az aktuális pásztázandó szakaszhoz nincs árnyék poligon, akkor normális pásztázás, különben ha az árnyék poligon nem takarja a pásztázó szakaszt, akkor normális pásztázás, ha teljesen takarja, akkor árnyékolás, ha részben takarja, akkor a pásztázó szakaszt részekre osztjuk, és a részekre megismételjük az eljárást. 4 3. Kétmenetes árnyékolási algoritmus (ATHERON, WEILER, GREENBERG 1978) Észrevétel:csak azokat a poligonokat kell árnyékolni, amelyek - láthatók a nézőpontból és - nem láthatók a fényforrásból 41 Kétmenetes árnyékolási algoritmus 1. lépés: A fényforrásból látható felszín meghatározása (a megvilágított poligonok listája) a) transzformáció: vetítés a fényforrásból b) látható felszín meghatározása c) vissza transzformáció 2. lépés: a poligonok adatbázisának összefésülése (mi van árnyékban és mi nincs) 3. lépés: a nem látható felszínek eltávolítása (a látható poligonok listája) 4. lépés: megjelenítés pl. pásztázó vonal algoritmussal 42 1_bevez 7

Kétmenetes árnyékolási algoritmus Kétmenetes árnyékolási algoritmus 43 Előnye: jól használható animációra, ha csak a nézőpont változik 44 4. Kétmenetes z-pufferes árnyékolási algoritmus 1. lépés: számítsuk ki a z-puffert a fényforrásból nézve 2. lépés: ha egy pont látható (a megfigyelő helyéről), akkor transzformáljuk a fényforrás-középpontú vetítési rendszerbe, ahol a z-puffer tartalmából eldönthető, hogy árnyékban van-e a transzformált pont távolabb van-e a fényforrástól, mint a z-pufferhez tartozó pont? 45 5. Árnyék tér (Shadow Volumes) (CROW 1977) A tárgy árnyék tere: a térnek az a része, amit a tárgy eltakar a fényforrás elől. Poligonok és árnyék poligonok határolják. A fényforrás helyéből és a tárgy kontúrvonalaiból meghatározható az árnyék tér. Az árnyék poligonokat nem kell megjeleníteni, de felhasználhatók az árnyékoláshoz. 46 Árnyék tér Az árnyék poligonok síkjának normálisa mutasson az árnyék térből kifelé A nézőpont felé néző árnyék poligon: s(p)=s(p)+1 Hátra néző árnyék poligon: s(p)=s(p)-1 Árnyékszám a P pontban: s(p) P árnyékban van s(p) > 47 Árnyék tér Példák: Árnyékban van-e A, B és C? V a megfigyelő VA : + 1 s(a) = 1 VA : 1-1 + 1 s(a) = 1 VB : + 1 1 s(b) = VB : 1 + 1-1 s(b) = 1 VC : + 1 + 1 s(c) = 2 VC : 1-1 + 1 + 1 s(c) = 2 48 1_bevez 8

Általános sugárkövetés Sugárkövetés látható felszín meghatározására Általános sugárkövetés Módszer realisztikus képek előállítására. Alapelv: A képen látható felszíni pontok színe (fényessége) más felszíni pontokból kiinduló fénysugarak hatásának az eredménye Lehetséges hatások: Metszéspontok kiszámítása 49 5 Kövessük a fénysugár útját a nézőponttól kiindulva visszafelé: szem ablak pixel 51 Ha egy fénysugár találkozik egy tárggyal, akkor a tárgy felszínének az a pontja olyan színű lesz, amit a pont által kisugárzott, a pontból az adott irányban visszavert (diffúz és tükröző), valamint a ponton áthatolt fénysugarak együttesen határoznak meg. Ezeknek a fénysugaraknak a színét úgy határozhatjuk meg, hogy az útjukat ugyanígy követjük visszafelé (rekurzió) Rekurzió 3-4 mélységig 52 Rekurzió 2 illetve nagyobb mélységig 53 54 1_bevez 9

55 56 57 58 Sok geometriai számítás (metszéspontok, tartalmazás, ) Részei: - Látható felszín meghatározása - Direkt megvilágítás számolása - Globális megvilágítás számolása - Árnyék meghatározása... A sugarak követése független egymástól Parallel feldolgozás (transzputer) 59 6 1_bevez 1

Egyszerűsítési lehetőség: pl. Csak az egyszeres fényvisszaverődést vesszük figyelembe. Akkor csak a direkt megvilágítással kell számolnunk (a más tárgyakról visszavert fényt nem vesszük figyelembe) 61 Program: COV és az ablak kiválasztása; for minden pásztázó vonalra do for minden képpontra do begin fénysugár meghatározása; for minden tárgyra do if a tárgyat metszi a fénysugár és eddig ez az első metszéspont then jegyezzük meg a metszéspontot és a tárgyat; Az első metszésponthoz tartozó tárgy színének megfelelő lesz a képpont end; 62 Sugárkövetés látható felszín meghatározására 1. Visszafelé követjük a képzeletbeli fénysugár útját a megfigyelőtől a tárgyig Sugárkövetés látható felszín meghatározására 2.Megvizsgáljuk, hogy a poligon síkjával alkotott metszéspont a poligon belsejében van-e Párhuzamosan vetítünk pl. az xz síkra az y koordinátát elhagyjuk majd megnézzük, hogy P' a vetületben van-e 63 64 Sugárkövetés látható felszín meghatározására Tapasztalat: Sugárkövetésnél az idő 75-95%-a a metszéspontok kiszámításával telik el. Gyorsítási lehetőségek: - konstans kifejezések kiszámítása előre, - poligonok vetületének kiszámítása előre, - határoló testek használata, - tárgyak hierarchikus struktúrákba való rendezése, hogy minél kevesebb metszéspontot számoljunk. Metszéspontok kiszámítása A nézőpont (COV): (x,y,z ) A képpont közepe: (x 1,y 1,z 1 ) A sugár parametrikus egyenlete: x = x + t(x 1 -x ) = x + t Δ x y = y + t(y 1 -y ) = y + t Δ y z = z + t(z 1 -z ) = z + t Δ z 65 66 1_bevez 11

Metszéspontok kiszámítása Metszéspont poligonnal: Először meghatározzuk az egyenes és a poligon síkjának a metszéspontját. A sík egyenlete: Ax + By + Cz + D = A sík és az egyenes metszéspontjára: A(x + t Δ x) + B(y + t Δ y) + C(z + t Δ z) + D = t = Ax + By + Cz + D A Δ x + B Δ y + C Δ z Metszéspontok kiszámítása Metszéspont gömbbel: középpont: (a, b, c), sugár: r (x - a) 2 + (y - b) 2 + (z - c) 2 = r 2 (x + - 2 + + - 2 + + - 2 = 2 t Δ x a) (y t Δ y b) (z t Δ z c) r t-re nézve másodfokú egyenlet, 2,1, db megoldás Normális vektor az (x, y, z) metszéspontban: Ha A Δ x + B Δ y + C Δ z =, akkor az egyenes és a sík párhuzamos 67 x a y b r,, z c ( r ) 68 69 7 71 72 1_bevez 12

The Internet Ray Tracing Competition: http://www.irtc.org/ 73 1_bevez 13