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

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

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?

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

Plakátok, részecskerendszerek. Szécsi László

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

Hajder Levente 2016/2017.

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

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

Számítógépes Grafika mintafeladatok

Alkalmazott Informatikai Tanszék SZÁMÍTÓGÉP-PROGRAMOZÁS dr.dudás László 22./0. 3D grafika programozása OpenGL támogatással Transzformációk

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

3D koordináta-rendszerek

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

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

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

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

OpenGL és a mátrixok

Árnyalás, env mapping. Szécsi László 3D Grafikus Rendszerek 3. labor

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

Transzformációk síkon, térben

Érettségi feladatok Koordinátageometria_rendszerezve / 5

2D képszintézis. Szirmay-Kalos László

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

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

Lin.Alg.Zh.1 feladatok

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]

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

Direct3D pipeline. Grafikus játékok fejlesztése Szécsi László t03-pipeline

KOVÁCS BÉLA, MATEMATIKA I.

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

Panorámakép készítése

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

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

Függvények Megoldások

Lin.Alg.Zh.1 feladatok

Robotika. Kinematika. Magyar Attila

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

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

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

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

Számítógépes látás alapjai

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

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

Számítógépes Grafika mintafeladatok

Eredmények, objektumok grafikus megjelenítése 3D felületek rajzoló függvényei

0-49 pont: elégtelen, pont: elégséges, pont: közepes, pont: jó, pont: jeles

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

SZERKEZETFÖLDTANI OKTATÓPROGRAM, VETŐMENTI ELMOZDULÁSOK MODELLEZÉSÉRE. Kaczur Sándor Fintor Krisztián

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

Feladatok. Tervek alapján látvány terv készítése. Irodai munka Test modellezés. Létező objektum számítógépes modelljének elkészítése

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

8. előadás. Kúpszeletek

Számítógépes látás alapjai

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)

Példák jellemzőkre: - minden pixelérték egy jellemző pl. neurális hálózat esetében csak kis képekre, nem invariáns sem a megvilágításra, sem a geom.

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

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)

Számítógépes geometria

2014/2015. tavaszi félév

Vektorterek. =a gyakorlatokon megoldásra ajánlott

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

A számítógépes grafika alapjai kurzus, vizsgatételek és tankönyvi referenciák 2014

Virtuális Valóság. Működése és használata

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

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

Koordináta-geometria feladatgyűjtemény

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

Geometriai modellezés. Szécsi László

Mátrixok 2017 Mátrixok

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

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

17. előadás: Vektorok a térben

SULINOVA PROGRAMTANTERVÉHEZ ILLESZKEDŐ TANMENET 9. ÉVFOLYAM SZÁMÁRA

1. Lineáris transzformáció

Matematika tanmenet 10. osztály (heti 3 óra) A gyökvonás 14 óra

Textúrák. Szécsi László

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

Az ipari robotok definíciója

A játékfejlesztés több területből áll. A kódolás csupán egy része a munkáknak.

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

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

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

Matematika osztályozó vizsga témakörei 9. évfolyam II. félév:

Kvadratikus alakok gyakorlás.

Koordináta-geometria feladatok (emelt szint)

Koordinátageometriai gyakorló feladatok I ( vektorok )

8. Előadás. Megyesi László: Lineáris algebra, , oldal. 8. előadás Mátrix rangja, Homogén lineáris egyenletrendszer

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

Függvény fogalma, jelölések 15

Minimum követelmények matematika tantárgyból 11. évfolyamon

Számítógépes grafika

Haladó lineáris algebra

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

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

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

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

Denavit-Hartenberg konvenció alkalmazása térbeli 3DoF nyílt kinematikai láncú hengerkoordinátás és gömbi koordinátás robotra

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

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

Exponenciális és logaritmusos kifejezések, egyenletek

Átírás:

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

Koordinátarendszerek: modelltér

Koordinátarendszerek: világtér

Koordinátarendszerek: kameratér up right z eye ahead y x

Koordinátarendszerek: normalizált eszköztér 1 1 x -1-1

