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

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

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

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

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

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

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

2014/2015. tavaszi félév

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

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

KOVÁCS BÉLA, MATEMATIKA I.

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

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

Koordinátageometria Megoldások

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

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

Analitikus térgeometria

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

Koordináta-geometria feladatgyűjtemény

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

Koordinátageometriai gyakorló feladatok I ( vektorok )

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

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

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.

Koordináta geometria III.

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

Érettségi feladatok Koordinátageometria_rendszerezve / 5

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

Koordináta-geometria II.

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

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

Koordináta-geometria feladatok (emelt szint)

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

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

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

Függvények Megoldások

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

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

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

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

Lineáris algebra mérnököknek

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

Analitikus térgeometria

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

λ 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

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

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

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

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

KOORDINÁTA-GEOMETRIA

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

15. Koordinátageometria

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

A kör. A kör egyenlete

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

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ó.

Lin.Alg.Zh.1 feladatok

Lin.Alg.Zh.1 feladatok

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

Matematika (mesterképzés)

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

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

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

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

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

Exponenciális és logaritmusos kifejezések, egyenletek

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

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

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)

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

Geometriai példatár 2.

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

1. A Hilbert féle axiómarendszer

Geometria II gyakorlatok

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

3D koordináta-rendszerek

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

15. Koordinátageometria

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

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

b) Ábrázolja ugyanabban a koordinátarendszerben a g függvényt! (2 pont) c) Oldja meg az ( x ) 2

Átírás:

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 Sugár és gömb metszéspontja Sugár és doboz metszéspontja Transzformált objektumok 2

Tartalom 1 Sugár és sík metszéspontja Sugár és háromszög metszéspontja Sugár és poligon metszéspontja Sugár és gömb metszéspontja Sugár és doboz metszéspontja Transzformált objektumok 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!

Tartalom 1 Sugár és sík metszéspontja Sugár és háromszög metszéspontja Sugár és poligon metszéspontja Sugár és gömb metszéspontja Sugár és doboz metszéspontja Transzformált objektumok 2

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

Sugár 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?

Tartalom 1 Sugár és sík metszéspontja Sugár és háromszög metszéspontja Sugár és poligon metszéspontja Sugár és gömb metszéspontja Sugár és doboz metszéspontja Transzformált objektumok 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 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 egyenlete 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

Tartalom 1 Sugár és sík metszéspontja Sugár és háromszög metszéspontja Sugár és poligon metszéspontja Sugár és gömb metszéspontja Sugár és doboz metszéspontja Transzformált objektumok 2

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

: 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)!

Tartalom 1 Sugár és sík metszéspontja Sugár és háromszög metszéspontja Sugár és poligon metszéspontja Sugár és gömb metszéspontja Sugár és doboz metszéspontja Transzformált objektumok 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 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

Egyenes és normálvektoros sík metszéspontja 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)

Tartalom 1 Sugár és sík metszéspontja Sugár és háromszög metszéspontja Sugár és poligon metszéspontja Sugár és gömb metszéspontja Sugár és doboz metszéspontja Transzformált objektumok 2

Háromszög megadása 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ú.

Háromszög és egyenes metszéspontja 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 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: 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 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 )

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.

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. p akkor és csak akkor van a háromszögön belül, ha 0 λ 1, λ 2, λ 3 1.

Tartalom 1 Sugár és sík metszéspontja Sugár és háromszög metszéspontja Sugár és poligon metszéspontja Sugár és gömb metszéspontja Sugár és doboz metszéspontja Transzformált objektumok 2

Sugár metszése poligonnal 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)

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

Sugár metszése szakasszal 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

Tartalom 1 Sugár és sík metszéspontja Sugár és háromszög metszéspontja Sugár és poligon metszéspontja Sugár és gömb metszéspontja Sugár és doboz metszéspontja Transzformált objektumok 2

A gömb egyenlete 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.

Tartalom 1 Sugár és sík metszéspontja Sugár és háromszög metszéspontja Sugár és poligon metszéspontja Sugár és gömb metszéspontja Sugár és doboz metszéspontja Transzformált objektumok 2

Sugár metszése AAB-vel 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)

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.

Tartalom 1 Sugár és sík metszéspontja Sugár és háromszög metszéspontja Sugár és poligon metszéspontja Sugár és gömb metszéspontja Sugár és doboz metszéspontja Transzformált objektumok 2

Transzformált objektumok 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 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. Turner Whitted, 1980 Sza mı to ge pes Grafika

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

Inkoherens komponens

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 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ó 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 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.

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

Tükröződé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ü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.