Számítógépes Graka - 4. Gyak



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

Számítógépes Grafika mintafeladatok

Maga a tématerület így nagyon nagy. A fények pontos fizikai szimulációja kimondottan számításigényes

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

A bemutatott példa a Phong modell egy egyszerűsített változatát alkalmazza a Blinn-Phong-féle megközelítést

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

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

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.

2. Generáció ( ) 3. Generáció (2001) NVIDIA TNT2, ATI Rage, 3dfx Voodoo3. Klár Gergely

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

Számítógépes Grafika mintafeladatok

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

Számítógépes grafika

HLSL programozás. Szécsi László

HLSL programozás. Grafikus játékok fejlesztése Szécsi László t06-hlsl

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

Grafikus csővezeték 1 / 44

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

Tartalomjegyzék. Köszönetnyilvánítás... xv. Előszó... xvii. 1. Bevezető D-történelem Matematikai alapok... 7

Sugárkövetési algoritmusok (2. rész)

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

Bevezetés a CGI-be. 1. Történelem

Tanács Attila. Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem

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

Farkas Gyula Szakkollégium Bit- és számtologatók. DirectX9 1. Szín, fény, textúra 2. Stencil buffer használata (tükörkép, hamis árnyék)

OpenGL Compute Shader-ek. Valasek Gábor

GPU Lab. 14. fejezet. OpenCL textúra használat. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

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

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

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

