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