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

Hasonló dokumentumok
Hajder Levente 2017/2018. II. félév

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

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

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

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

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

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?

Számítógépes Grafika mintafeladatok

Számítógépes Grafika mintafeladatok

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

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

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

Vektorok és koordinátageometria

10. Koordinátageometria

2014/2015. tavaszi félév

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

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

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

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

KOVÁCS BÉLA, MATEMATIKA I.

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

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

Koordinátageometria Megoldások

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)]

Analitikus térgeometria

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

Koordináta-geometria feladatgyűjtemény

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

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

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

Koordinátageometriai gyakorló feladatok I ( vektorok )

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.

Egyenes és sík. Wettl Ferenc szeptember 29. Wettl Ferenc () Egyenes és sík szeptember / 15

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

Koordináta-geometria feladatok (emelt szint)

Koordináta geometria III.

Érettségi feladatok Koordinátageometria_rendszerezve / 5

Érettségi feladatok: Koordináta-geometria 1/5

5 1 6 (2x3 + 4) 7. 4 ( ctg(4x + 2)) + c = 3 4 ctg(4x + 2) + c ] 12 (2x6 + 9) 20 ln(5x4 + 17) + c ch(8x) 20 ln 5x c = 11

Koordináta-geometria II.

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

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

Egyenes és sík. Wettl Ferenc Wettl Ferenc () Egyenes és sík / 16

Tartalom. Descartes-koordináták. Geometriai értelmezés. Pont. Egyenes. Klár Gergely 2010/2011. tavaszi félév

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

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

Függvények Megoldások

Lineáris algebra zárthelyi dolgozat javítókulcs, Informatika I márc.11. A csoport

Analitikus térgeometria

Lineáris algebra mérnököknek

λ 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

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

8. előadás. Kúpszeletek

KOORDINÁTA-GEOMETRIA

Egyenletek, egyenletrendszerek, egyenlőtlenségek Megoldások

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

, D(-1; 1). A B csúcs koordinátáit az y = + -. A trapéz BD

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

1. tétel. 1. Egy derékszögű háromszög egyik szöge 50, a szög melletti befogója 7 cm. Mekkora a háromszög átfogója? (4 pont)

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Paraméter

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Függvények

15. Koordinátageometria

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

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

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

Lin.Alg.Zh.1 feladatok

A kör. A kör egyenlete

Lin.Alg.Zh.1 feladatok

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

Vektorok összeadása, kivonása, szorzás számmal, koordináták

KOVÁCS BÉLA, MATEMATIKA II.

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Függvények

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

3 m ; a víz sodráé sec. Bizonyítsuk be, hogy a legnagyobb szöge os! α =. 4cos 2

1. A Hilbert féle axiómarendszer

Budapesti Műszaki Főiskola, Neumann János Informatikai Kar. Vektorok. Fodor János

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

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

Matematika (mesterképzés)

5. előadás. Skaláris szorzás

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Függvények

Koordinátageometria. , azaz ( ) a B halmazt pontosan azok a pontok alkotják, amelynek koordinátáira:

Exponenciális és logaritmusos kifejezések, egyenletek

Geometriai példatár 2.

= 7, a 3. = 7; x - 4y =-8; x + 2y = 10; x + y = 7. C-bôl induló szögfelezô: (-2; 3). PA + PB = PA 1. (8; -7), n(7; 8), 7x + 8y = 10, x = 0 & P 0;

Oktatási Hivatal. 1 pont. A feltételek alapján felírhatók az. összevonás után az. 1 pont

Síkbeli egyenesek. 2. Egy egyenes az x = 1 4t, y = 2 + t parméteres egyenletekkel adott. Határozzuk meg

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

15. Koordinátageometria

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

Klár Gergely

A keresett kör középpontja Ku ( ; v, ) a sugara r = 1. Az adott kör középpontjának koordinátái: K1( 4; 2)

Síkbeli egyenesek Egy egyenes az x = 1 4t, y = 2 + t parméteres egyenletekkel adott. Határozzuk meg

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK EMELT SZINT Koordinátageometria

Feladatok megoldásokkal a harmadik gyakorlathoz (érintési paraméterek, L Hospital szabály, elaszticitás) y = 1 + 2(x 1). y = 2x 1.

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

Geometria II gyakorlatok

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

Átírás:

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 vegyen fel ez a pixel? Nézzük meg, mi látszik onnan a világból és az alapján rendeljünk hozzá a pixelhez egy színt! 1 2