Koordinátarendszerek: nézetablaktér pixel x resolution x pixel y p resolution y

Transzformáció egy művelet, két egyenértékű értelmezés Ha adott egy térbeli pont az egyik viszonyítási rendszerben érvényes koordinátáival, mik a koordinátái egy másik viszonyítási rendszerben? statikus interpretáció Milyen műveletet (pl. eltolás, elforgatás, skálázs) végezzek a ponton, hogy a másik koordinátarendszerbeli pontot kapjam? dinamikus interpretáció

A feladat a pipelineban Adott a 3D modell háromszögek csúcspontjai [modellezési koordináták] Háromszögkitöltő algoritmus pixeleket színez be [viewport koordináták] A feladat: számítsuk ki a csúcspont modellezési koordinátáiból, melyik pixelre kerül

Mi befolyásolja ezt? Hova, hogyan helyezzük el a modellt a virtuális világban modellezési trafó, model, world Hol van, merre néz a kamera kamera trafó, view Mekkora a látószög (és képméretarány) perspektív projekció Hányszor hány pixel az ablak és hol van viewport trafó

Bónusz feladat: takarás takarási probléma a 2D pixel koordináták mellett kell egy mélységértéket is számolni fix pontos z-buffer [0, 1]-beli értékeket tud összehasonlítani a távolság, amihez a 0-t rendeljük: első vágósík amihez az 1-et: hátsó vágósík

Bónusz feladat: árnyalás Felületi pont, fények koordinátái, szempozíció, felületi normálisok... ugyanabban a 3D koordináta rendszerben legyenek logikusan a modellezési transzformáció után de a kamera trafó szög és távolságtartó

Kamera modell fp up eye z FOV y aspect lookat bp x

A transzformációs csővezeték model trafó view trafó proj trafó modellezési koordináták model space világkoordináták world space kamera koordináták camera space norm. képernyő koordináták clip space norm. device space modellezés viewport trafó pixel koordináták viewport space

Koordináta-rendszerek Egy pont valamilyen viszonyítási ponthoz képest (origó) adható meg kitüntetett vektorok lineáris kombinációjaként (bázisvektorok, koordinátatengely-irányok) Más origóval és irányokkal ugyanannak a pontnak mások a koordinátái Más számításokhoz más bázisok előnyösek

Modell- és világkoordináták (statikus interpretáció) world

Modell- és világkoordináták (dinamikus interpretáció)

Modellezési: ebben adottak a koordináták [3 4] P = O M + 3M x + 4M y M y O M origó M x

Világ: kitüntetett fő-rendszer modell origo itt van [3 3] M x = 3/25 W x 4/25 W y M y = 4/25 W x + 3/25 W y Ezekkel adjuk meg az objektum elhelyezkedését W y O W origó W x P = O M + 3M x + 4M y P = O w +3 W x + 3 W y + 3 (3/25 W x 4/25 W y )+ 4 (4/25 W y + 3/25 W y ) = O w +3 W x + 3 W y + (9 + 16)/25 W x + (12-12) W y = O w + 4W x + 3W y

Ez a számítás mátrix formában (modellezési transzformáció) P = 3 W x + 3 W y + 3 (3/25 W x 4/25 W y )+ 4 (4/25 W y + 3/25 W y ) [4 3] = [3+3*3/25+4*4/25 3-3*4/25+4*3/25] mindig fix [4 3 1] = [3 4 1] 3/25-4/25 0 4/25 3/25 0 M x M y mindig fix 3 3 1 O M

Árnyalás világ-koordinátákban L = (S-X)/ S-X V = (E-X)/ E-X X árnyalt felületi pont L megvilágítás iránya [4 3] L V nézeti irány V E szem pozíciója [6 3] W y [4 1] S fényforrás pozíciója O W origó W x Minden világ-ban adott

Hova kell ezt rajzolni a képernyőn? Az összes többi transzformáció ennek a kiszámolására megy kamera transzformáció hol van a pont a kamerához képest vetítési transzformáció hova vetül ez az ablak téglalapjára viewport transzformáció melyik pixel [0 0] [-1-1] [345 234] [1 1]

