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

Hasonló dokumentumok
Hajder Levente 2014/2015. tavaszi félév

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

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

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

= 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

Számítógépes Grafika mintafeladatok

Vektorok és koordinátageometria

KOVÁCS BÉLA, MATEMATIKA I.

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

2014/2015. tavaszi félév

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

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

10. Koordinátageometria

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

Koordináta-geometria feladatgyűjtemény

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

Koordinátageometriai gyakorló feladatok I ( vektorok )

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

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

Analitikus térgeometria

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

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

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

Koordináta geometria III.

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

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

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

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

Analitikus térgeometria

Függvények Megoldások

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

Koordináta-geometria II.

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

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

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

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

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

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

KOORDINÁTA-GEOMETRIA

Lineáris algebra mérnököknek

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

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

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

Klár Gergely

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

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

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

Érettségi feladatok Koordinátageometria_rendszerezve / 5

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

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

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

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

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

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

8. előadás. Kúpszeletek

Koordináta-geometria feladatok (emelt szint)

15. Koordinátageometria

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

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

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

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

1. A Hilbert féle axiómarendszer

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

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

Geometriai példatár 2.

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) 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

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

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

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

Lin.Alg.Zh.1 feladatok

KOVÁCS BÉLA, MATEMATIKA II.

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

Tartalom. Nevezetes affin transzformációk. Valasek Gábor 2016/2017. tavaszi félév

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

1. FELADAT. Írjuk fel az adott P ponton átmenő és az adott iránnyal párhuzamos egyenes explicit paraméteres és implicit egyenletrendszerét!

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

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

A kör. A kör egyenlete

M/D/13. Szorozzuk meg az egyenlet mindkét oldalát a közös nevezővel, 12-vel; így a következő egyenlethez jutunk: = 24

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

Geometria II gyakorlatok

Lin.Alg.Zh.1 feladatok

Valasek Gábor Informatikai Kar. 2016/2017. tavaszi félév

Geometria II gyakorlatok

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)

Testek. 16. Legyen z = 3 + 4i, w = 3 + i. Végezzük el az alábbi. a) (2 4), Z 5, b) (1, 0, 0, 1, 1) (1, 1, 1, 1, 0), Z 5 2.

Geometria 1 normál szint

Lineáris egyenletrendszerek

Ellipszisekr½ol részletesen

Hajder Levente 2016/2017.

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

Átírás:

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

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?

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

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

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) + Ax 0 + By 0 + Cz 0 + D = 0 t = Ax 0 + By 0 + Cz 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)

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 Két lépés alapján meghatározhatjuk 1 Először számítsuk ki az egyenes és háromszög síkjának metszéspontját Egyenes egy pontja ismert: pl. háromszög a csúcsa. Egyenes két irányvektora megadható: pl. b a és c a Metszéspontot jelöljük p-vel. 2 Majd nézzük meg, hogy a metszéspont a háromszögön belül van-e.

Pont a háromszögön vizsgálat: egyszerűbb módszer A háromszög három oldala és a normálvektor alapján két félsík adódik. Minden oldal esetén a háromszöget csak az egyik félsík tartalmazza. (p a) (b a), n 0 (p b) (c b), n 0 (p c) (a c), n 0 A három frappáns képlet viszonylag sok számítást tartalmaz.

Pont a háromszögön vizsgálat: gyorsabb módszer 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 Akkor, és csak akkor van a -ön belül, ha 0 λ 1, λ 2, λ 3 1.

Pont a háromszögön vizsgálat: gyorsabb módszer 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: gyorsabb módszer 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.

Pont a háromszögön vizsgálat: gyorsabb módszer 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: gyorsabb módszer 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: gyorsabb módszer 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 Egyszerű, de lassú módszer: osszuk fel háromszögekre a poligont. Visszavezettük az előző problémára (sugár metszése háromszögekkel).

Sugár metszése poligonnal Gyors módszer adható, ha a poligonunk csúcsai egy síkban vannak. Ekkor a metszés két lépésben végezhető: 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, v 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 (HF: kifejezni t-t DE: kell ez most nekünk?) 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 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 felí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.

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 Metszésvizsgálat: használjuk r (t)-t! Metszéspont: q, akkor az eredeti térben M q. Távolságokat újra kell számolni az eredeti térben! Normálvektorok: n helyett M T n (inverz-transzponált).

: sugárvetés RayTracing : (rekurzív) sugárkövetés Sugárkövetés összetevői: felület pontjait meghatározza a saját színe megvilágítva a fényforrásokkal és a egyéb felületről érkező fénysugarakkal. egyéb felületeket két kitüntetett irányban nézzük meg tökéletes tükröződés iránya fénytörés (áttetszés esetén) Rekurzivitás: felületekről érkező sugarakat tetszőleges mélységben vizsgáljuk Rekurió mélységének a futási idő korlátot ad.

Rekurzív sugárkövetés

Rekurzív sugárkövetés

Rekurzív sugárkövetés

Rekurzív sugárkövetés