1. Olvassuk be két pont koordinátáit: (x1, y1) és (x2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki.

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

Grafikus csővezeték és az OpenGL függvénykönyvtár

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

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

Java grafikai lehetőségek

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

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

D3D, DXUT primer. Grafikus játékok fejlesztése Szécsi László t01-system

Bázistranszformáció és alkalmazásai 2.

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

Realisztikus színtér 1 / 59

Vektorok és koordinátageometria

KOVÁCS BÉLA, MATEMATIKA I.

4. Használati útmutatás

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

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

MA1143v A. csoport Név: december 4. Gyak.vez:. Gyak. kódja: Neptun kód:.

3. ZH-ban a minimum pontszám 15

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

6. MECHANIKA-STATIKA GYAKORLAT Kidolgozta: Triesz Péter egy. ts. Négy erő egyensúlya, Culmann-szerkesztés, Ritter-számítás

Frissítve: Feszültség- és alakváltozási állapot. 1. példa: Írjuk fel az adott kockához tartozó feszültségtenzort!

3D-s számítógépes geometria és alakzatrekonstrukció

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 11. Széchenyi István Egyetem, Gy r

Geometria brute force tárolása

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

Programozás alapjai Bevezetés

Játékfejlesztés a Windows Phone 7 erejével

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

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

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

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

"Eseményekre imm/connection Server scriptek futtatása

Mathematica automatikusan dolgozik nagy pontossággal, például 3 a 100-dik hatványon egy szám 48 tizedes jeggyel:


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

Analitikus térgeometria

10. gyakorlat Struktúrák, uniók, típusdefiníciók

(Solid modeling, Geometric modeling) Testmodell: egy létező vagy elképzelt objektum digitális reprezentációja.

A MODERN JÁTÉKFEJLESZTÉS

Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, Quantum GIS program alkalmazásával Útmutató 2010.

IV. Matematikai tehetségnap szeptember 28. IV. osztály

Nem fotorealisztikus megjelenítés OpenGL segítségével

Tartalmi összefoglaló

Optika és Relativitáselmélet II. BsC fizikus hallgatóknak

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

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Ellátási lánc optimalizálás P-gráf módszertan alkalmazásával mennyiségi és min ségi paraméterek gyelembevételével

Szegedi Tudományegyetem Informatikai Tanszékcsoport SZAKDOLGOZAT. Vadász László

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

Termék modell. Definíció:

TANMENET. a matematika tantárgy tanításához 11.E osztályok számára

Optika gyakorlat 1. Fermat-elv, fénytörés, reexió sík és görbült határfelületen. Fermat-elv


Párhuzamos és Grid rendszerek

Véletlen szám generálás Labirintus felépítése 1x1-es felbontástól a teljes méretig

OPTIKA. Ma sok mindenre fény derül! /Geometriai optika alapjai/ Dr. Seres István

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

Programfejlesztés az OpenGL segítségével (1. rész) A 3D programozás alapjai

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

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

9. Előadás. Megyesi László: Lineáris algebra, oldal. 9. előadás Mátrix inverze, mátrixegyenlet

1. ábra Tükrös visszaverődés 2. ábra Szórt visszaverődés 3. ábra Gombostű kísérlet

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

Minden az adatról. Csima Judit február 11. BME, VIK, Csima Judit Minden az adatról 1 / 41

QGIS tanfolyam (ver.2.0)

Tájékoztató. Használható segédeszköz: -

Nemlineáris jelenségek és Kao2kus rendszerek vizsgálata MATHEMATICA segítségével. Előadás: Szerda, 215 Labor: 16-18, Szerda, 215

Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás

Átírás:

Számítógépes Graka - 4. Gyak Jámbori András andras.jambori@gmail.com 2012.03.01 Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 1/17

Emlékeztet A múlt órákon tárgyaltuk: WinAPI programozás 90 perc alatt! DirectX Történelem ELTE Cg FrameWork - Szintén 90 perc alatt! TimeGetTime(); gyorstalpaló Felhasználói Input, Primitívek, VB Shaderek, CG, CGParameterek Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 2/17

Emlékeztet A múlt órákon tárgyaltuk: WinAPI programozás 90 perc alatt! DirectX Történelem ELTE Cg FrameWork - Szintén 90 perc alatt! TimeGetTime(); gyorstalpaló Felhasználói Input, Primitívek, VB Shaderek, CG, CGParameterek Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 2/17

Emlékeztet A múlt órákon tárgyaltuk: WinAPI programozás 90 perc alatt! DirectX Történelem ELTE Cg FrameWork - Szintén 90 perc alatt! TimeGetTime(); gyorstalpaló Felhasználói Input, Primitívek, VB Shaderek, CG, CGParameterek Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 2/17

Emlékeztet A múlt órákon tárgyaltuk: WinAPI programozás 90 perc alatt! DirectX Történelem ELTE Cg FrameWork - Szintén 90 perc alatt! TimeGetTime(); gyorstalpaló Felhasználói Input, Primitívek, VB Shaderek, CG, CGParameterek Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 2/17

Emlékeztet A múlt órákon tárgyaltuk: WinAPI programozás 90 perc alatt! DirectX Történelem ELTE Cg FrameWork - Szintén 90 perc alatt! TimeGetTime(); gyorstalpaló Felhasználói Input, Primitívek, VB Shaderek, CG, CGParameterek Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 2/17

Emlékeztet A múlt órákon tárgyaltuk: WinAPI programozás 90 perc alatt! DirectX Történelem ELTE Cg FrameWork - Szintén 90 perc alatt! TimeGetTime(); gyorstalpaló Felhasználói Input, Primitívek, VB Shaderek, CG, CGParameterek Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 2/17

Emlékeztet A múlt órákon tárgyaltuk: Index Buer Transzformációk Transzformációk - Round Two Textúrák Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 3/17

Emlékeztet A múlt órákon tárgyaltuk: Index Buer Transzformációk Transzformációk - Round Two Textúrák Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 3/17

Emlékeztet A múlt órákon tárgyaltuk: Index Buer Transzformációk Transzformációk - Round Two Textúrák Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 3/17

Emlékeztet A múlt órákon tárgyaltuk: Index Buer Transzformációk Transzformációk - Round Two Textúrák Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 3/17

Megvilágítási modell A jelenetben a fény különböz anyagokkal történ interakcióját más-más modellel (gyakorlatilag számítási móddal) fogjuk vizsgálni Emisszív - az anyag saját fénye Ambiens - környezeti megvilágítás Diúz - szórt megvilágítás Spekuláris - csillanó fényfolt A végs megvilágítás ezek összegéb l fog adódni Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 4/17

Megvilágítási modell A jelenetben a fény különböz anyagokkal történ interakcióját más-más modellel (gyakorlatilag számítási móddal) fogjuk vizsgálni Emisszív - az anyag saját fénye Ambiens - környezeti megvilágítás Diúz - szórt megvilágítás Spekuláris - csillanó fényfolt A végs megvilágítás ezek összegéb l fog adódni Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 4/17

Megvilágítási modell A jelenetben a fény különböz anyagokkal történ interakcióját más-más modellel (gyakorlatilag számítási móddal) fogjuk vizsgálni Emisszív - az anyag saját fénye Ambiens - környezeti megvilágítás Diúz - szórt megvilágítás Spekuláris - csillanó fényfolt A végs megvilágítás ezek összegéb l fog adódni Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 4/17

Megvilágítási modell A jelenetben a fény különböz anyagokkal történ interakcióját más-más modellel (gyakorlatilag számítási móddal) fogjuk vizsgálni Emisszív - az anyag saját fénye Ambiens - környezeti megvilágítás Diúz - szórt megvilágítás Spekuláris - csillanó fényfolt A végs megvilágítás ezek összegéb l fog adódni Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 4/17

Megvilágítási modell A jelenetben a fény különböz anyagokkal történ interakcióját más-más modellel (gyakorlatilag számítási móddal) fogjuk vizsgálni Emisszív - az anyag saját fénye Ambiens - környezeti megvilágítás Diúz - szórt megvilágítás Spekuláris - csillanó fényfolt A végs megvilágítás ezek összegéb l fog adódni Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 4/17

Megvilágítási modell A jelenetben a fény különböz anyagokkal történ interakcióját más-más modellel (gyakorlatilag számítási móddal) fogjuk vizsgálni Emisszív - az anyag saját fénye Ambiens - környezeti megvilágítás Diúz - szórt megvilágítás Spekuláris - csillanó fényfolt A végs megvilágítás ezek összegéb l fog adódni Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 4/17

Emisszív modell Az emisszív szín az anyag saját fényét reprezentálja. Gyakorlatilag egy konstans, amit mindig hozzáadunk a végs színhez emissive = Ke Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 5/17

Ambiens (környezeti) modell A már sokszor megtör, visszapattanó, konstans szórt fényt reprezentálja (pl amelyik az asztal alatt lakik...) ambient = Ka * globalambient Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 6/17

Diúz megvilágítás F leg matt, kicsit érdes felület esetén meggyelhet : a bejöv fényt a felület minden irányba egyenl mértékben veri vissza diuse = Kd * lightcolor * max(dot(n,l), 0) Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 7/17

Fényvisszaver modell Spekuláris csillanás sima, fényes felületeken. Nagyban függ a beesési szögt l, és paramétere a felület "csiszoltsága" specular = Ks * lightcolor * (max(dot(n,h), 0)) (shininess) Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 8/17

Fényvisszaver modell Spekuláris csillanás sima, fényes felületeken. Nagyban függ a beesési szögt l, és paramétere a felület "csiszoltsága" specular = Ks * lightcolor * (max(dot(n,h), 0)) (shininess) Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 9/17

Összegezve Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 10/17

Shader utasítások pow(a, b): a-t a b-edik hatványra emeli max(a, b): visszaadja a és b közül a nagyobbikat saturate(a): az a értékét 0 és 1 közé viszi ( (a<0)? 0 : ( (a>1)? 1 : a ) ) reect(a, b): az a beesési irányból b felületi normálissal rendelkez felületi pontba bees (fény)sugár visszaver dési iránya mul(a, x): az A mátrixot összeszorozza az x vektorral (DE: más sorrendben is beírhatóak, de mi így használjuk!) tex2d( sampler2d texture, oat2 t): a textúránk t paraméterhez tartozó színértékét adja vissza (mintavételezi a textúrát a beállított sz rök segítségével az adott pontban, ezért sampler2d a textúra típusának neve) Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 11/17

Shader utasítások pow(a, b): a-t a b-edik hatványra emeli max(a, b): visszaadja a és b közül a nagyobbikat saturate(a): az a értékét 0 és 1 közé viszi ( (a<0)? 0 : ( (a>1)? 1 : a ) ) reect(a, b): az a beesési irányból b felületi normálissal rendelkez felületi pontba bees (fény)sugár visszaver dési iránya mul(a, x): az A mátrixot összeszorozza az x vektorral (DE: más sorrendben is beírhatóak, de mi így használjuk!) tex2d( sampler2d texture, oat2 t): a textúránk t paraméterhez tartozó színértékét adja vissza (mintavételezi a textúrát a beállított sz rök segítségével az adott pontban, ezért sampler2d a textúra típusának neve) Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 11/17

Shader utasítások pow(a, b): a-t a b-edik hatványra emeli max(a, b): visszaadja a és b közül a nagyobbikat saturate(a): az a értékét 0 és 1 közé viszi ( (a<0)? 0 : ( (a>1)? 1 : a ) ) reect(a, b): az a beesési irányból b felületi normálissal rendelkez felületi pontba bees (fény)sugár visszaver dési iránya mul(a, x): az A mátrixot összeszorozza az x vektorral (DE: más sorrendben is beírhatóak, de mi így használjuk!) tex2d( sampler2d texture, oat2 t): a textúránk t paraméterhez tartozó színértékét adja vissza (mintavételezi a textúrát a beállított sz rök segítségével az adott pontban, ezért sampler2d a textúra típusának neve) Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 11/17

Shader utasítások pow(a, b): a-t a b-edik hatványra emeli max(a, b): visszaadja a és b közül a nagyobbikat saturate(a): az a értékét 0 és 1 közé viszi ( (a<0)? 0 : ( (a>1)? 1 : a ) ) reect(a, b): az a beesési irányból b felületi normálissal rendelkez felületi pontba bees (fény)sugár visszaver dési iránya mul(a, x): az A mátrixot összeszorozza az x vektorral (DE: más sorrendben is beírhatóak, de mi így használjuk!) tex2d( sampler2d texture, oat2 t): a textúránk t paraméterhez tartozó színértékét adja vissza (mintavételezi a textúrát a beállított sz rök segítségével az adott pontban, ezért sampler2d a textúra típusának neve) Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 11/17

Shader utasítások pow(a, b): a-t a b-edik hatványra emeli max(a, b): visszaadja a és b közül a nagyobbikat saturate(a): az a értékét 0 és 1 közé viszi ( (a<0)? 0 : ( (a>1)? 1 : a ) ) reect(a, b): az a beesési irányból b felületi normálissal rendelkez felületi pontba bees (fény)sugár visszaver dési iránya mul(a, x): az A mátrixot összeszorozza az x vektorral (DE: más sorrendben is beírhatóak, de mi így használjuk!) tex2d( sampler2d texture, oat2 t): a textúránk t paraméterhez tartozó színértékét adja vissza (mintavételezi a textúrát a beállított sz rök segítségével az adott pontban, ezért sampler2d a textúra típusának neve) Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 11/17

Shader utasítások pow(a, b): a-t a b-edik hatványra emeli max(a, b): visszaadja a és b közül a nagyobbikat saturate(a): az a értékét 0 és 1 közé viszi ( (a<0)? 0 : ( (a>1)? 1 : a ) ) reect(a, b): az a beesési irányból b felületi normálissal rendelkez felületi pontba bees (fény)sugár visszaver dési iránya mul(a, x): az A mátrixot összeszorozza az x vektorral (DE: más sorrendben is beírhatóak, de mi így használjuk!) tex2d( sampler2d texture, oat2 t): a textúránk t paraméterhez tartozó színértékét adja vissza (mintavételezi a textúrát a beállított sz rök segítségével az adott pontban, ezért sampler2d a textúra típusának neve) Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 11/17

Shader utasítások dot(a, b): a és b vektorok skaláris szorzatát adja vissza cross(a, b): a és b vektorok vektoriális szorzatát adja vissza normalize(a): az a/ a -t adja vissza reect(i, n): az i irányvektor n felületi normálissal leírt síklapra vett visszaver dési irányát határozza meg. n normalizálva kell, hogy legyen, és csak három komponens vektorokra m ködik a * b: a és b vektorokat összeszorozza komponensenként, az eredmény tehát oat4 típusú a és b esetén ( a.x*b.x, a.y*b.y, a.z*b.z, a.w*b.w) lesz Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 12/17

Shader utasítások dot(a, b): a és b vektorok skaláris szorzatát adja vissza cross(a, b): a és b vektorok vektoriális szorzatát adja vissza normalize(a): az a/ a -t adja vissza reect(i, n): az i irányvektor n felületi normálissal leírt síklapra vett visszaver dési irányát határozza meg. n normalizálva kell, hogy legyen, és csak három komponens vektorokra m ködik a * b: a és b vektorokat összeszorozza komponensenként, az eredmény tehát oat4 típusú a és b esetén ( a.x*b.x, a.y*b.y, a.z*b.z, a.w*b.w) lesz Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 12/17

Shader utasítások dot(a, b): a és b vektorok skaláris szorzatát adja vissza cross(a, b): a és b vektorok vektoriális szorzatát adja vissza normalize(a): az a/ a -t adja vissza reect(i, n): az i irányvektor n felületi normálissal leírt síklapra vett visszaver dési irányát határozza meg. n normalizálva kell, hogy legyen, és csak három komponens vektorokra m ködik a * b: a és b vektorokat összeszorozza komponensenként, az eredmény tehát oat4 típusú a és b esetén ( a.x*b.x, a.y*b.y, a.z*b.z, a.w*b.w) lesz Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 12/17

Shader utasítások dot(a, b): a és b vektorok skaláris szorzatát adja vissza cross(a, b): a és b vektorok vektoriális szorzatát adja vissza normalize(a): az a/ a -t adja vissza reect(i, n): az i irányvektor n felületi normálissal leírt síklapra vett visszaver dési irányát határozza meg. n normalizálva kell, hogy legyen, és csak három komponens vektorokra m ködik a * b: a és b vektorokat összeszorozza komponensenként, az eredmény tehát oat4 típusú a és b esetén ( a.x*b.x, a.y*b.y, a.z*b.z, a.w*b.w) lesz Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 12/17

Shader utasítások dot(a, b): a és b vektorok skaláris szorzatát adja vissza cross(a, b): a és b vektorok vektoriális szorzatát adja vissza normalize(a): az a/ a -t adja vissza reect(i, n): az i irányvektor n felületi normálissal leírt síklapra vett visszaver dési irányát határozza meg. n normalizálva kell, hogy legyen, és csak három komponens vektorokra m ködik a * b: a és b vektorokat összeszorozza komponensenként, az eredmény tehát oat4 típusú a és b esetén ( a.x*b.x, a.y*b.y, a.z*b.z, a.w*b.w) lesz Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 12/17

Swizzle Vektorokkal:.x, y, z, w, a, r, g, b: oat4 vec1 = oat4(4.0, -2.0, 5.0, 3.0); oat2 vec2 = vec1.yx; // vec2 = (-2.0, 4.0) oat scalar = vec1.w; // scalar = 3.0 oat3 vec3 = scalar.xxx; // vec3 = (3.0, 3.0, 3.0) Mátrixokban is swizzle: _m[row][col] myfloatvec4 = mymatrix._m00_m11_m22_m33; Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 13/17

Swizzle Vektorokkal:.x, y, z, w, a, r, g, b: oat4 vec1 = oat4(4.0, -2.0, 5.0, 3.0); oat2 vec2 = vec1.yx; // vec2 = (-2.0, 4.0) oat scalar = vec1.w; // scalar = 3.0 oat3 vec3 = scalar.xxx; // vec3 = (3.0, 3.0, 3.0) Mátrixokban is swizzle: _m[row][col] myfloatvec4 = mymatrix._m00_m11_m22_m33; Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 13/17

Swizzle Vektorokkal:.x, y, z, w, a, r, g, b: oat4 vec1 = oat4(4.0, -2.0, 5.0, 3.0); oat2 vec2 = vec1.yx; // vec2 = (-2.0, 4.0) oat scalar = vec1.w; // scalar = 3.0 oat3 vec3 = scalar.xxx; // vec3 = (3.0, 3.0, 3.0) Mátrixokban is swizzle: _m[row][col] myfloatvec4 = mymatrix._m00_m11_m22_m33; Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 13/17

Swizzle Vektorokkal:.x, y, z, w, a, r, g, b: oat4 vec1 = oat4(4.0, -2.0, 5.0, 3.0); oat2 vec2 = vec1.yx; // vec2 = (-2.0, 4.0) oat scalar = vec1.w; // scalar = 3.0 oat3 vec3 = scalar.xxx; // vec3 = (3.0, 3.0, 3.0) Mátrixokban is swizzle: _m[row][col] myfloatvec4 = mymatrix._m00_m11_m22_m33; Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 13/17

Swizzle Vektorokkal:.x, y, z, w, a, r, g, b: oat4 vec1 = oat4(4.0, -2.0, 5.0, 3.0); oat2 vec2 = vec1.yx; // vec2 = (-2.0, 4.0) oat scalar = vec1.w; // scalar = 3.0 oat3 vec3 = scalar.xxx; // vec3 = (3.0, 3.0, 3.0) Mátrixokban is swizzle: _m[row][col] myfloatvec4 = mymatrix._m00_m11_m22_m33; Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 13/17

Swizzle Vektorokkal:.x, y, z, w, a, r, g, b: oat4 vec1 = oat4(4.0, -2.0, 5.0, 3.0); oat2 vec2 = vec1.yx; // vec2 = (-2.0, 4.0) oat scalar = vec1.w; // scalar = 3.0 oat3 vec3 = scalar.xxx; // vec3 = (3.0, 3.0, 3.0) Mátrixokban is swizzle: _m[row][col] myfloatvec4 = mymatrix._m00_m11_m22_m33; Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 13/17

Swizzle Vektorokkal:.x, y, z, w, a, r, g, b: oat4 vec1 = oat4(4.0, -2.0, 5.0, 3.0); oat2 vec2 = vec1.yx; // vec2 = (-2.0, 4.0) oat scalar = vec1.w; // scalar = 3.0 oat3 vec3 = scalar.xxx; // vec3 = (3.0, 3.0, 3.0) Mátrixokban is swizzle: _m[row][col] myfloatvec4 = mymatrix._m00_m11_m22_m33; Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 13/17

Modellek Eddig a jelenetben lév objektumokat (modellek) vertexek, indexek, háromszögek deniálásával írtuk le Ez teljesen jó megoldás, és a gúlaépítés munkaer piaca tárt karokkal vár minket Azonban a legtöbb esetben ennél kicsit bonyolultabb modellekre van szükség (hát ha még hozzávesszük a textúra és normálvektorokat, esetleg színt...) A modellek megalkotásához rendszerint küls szoftvercsomagokat használhatunk (3DS Max, Maya, Modo...) Valamilyen formátumban eltárolva, ezeket a modelleket használni tudjuk Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 14/17

Modellek Eddig a jelenetben lév objektumokat (modellek) vertexek, indexek, háromszögek deniálásával írtuk le Ez teljesen jó megoldás, és a gúlaépítés munkaer piaca tárt karokkal vár minket Azonban a legtöbb esetben ennél kicsit bonyolultabb modellekre van szükség (hát ha még hozzávesszük a textúra és normálvektorokat, esetleg színt...) A modellek megalkotásához rendszerint küls szoftvercsomagokat használhatunk (3DS Max, Maya, Modo...) Valamilyen formátumban eltárolva, ezeket a modelleket használni tudjuk Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 14/17

Modellek Eddig a jelenetben lév objektumokat (modellek) vertexek, indexek, háromszögek deniálásával írtuk le Ez teljesen jó megoldás, és a gúlaépítés munkaer piaca tárt karokkal vár minket Azonban a legtöbb esetben ennél kicsit bonyolultabb modellekre van szükség (hát ha még hozzávesszük a textúra és normálvektorokat, esetleg színt...) A modellek megalkotásához rendszerint küls szoftvercsomagokat használhatunk (3DS Max, Maya, Modo...) Valamilyen formátumban eltárolva, ezeket a modelleket használni tudjuk Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 14/17

Modellek Eddig a jelenetben lév objektumokat (modellek) vertexek, indexek, háromszögek deniálásával írtuk le Ez teljesen jó megoldás, és a gúlaépítés munkaer piaca tárt karokkal vár minket Azonban a legtöbb esetben ennél kicsit bonyolultabb modellekre van szükség (hát ha még hozzávesszük a textúra és normálvektorokat, esetleg színt...) A modellek megalkotásához rendszerint küls szoftvercsomagokat használhatunk (3DS Max, Maya, Modo...) Valamilyen formátumban eltárolva, ezeket a modelleket használni tudjuk Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 14/17

Modellek Eddig a jelenetben lév objektumokat (modellek) vertexek, indexek, háromszögek deniálásával írtuk le Ez teljesen jó megoldás, és a gúlaépítés munkaer piaca tárt karokkal vár minket Azonban a legtöbb esetben ennél kicsit bonyolultabb modellekre van szükség (hát ha még hozzávesszük a textúra és normálvektorokat, esetleg színt...) A modellek megalkotásához rendszerint küls szoftvercsomagokat használhatunk (3DS Max, Maya, Modo...) Valamilyen formátumban eltárolva, ezeket a modelleket használni tudjuk Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 14/17

Modellek Eddig a jelenetben lév objektumokat (modellek) vertexek, indexek, háromszögek deniálásával írtuk le Ez teljesen jó megoldás, és a gúlaépítés munkaer piaca tárt karokkal vár minket Azonban a legtöbb esetben ennél kicsit bonyolultabb modellekre van szükség (hát ha még hozzávesszük a textúra és normálvektorokat, esetleg színt...) A modellek megalkotásához rendszerint küls szoftvercsomagokat használhatunk (3DS Max, Maya, Modo...) Valamilyen formátumban eltárolva, ezeket a modelleket használni tudjuk Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 14/17

Modellek - Elterjedt formátumok Gyakran használt formátumok Obj - Alias Wavefront gyermeke, gyakorlatilag a legalapvet bb formátum (OpenGL-ben ezt használjuk), ezért az összes 3D tartalomkészít csomag tud ilyet exportálni Fbx - Autodesk formátum, XNA például szereti. Szintén minden Autodesk termék támogatja. X - MicroSoft DirectX saját formátuma. Itt ezért ezt használjuk, annak ellenére, hogy nehézkes tud lenni a formátum létrehozása: Blender tud.x-et exportálni (beállításokra vigyázni, könnyen elromlik) VAGY 3DS Maxból.3ds formátumot exportálni conv3ds programmal 3ds -> x konverzió VRML, mb, blend... Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 15/17

Modellek - Elterjedt formátumok Gyakran használt formátumok Obj - Alias Wavefront gyermeke, gyakorlatilag a legalapvet bb formátum (OpenGL-ben ezt használjuk), ezért az összes 3D tartalomkészít csomag tud ilyet exportálni Fbx - Autodesk formátum, XNA például szereti. Szintén minden Autodesk termék támogatja. X - MicroSoft DirectX saját formátuma. Itt ezért ezt használjuk, annak ellenére, hogy nehézkes tud lenni a formátum létrehozása: Blender tud.x-et exportálni (beállításokra vigyázni, könnyen elromlik) VAGY 3DS Maxból.3ds formátumot exportálni conv3ds programmal 3ds -> x konverzió VRML, mb, blend... Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 15/17

Modellek - Elterjedt formátumok Gyakran használt formátumok Obj - Alias Wavefront gyermeke, gyakorlatilag a legalapvet bb formátum (OpenGL-ben ezt használjuk), ezért az összes 3D tartalomkészít csomag tud ilyet exportálni Fbx - Autodesk formátum, XNA például szereti. Szintén minden Autodesk termék támogatja. X - MicroSoft DirectX saját formátuma. Itt ezért ezt használjuk, annak ellenére, hogy nehézkes tud lenni a formátum létrehozása: Blender tud.x-et exportálni (beállításokra vigyázni, könnyen elromlik) VAGY 3DS Maxból.3ds formátumot exportálni conv3ds programmal 3ds -> x konverzió VRML, mb, blend... Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 15/17

Modellek - Elterjedt formátumok Gyakran használt formátumok Obj - Alias Wavefront gyermeke, gyakorlatilag a legalapvet bb formátum (OpenGL-ben ezt használjuk), ezért az összes 3D tartalomkészít csomag tud ilyet exportálni Fbx - Autodesk formátum, XNA például szereti. Szintén minden Autodesk termék támogatja. X - MicroSoft DirectX saját formátuma. Itt ezért ezt használjuk, annak ellenére, hogy nehézkes tud lenni a formátum létrehozása: Blender tud.x-et exportálni (beállításokra vigyázni, könnyen elromlik) VAGY 3DS Maxból.3ds formátumot exportálni conv3ds programmal 3ds -> x konverzió VRML, mb, blend... Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 15/17

Modellek - Elterjedt formátumok Gyakran használt formátumok Obj - Alias Wavefront gyermeke, gyakorlatilag a legalapvet bb formátum (OpenGL-ben ezt használjuk), ezért az összes 3D tartalomkészít csomag tud ilyet exportálni Fbx - Autodesk formátum, XNA például szereti. Szintén minden Autodesk termék támogatja. X - MicroSoft DirectX saját formátuma. Itt ezért ezt használjuk, annak ellenére, hogy nehézkes tud lenni a formátum létrehozása: Blender tud.x-et exportálni (beállításokra vigyázni, könnyen elromlik) VAGY 3DS Maxból.3ds formátumot exportálni conv3ds programmal 3ds -> x konverzió VRML, mb, blend... Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 15/17

Modellek - Elterjedt formátumok Gyakran használt formátumok Obj - Alias Wavefront gyermeke, gyakorlatilag a legalapvet bb formátum (OpenGL-ben ezt használjuk), ezért az összes 3D tartalomkészít csomag tud ilyet exportálni Fbx - Autodesk formátum, XNA például szereti. Szintén minden Autodesk termék támogatja. X - MicroSoft DirectX saját formátuma. Itt ezért ezt használjuk, annak ellenére, hogy nehézkes tud lenni a formátum létrehozása: Blender tud.x-et exportálni (beállításokra vigyázni, könnyen elromlik) VAGY 3DS Maxból.3ds formátumot exportálni conv3ds programmal 3ds -> x konverzió VRML, mb, blend... Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 15/17

Modellek - Elterjedt formátumok Gyakran használt formátumok Obj - Alias Wavefront gyermeke, gyakorlatilag a legalapvet bb formátum (OpenGL-ben ezt használjuk), ezért az összes 3D tartalomkészít csomag tud ilyet exportálni Fbx - Autodesk formátum, XNA például szereti. Szintén minden Autodesk termék támogatja. X - MicroSoft DirectX saját formátuma. Itt ezért ezt használjuk, annak ellenére, hogy nehézkes tud lenni a formátum létrehozása: Blender tud.x-et exportálni (beállításokra vigyázni, könnyen elromlik) VAGY 3DS Maxból.3ds formátumot exportálni conv3ds programmal 3ds -> x konverzió VRML, mb, blend... Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 15/17

Modell betöltése - LoadMesh() D3DXLoadMeshFromX( //a betöltend modellfile neve TEXT("myModel.x"), //betöltési opció. itt: VB leend memóriaosztálya D3DXMESH_MANAGED, //device mutató m_pd3ddevice, //kimeneti tároló a modell szomszédsági //adatainak rögzítésére (nekünk jó NULL) NULL, //modell anyagainak tömbje &pd3dxmtrlbuffer, //effektek tömbje NULL, //anyagok száma &m_dwnummaterials, //kimeneti mesh &m_pmesh ) Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 16/17

Modell rajzolása - DrawModel() Minden ugyanúgy, mint eddig, kivéve: for (DWORD i=0; i< m_dwnummaterials; ++i) m_pmesh->drawsubset(i); Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 17/17