Sugár Minden pixelre: Indítsunk egy sugarat a színtérbe Minden objektumra a színtérben: Nézzük meg, hogy metszi-e a sugár az objektumot A legközelebbi metszett objektum színével színezzük ki a pixelt A sugárnak van egy p 0 kiindulási pontja és egy v iránya A parametrikus sugár: ahol t > 0 (félegyenes!). p(t) = p 0 + tv, t = 0?, t < 0? sugár kezdőpontja, sugár mögötti részek Sugár Kérdés Honnan indítsuk a sugarat? Milyen irányba küldjük a sugarat? Hogyan metszük el a sugarat akármivel?

1 2 A szempozicióból indítunk sugarakat minden pixel középpontján keresztül Most: középpontosan szeretnénk vetíteni egy szembe, a vetítési sík egy négyszögletes részét megfeleltetve a képernyőnek Szem/kamera tulajdonságok: szempozició (eye), egy pont amire néz (center), felfele irányt megadó vektor a világban (up), nyílásszög, amekkora szögtartományt lát (fovx, fovy). (vetítővászon mérete. Most legyen adott: 2 tan ( fovx 2 ) 2 tan ( fovy 2 ) nagyságú ) Ezek segítségvel fogjuk megadni az (i, j) pixel világbeli koordinátáit Keressük a kamera saját u, v, w (jobbkezes!) koordinátarendszerét! 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 A sugár egyenlete Legyen p az i, j pixel középpontja, a vetítősík egységnyi távolságra a nézőponttól! Ekkor p(i, j) = eye + (αu + βv w). Ahol ( fovx α = tan 2 ( ) fovy β = tan 2 ) i width/2 width/2, height/2 j. hight/2 A sugár egy félegyenes, amit kezdőpontjával és irányvektorával adhatunk meg. Legyen p 0 a sugár kezdőpontja, v pedig az irányvektora, ekkor p(t) = p 0 + tv, t 0 megadja a sugár összes pontját. Most a sugarak kezdőpontját az előbbieknek megfelelően számoljuk, azaz p 0 = p(i, j) A sugár irányvektora pedig v = p(i,j) eye p(i,j) eye 1 A sugárkövető programok futásidejük döntő részében metszéseket fognak végezni Nézzük meg néhány egyszerű geometriai elemmel vett metszetét a sugárnak A sugarunk mindig a fent is látott p(t) = p 0 + tv alakú, ahol feltesszük a továbbiakban, hogy v = 1 2

: parametrikus sugár-implicit felület Legyen adva egy f (x) = 0 implicit egyenlet, ami meghatározza a metszeni kívánt felületünket (x R 3 ) A sugarunk egyenlete t [0, )-re meghatároz egy pontot a térben tegyük be ezt a képletet az implicit egyenletbe! Tehát a következő egyenletet kell megoldanunk t-re: f (p(t)) = 0 A kapott t-től függően a következő esetek állhatnak fenn: Ha t > 0, akkor a sugarunk előtt van a felület és metszi Ha t = 0 a sugár a felületről indul Ha t < 0, akkor a sugár mögött van a felület és metszi a sugár egyenese a felületet (de nekünk t > 0 kell!) : parametrikus sugár-parametrikus felület Legyen adva egy r(u, v) = [r x (u, v), r y (u, v), r z (u, v)] T parametrikus felület Kell: találni egy olyan t sugárparamétert, amihez létezik (u, v), hogy r(t) = r(u, v) Ez három ismeretlenes (t, u, v), három egyenletes (x, y, z koordinátánként egy) egyenletrendszer A t ugyanúgy ellenőrizendő, mint előbb, de most az (u, v)-re is figyeljünk, hogy a felületünk paramétertartományának megengedett részén van-e (általában (u, v) [0, 1] 2 kell)! 1 2 Egyenes és implicit sík metszéspontja Síkot megadhatunk implicit alakban: Ax + By + Cz + D = 0 A x 0 x p(t) = p 0 + tv = y 0 + t y z 0 z sugár egyenese metszi a síkot, ha A(x 0 + tx) + B(y 0 + ty) + C(z 0 + tz) + D = 0