Kamera-koordinátarendszer kamera koordináták [4 3] = E + x C *C x + z C *C z egyenletrendszer x,z-re [4 3] C x = [-1 1] E [6 3] C z = [-1-1] W y 4 = 6 + x C *(-1) + z C *(-1) 3 = 3 + x C *(-1) + z C *(1) x C = 1, z C = 1 O W origó W x

Kamerakoordináta-egyenlet mátrix formában (NEM a view mátrix!) [4 3] = E + x C *C x + z C *C z [4 3] = E + x C *[-1-1] + z C *[-1 1] mindig fix [4 3 1] = [1 1 1] -1-1 0-1 1 0 C x C z mindig fix 6 3 1 E

Kamera trafó mátrix -1-1 0 [4 3 1] = [1 1 1] -1 1 0 6 3 1-1 -1 0-1 [4 3 1] -1 1 0 = [1 1 1] 6 3 1

Képernyő-koordinátarendszer hova vetül a képernyőn x J milyen messze (takaráshoz kell) J x 1 z J J z W y ablak a virtuális világra O W origó W x

Képernyőkoordináta számítása hasonló háromszögek x C = x J * z C x J x J = x C / z C J x x C zc 1 z J J z ablak a virtuális világra

Ha a látószög nem 90 fok hasonló háromszögek itt van az 1.0 J x így ez 0.5 x C = x J * z C x J = x C / z C x C zc J x az egység Osztani kell az ablakunk fél szélességével x J z J FOV 1 x J = (x C / z C ) / tan(fov/2) J z ablak a virtuális világra Ha FOV = 90 fok akkor ez 1 FOV látószög

Perspektív transzformáció A vetítés is homogén linearis transzformáció: ezt is lehet mátrixszorzással DE nem affin: utolsó oszlop nem [0 0 1] homogén koordinátákban kapjuk meg az eredményt, és h általában nem 1 utána osztani kell h-val hogy rendes Descartes koodinátákat kapjunk x Jhomo / h Jhomo = (x C / z C ) / tan(fov/2)

Perspektív trafó mátrix x Jhomo / h Jhomo = (x C / z C ) / tan(fov/2) ez a képernyő-pozíció szempontjából nem érdekes 1/tan(FOV/2)? 0 [x Jhomo? h Jhomo ] = [x C z C 1] z C 0? 1 0? 0 x C / tan(fov/2)

Mi legyen a Z? A takaráshoz kell Tartsa meg a kamerakoordinátarendszer-beli sorrendet (legyen monoton a látható objektumok részén) kell valamit ide is írni Ha [0 A 0] lenne a mátrixban: 1/tan(FOV/2) 0 0 [x Jhomo? h Jhomo ] = [x C z C 1] 0 A 1 A*z C z C = A 0 0 0 mindig A: elveszne a mélység info

0 < Z J <1 tartomány legyen fp < Z C < bp 1/(tg(fov/2)) 0 0 0 (fp+bp)/(bp-fp) 1 0-2fp*bp/(bp-fp) 0 3D ben, asp a képernyő magassága a szélességhez képest (a függőleges és vízszintes FOV nem ugyanakkora ) 1/(tg(fov/2)*asp) 0 0 0 0 1/(tg(fov/2)) 0 0 0 0 (fp+bp)/(bp-fp) 1 0 0-2fp*bp/(bp-fp) 0

Miért jó, hogy minden számítás mátrix-szorzás? (((r M 1 ) M 2 ) M 3 ) = r (M 1 M 2 M 3 ) több lépést is lehet egyetlen mátrixszorzással, ha a szorzatmátrixot használjuk LINEÁRIS: háromszögből háromszög lesz 3Dben érintkező háromszögekből 2Dben illeszkedő hszek nemlineárisnál a hszből valami más lesz, mi meg csak hszet tudunk hatékonyan rajzolni pixelekből