OpenGL és a mátrixok

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

3D koordináta-rendszerek

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

Lineáris algebra (10A103)

Róth Gergő.

Mátrixok, mátrixműveletek

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

2. előadás. Lineáris algebra numerikus módszerei. Mátrixok Mátrixműveletek Speciális mátrixok, vektorok Norma

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

Valasek Gábor

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

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

Vektorok, mátrixok, lineáris egyenletrendszerek

Matematika (mesterképzés)

Róth Gergő.

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

Lineáris algebra (10A103)

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

Műveletek mátrixokkal. Kalkulus. 2018/2019 ősz

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

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

1. Geometria a komplex számsíkon

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

Számítógépes Grafika mintafeladatok

I. VEKTOROK, MÁTRIXOK

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.

1. Mátrixösszeadás és skalárral szorzás

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

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.

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?

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

Lineáris egyenletrendszerek

12. előadás. Egyenletrendszerek, mátrixok. Dr. Szörényi Miklós, Dr. Kallós Gábor

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

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

Matematika A1a Analízis

Mátrixok 2017 Mátrixok

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

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

1. Az euklideszi terek geometriája

Robotika. Kinematika. Magyar Attila

Számítógépes geometria

Mat. A2 3. gyakorlat 2016/17, második félév

Bevezetés. Transzformáció

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

Lineáris algebra (10A103)

DISZKRÉT MATEMATIKA: STRUKTÚRÁK Előadáson mutatott példa: Bércesné Novák Ágnes

Bevezetés az algebrába 2

EGYSZERŰSÍTETT ALGORITMUS AZ ELEMI BÁZISCSERE ELVÉGZÉSÉRE

1. Algebrai alapok: Melyek műveletek az alábbiak közül?

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

Matematika szigorlat június 17. Neptun kód:

1. A komplex számok ábrázolása

{ } x x x y 1. MATEMATIKAI ÖSSZEFOGLALÓ. ( ) ( ) ( ) (a szorzás eredménye:vektor) 1.1. Vektorok közötti műveletek

Sajátértékek és sajátvektorok. mf1n1a06- mf1n2a06 Csabai István

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

Vektorok. Wettl Ferenc október 20. Wettl Ferenc Vektorok október / 36

Meghirdetés féléve 2 Kreditpont Összóraszám (elm+gyak) 2+0

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

Bevezetés a számításelméletbe (MS1 BS)

Rang, sajátérték. Dr. Takách Géza NyME FMK Informatikai Intézet takach/ február 15

Wavelet transzformáció

Koordináta-geometria alapozó feladatok

Számítógépes grafika

LINEÁRIS ALGEBRA. matematika alapszak. Euklideszi terek. SZTE Bolyai Intézet, őszi félév. Euklideszi terek LINEÁRIS ALGEBRA 1 / 40

Vektorterek. Wettl Ferenc február 17. Wettl Ferenc Vektorterek február / 27

Ortogonalizáció. Wettl Ferenc Wettl Ferenc Ortogonalizáció / 41

Diszkrét matematika II., 8. előadás. Vektorterek

Vektorterek. =a gyakorlatokon megoldásra ajánlott

1. zárthelyi,

Lineáris leképezések, mátrixuk, bázistranszformáció. Képtér, magtér, dimenziótétel, rang, invertálhatóság

Képfeldolgozás. 1. el adás. A képfeldolgozás m veletei. Mechatronikai mérnök szak BME, 2008

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

Gazdasági matematika II. tanmenet

Róth Gergő.

Számítógépes Grafika mintafeladatok

Mer legesség. Wettl Ferenc Wettl Ferenc Mer legesség / 40

Irodalom. (a) A T, B T, (b) A + B, C + D, D C, (c) 3A, (d) AD, DA, B T A, 1 2 B = 1 C = A = 1 0 D = (a) 1 1 3, B T = = ( ) ; A T = 1 0

KOVÁCS BÉLA, MATEMATIKA I.

1. Transzformációk mátrixa

Számítógépes grafika

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

1. Bázistranszformáció

A gyakorlati jegy


Diszkrét matematika 2.C szakirány

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

Fizika 1i, 2018 őszi félév, 1. gyakorlat

Néhány szó a mátrixokról

Diszkrét matematika I. gyakorlat

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

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

sin x = cos x =? sin x = dx =? dx = cos x =? g) Adja meg a helyettesítéses integrálás szabályát határozott integrálokra vonatkozóan!

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana

Mátrixok február Feladat: Legyen A = ( ( B =

Diszkrét matematika II., 1. el adás. Lineáris leképezések

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

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Gyakorló feladatok I.

2. ELŐADÁS. Transzformációk Egyszerű alakzatok

Átírás:

OpenGL és a mátrixok Róth Gergő 2013. március 4. Róth Gergő 1/20

A rajzoláskor a videókártya minden csúcson végrehajt egy transzformációt. Mire jó? Kamera helyének beállítása Egy objektum több pozícióra is kirajzolható Egy objektum több méretben is kirajzolható Egy objektum több szemszögből is kirajzolható A transzformációk nem a CPU-n, hanem a GPU-n hajtódnak végre, ezáltal gyorsabb (párhuzamos végrehajtás) 2D / 3D grafikában minden transzformáció egy mátrixműveletnek felel meg. Róth Gergő 2/20

Skalárszorzás Összeadás Mátrixszorzás Mátrix szorzása skalárral Róth Gergő 3/20

Skalárszorzás Összeadás Mátrixszorzás Mátrixok összeadása Csak ugyanolyan méretű mátrixokat tudunk összeadni Róth Gergő 4/20

Mátrix szorzása mátrixszal Skalárszorzás Összeadás Mátrixszorzás n x m méretű mátrixot csak m x p méretűvel tudunk beszorozni Az eredmény n x p dimenziókkal rendelkező mátrix A művelet nem kommutatív, vagyis nem lehet felcserélni az operandusokat: A * B!= B * A A művelet asszociatív (csoportosítható): (A * B) * C = A * (B * C) Róth Gergő 5/20

Egységmátrix Átméretezés Forgatás N dimenziós koordinátát nxn méretű négyzetes mátrixszal tudunk transzformálni: a 0 a 3 a 6 v 0 a 1 a 4 a 7 v 1 a 2 a 5 a 8 v 2 Róth Gergő 6/20

Egységmátrix Átméretezés Forgatás Egységmátrix (identity matrix): [ ] 1 0 0 1 [ v0 v 1 ] = [ v0 v 1 1 0 0 v 0 v 0 0 1 0 v 1 = v 1 0 0 1 v 2 v 2 ] Róth Gergő 7/20

Egységmátrix Átméretezés Forgatás Átméretezés az origo középpontjából (scale): [ sx 0 0 s y ] [ v0 v 1 ] [ ] sx v = 0 s y v 1 s x 0 0 v 0 s x v 0 0 s y 0 v 1 = s y v 1 0 0 s z v 2 s z v 2 Róth Gergő 8/20

Egységmátrix Átméretezés Forgatás Forgatás 2 dimenzióban az origo körül (rotate): [ ] cos(α) sin(α) sin(α) cos(α) Róth Gergő 9/20

Egységmátrix Átméretezés Forgatás Forgatás 3 dimenzióban az origon átmenő egységvektor (l, m, n) körül (rotate): Róth Gergő 10/20

Egységmátrix Átméretezés Forgatás A lineáris transzformációk halmozhatók. Példa (R - rotate, S - scale): rotate, scale, rotate, rotate M = R * R * S * R Elég csak M-et átadni a GPU-nak. Egyetlen szorzással (M * v) elvégezhető az összes transzformáció. Róth Gergő 11/20

Eltolás Eltolás (translate): [ tx t y ] + [ v0 v 1 ] [ ] tx + v = 0 t y + v 1 t x v 0 t x + v 0 t y + v 1 = t y + v 1 t z v 2 t z + v 2 Róth Gergő 12/20

Eltolás Mi a baj az eltolással? Nem halmozható, mivel az eltolást az összeadással lehet elvégezni, a többit pedig szorzással. Példa: (R - rotate, S - scale, T - translate): translate, rotate, scale, translate, scale, rotate M!= R * S * T * S * R * T Róth Gergő 13/20

A koordináták kiegészülnek egy újabb komponenssel: w 2D: (x, y) -> (wx, wy, w) 3D: (x, y, z) -> (wx, wy, wz, w) Kezdetben általában egynek veszik w értékét Homogén koordinátákkal elvégezhető az eltolás mátrixszorzással, így ez a transzformáció is halmozhatóvá válik. Róth Gergő 14/20

Az eltolás mátrixa: 1 0 t x v 0 t x + v 0 0 1 t y v 1 = t y + v 1 0 0 1 1 1 1 0 0 t x v 0 t x + v 0 0 1 0 t y 0 0 1 t z v 1 v 2 = t y + v 1 t z + v 2 0 0 0 1 1 1 Róth Gergő 15/20

Aktuális mátrix Vetítési mátrix Transzformációk Mátrixverem OpenGL-ben léteznek beépített mátrixok (mindegyik mérete 4x4): Modelview matrix: M Projection matrix: P A csúcs tényleges helyét a következőképpen kapjuk meg: O = P * M * v Róth Gergő 16/20

Aktuális mátrix Vetítési mátrix Transzformációk Mátrixverem Amikor mátrixműveleteket végzünk OpenGL-el, akkor mindig az aktuális mátrixon végzünk utószorzást. Az aktuális mátrixot be tudjuk állítani a glmatrixmode(..) paranccsal. Paraméterei lehetnek: GL_MODELVIEW vagy GL_PROJECTION Egységmátrix betöltése: glloadidentity() Róth Gergő 17/20

Aktuális mátrix Vetítési mátrix Transzformációk Mátrixverem glmatrixmode(gl_projection) glortho(left, right, bottom, top, near, far) // ortogonális (merőleges) vetítés gluperspective(angle, x / h, near, far) // perspektivikus (a végtelenben az élek összetartanak) vetítés Róth Gergő 18/20

Aktuális mátrix Vetítési mátrix Transzformációk Mátrixverem Forgatás origon átmenő egységvektor (x, y, z) körül: glrotatef(angle, a x, a y, a z ) Eltolás: gltranslatef(t x, t y, t z ) Átméretezés: glscalef(s x, s y, s z ) Róth Gergő 19/20

Aktuális mátrix Vetítési mátrix Transzformációk Mátrixverem Állapot elmentése: glpushmatrix() Állapot visszatöltése: glpopmatrix() Róth Gergő 20/20