Egyenes és implicit sík metszéspontja Egyenes és normálvektoros sík metszéspontja Ezt t-re átrendezve adódik t(ax + By + Cz) + x 0 + y 0 + z 0 + D = 0 t = x 0 + y 0 + z 0 + D Ax + By + Cz Látható a sík a nézőpontunkból, ha t > 0 Legyen q 0 a sík egy pontja, n a normálvektora, Legyen p 0 ez egyenes egy pontja, v az irányvektora. Az egyenes egyenlete: p(t) = p 0 + tv A sík egyenlete: n, q q 0 = 0 - minden q pontja a síknak kielégíti ezt az egyenletet Egyenes és normálvektoros sík metszéspontja Behelyettesítve p(t)-t a q helyére: n, p 0 + tv q 0 = 0, n, p 0 + t n, v n, q 0 = 0, t = n, q 0 n, p 0 n, v = n, q 0 p 0, n, v ha n, v 0. A sugár metszi a síkot, ha: t > 0. Ha n, v = 0, akkor az egyenes párhuzamos a síkkal, és így vagy nincs metszéspontjuk, vagy az egyenes a síkon fut Egyenes és parametrikus sík metszéspontja Síkot megadhatunk egy q pontjával és i, j kifeszítő vektorokkal is: s(u, v) = q + ui + vj Metszéspont a p(t) = p 0 + tv sugár egyenesével: keressük t és u, v-t úgy, hogy Beírva a képleteket adódik Átrendezve kapjuk, hogy p(t) = s(u, v) p 0 + tv = q + ui + vj p 0 q = tv + ui + vj

Egyenes és parametrikus sík metszéspontja Ez három ismeretlenes, három lineáris egyenletből álló egyenletrendszer, ami megoldható, ha v, i, j lineárisan nem összefüggő Mátrix alakban: p 0x q x v x i x j x t p 0y q y = v y i y j y u p 0z q z v z i z j z v Látjuk a síkot, ha t > 0 (most u, v R a felület paramétertartománya, ez teljesülni fog) 1 2 Háromszög megadása Háromszög és egyenes metszéspontja Egyértelműen megadható három csúcsával. Ha a, b, c a háromszög csúcsai, akkor a hozzátartozó sík pont-normálvektoros implicit megadásához a sík egy pontja a, b, c bármelyike normálvektora n = (c a) (b a) (c a) (b a), ahol a vektoriális szorzást jelöli, és ekkor n egységnyi hosszúságú. Először számítsuk ki az egyenes és a háromszög síkjának metszéspontját, ez legyen p (már ha létezik). Legyenek λ 1, λ 2, λ 3 a p pont háromszögön belüli baricentrikus koordinátái, úgy hogy p = λ 1 a + λ 2 b + λ 3 c p Akkor, és csak akkor van a -ön belül, ha 0 λ 1, λ 2, λ 3 1.

Pont a háromszögön vizsgálat Tudjuk, hogy p = [x, y, z] T = λ 1 a + λ 2 b + λ 3 c. Ekkor x =λ 1 a x + λ 2 b x + λ 3 c x y =λ 1 a y + λ 2 b y + λ 3 c y z =λ 1 a z + λ 2 b z + λ 3 c z, ill. λ 1 + λ 2 + λ 3 = 1 λ 3 = 1 λ 1 λ 2 Pont a háromszögön vizsgálat Tudjuk, hogy p = [x, y, z] T = λ 1 a + λ 2 b + λ 3 c. Ekkor x =λ 1 a x + λ 2 b x + λ 3 c x y =λ 1 a y + λ 2 b y + λ 3 c y z =λ 1 a z + λ 2 b z + λ 3 c z, ill. λ 1 + λ 2 + λ 3 = 1 λ 3 = 1 λ 1 λ 2 A gyorsabb számolásért vegyük a fentinek egy síkra vett vetületét Pont a háromszögön vizsgálat Tudjuk, hogy p = [x, y, z] T = λ 1 a + λ 2 b + λ 3 c. Ekkor x =λ 1 a x + λ 2 b x + λ 3 c x y =λ 1 a y + λ 2 b y + λ 3 c y z =λ 1 a z + λ 2 b z + λ 3 c z, ill. λ 1 + λ 2 + λ 3 = 1 λ 3 = 1 λ 1 λ 2 A gyorsabb számolásért vegyük a fentinek egy síkra vett vetületét A koordinátasíkok közül (XY, XZ vagy YZ) arra vegyük a háromszög 2D vetületét, amelyre a háromszög vetületének területe a legnagyobb! a háromszög és a sík normálisa leginkább egyállású Pont a háromszögön vizsgálat Tudjuk, hogy p = [x, y, z] T = λ 1 a + λ 2 b + λ 3 c. Ekkor x =λ 1 a x + λ 2 b x + λ 3 c x y =λ 1 a y + λ 2 b y + λ 3 c y z =λ 1 a z + λ 2 b z + λ 3 c z, ill. λ 1 + λ 2 + λ 3 = 1 λ 3 = 1 λ 1 λ 2 A gyorsabb számolásért vegyük a fentinek egy síkra vett vetületét A koordinátasíkok közül (XY, XZ vagy YZ) arra vegyük a háromszög 2D vetületét, amelyre a háromszög vetületének területe a legnagyobb! a háromszög és a sík normálisa leginkább egyállású A vetülethez egyszerűen elhagyjuk z, y vagy x egyenletét, megfelelően.

Pont a háromszögön vizsgálat Azt tengely kell választani, amelyik mentén a legnagyobb a háromszög normálvektorának abszolút értéke. (Így biztos nem fordulhat elő, hogy a háromszög merőleges a síkra, és csak egy szakasz marad belőle!) Pont a háromszögön vizsgálat Pl. legyen a z a választott tengely. Ekkor x =λ 1 a x + λ 2 b x + λ 3 c x y =λ 1 a y + λ 2 b y + λ 3 c y Pont a háromszögön vizsgálat Pont a háromszögön vizsgálat Pl. legyen a z a választott tengely. Ekkor x =λ 1 a x + λ 2 b x + λ 3 c x y =λ 1 a y + λ 2 b y + λ 3 c y Behelyettesítve λ 3 = 1 λ 1 λ 2 -t, és rendezve: Rendezve λ 1, λ 2 -re kapjuk: λ 1 = (b y c y )(x c x ) (b x c x )(y c y ) (a x c x )(b y c y ) (b x c x )(a y c y ) λ 2 = (a y c y )(x c x ) (a x c x )(y c y ) (a x c x )(b y c y ) (b x c x )(a y c y ) x =λ 1 (a x c x ) + λ 2 (b x c x ) + c x y =λ 1 (a y c y ) + λ 2 (b y c y ) + c y

Pont a háromszögön vizsgálat Pont a háromszögön vizsgálat Rendezve λ 1, λ 2 -re kapjuk: λ 1 = (b y c y )(x c x ) (b x c x )(y c y ) (a x c x )(b y c y ) (b x c x )(a y c y ) λ 2 = (a y c y )(x c x ) (a x c x )(y c y ) (a x c x )(b y c y ) (b x c x )(a y c y ) A nevező csak degenerált háromszög esetén lehet nulla. Rendezve λ 1, λ 2 -re kapjuk: λ 1 = (b y c y )(x c x ) (b x c x )(y c y ) (a x c x )(b y c y ) (b x c x )(a y c y ) λ 2 = (a y c y )(x c x ) (a x c x )(y c y ) (a x c x )(b y c y ) (b x c x )(a y c y ) A nevező csak degenerált háromszög esetén lehet nulla. p akkor és csak akkor van a háromszögön belül, ha 0 λ 1, λ 2, λ 3 1. Sugár metszése poligonnal 1 Tegyük fel, hogy a poligonunk csúcsai egy síkban vannak, ekkor a metszés két lépésben A sugarunkat metszük el a poligon síkjával Döntsük el, hogy a metszéspont a poligonon belül van-e A másodikat egy síkban érdemes csinálni (vagy a poligon síkjában, vagy a poligon valamely koordinátatengelyre vett vetületének síkjában) 2

Sugár metszése poligonnal Pont-poligon tartalmazás teszt síkban A pont a poligonon belül van, ha tetszőleges irányú, belőle indított sugárnak páratlan számú metszéspontja van a poligon oldalaival (azaz a sugarat a poligon összes oldalszakaszával el kell metszeni) Konkáv és csillag alagú poligonra is működik Sugár metszése szakasszal Sugár metszése szakasszal A poligon d i = (x i, y i ), d i+1 = (x i+1, y i+1 ) csúcspontjai közötti szakasz parametrikus alakja: d i,i+1 (s) = (1 s)d i + sd i+1 = d i + s(d i+1 d i ), s [0, 1] Ezt kell metszeni a p(t) = p 0 + tv alakú sugárral Most: a p 0 = (x 0, y 0 ) pont az a pont, amiről el akarjuk dönteni, hogy a poligonon belül van-e, d tetszőleges Legyen v = (1, 0)! Így a p(t) = d i,i+1 (s) egyenletet csak y koordinátára kell megoldani Keressük meg, hogy hol metszi a d i,i+1 (s) oldal egyenese a sugarat (=melyik s-re lesz d i,i+1 (s) y = y 0?) Azaz y 0 = y i + s(y i+1 y i ) s-t kifejezve: s = y 0 y i y i+1 y i Innen megkapjuk azt az x koordinátát d i,i+1 (s)-be behelyettesítve, ahol a sugár metszi a szakaszt. Ha s / [0, 1] : a sugár nem metszi a szakaszt (csak az egyenesét) Ha t 0: a sugár egybeesik a szakasszal, vagy mögötte van a metszéspont

A gömb egyenlete 1 2 Az r sugarú, c = (c x, c y, c z ) középpontú gömb implicit egyenlete: (x c x ) 2 + (y c y ) 2 + (z c z ) 2 r 2 = 0 Ugyanez skalárszorzattal feĺırva: ahol p = (x, y, z). p c, p c r 2 = 0, Gömb és egyenes metszéspontja Legyen p 0 ez egyenes egy pontja, v az irányvektora. Ekkor az egyenes egyenlete: p(t) = p 0 + tv Behelyettesítve a gömb egyenletébe, kapjuk: p 0 + tv c, p 0 + tv c r 2 = 0 Kifejtve: t 2 v, v + 2t v, p 0 c + p 0 c, p 0 c r 2 = 0 t 2 v, v + 2t v, p 0 c + p 0 c, p 0 c r 2 = 0 Ez másodfokú egyenlet t-re (minden más ismert). Legyen D = (2 v, p 0 c ) 2 4 v, v ( p 0 c, p 0 c r 2 ) Ha D > 0: két megoldás van, az egyenes metszi a gömböt. Ha D = 0: egy megoldás van, az egyenes érinti a gömböt. Ha D < 0: nincs valós megoldás, az egyenes nem metszi a gömböt.

Sugár metszése AAB-vel 1 AAB = axis aligned box, olyan téglatest, aminek az oldallapjai a koordinátasíkjainkkal párhuzamosak Legyen a sugarunk p(t) = p 0 + tv alakú, ahol p 0 = (x 0, y 0 ), v = (v x, v y )a téglatestet pedig adjuk meg átlójának két pontjával, a és b segítségével (a < b)! Tegyük fel, hogy a sugár kiindulópontja a doboztól balra helyezkedik el (ezt megtehetjük) 2 Sugár metszése AAB-vel Ha v x = 0: vízszintes a sugarunk, nincs metszéspont, ha x 0 / [a x, b x ], különben triviális eldönteni. Ha v x 0, akkor a két paraméter (négyzet bal és jobb oldala): t 1 := ax x 0 v x, t 2 := bx x 0 v x y és z koordinátákra hasonlóan el kell végezni a számítást. Ezek alapján megállapítható, hogy melyik két lapját a téglatestnek hol metszi a sugár. 1 2

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 gömböt? Pontonként? Képletet írjuk át?... Megoldás: Transzformáljuk inkább a sugarat! 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 0 = (p x, p y, p z ) [p x, p y, p z, 1] Sugár iránya: v = (v x, v y, v z ) [v x, v y, v z, 0]. Így nem hat rá az eltolás. Transzformált sugár r (t) : M 1 p + t M 1 v Metszésvizsgálat: használjuk r (t)-t! Metszéspont: q, akkor az eredeti térben M q.

Rekurzı v suga rko vete s Rekurzı v suga rko vete s Egyszeru sı tett illumina cio s egyenlet 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. A fe ny u tja t ke t fe le komponensre bontjuk: koherens e s inkoherens komponensre Koherens eset Az optika nak megfelelo idea lis visszavero de s ( tu kro zo de s ) e s to re s Tova bb ko vetju k a fe ny u tja t Inkoherens eset Minden egye b Csak az absztrakt fe nyforra s direkt megvila gı ta sa t vesszu k figyelembe Turner Whitted, 1980 Sza mı to ge pes Grafika Rekurzı v suga rko vete s Sza mı to ge pes Grafika Rekurzı v suga rko vete s Koherens komponens Inkoherens komponens Sza mı to ge pes Grafika Sza mı to ge pes Grafika

Egyszerűsített illuminációs egyenlet A következő, egyszerűsített megvilágítási egyenletet oldjuk meg: 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 ) Sugárkövetés Emisszió 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 ) 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. 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 Fényforrások 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özeĺı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. 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 foglalja ö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 Fényforrások 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(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. 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 Tükröződés 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 átlátszó 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. 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: szempozíció helyett x, és a sugár iránya ω r. Fénytörés 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.