Emlékeztetö Megvilágítás Modellek
Számítógépes Graka - 4. Gyak Jámbori András
[email protected]
2012.03.01
Jámbori András
[email protected]
| Számítógépes Graka - 4. Gyak
1/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
2/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
2/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
2/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
2/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
2/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
2/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
3/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
3/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
3/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
3/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
4/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
4/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
4/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
4/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
4/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
4/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
5/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
6/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
7/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
8/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
9/17
Emlékeztetö Megvilágítás Modellek
Összegezve
Jámbori András
[email protected]
| Számítógépes Graka - 4. Gyak
10/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
11/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
11/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
11/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
11/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
11/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
11/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
12/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
12/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
12/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
12/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
12/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
13/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
13/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
13/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
13/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
13/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
13/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
13/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
14/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
14/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
14/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
14/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
14/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
14/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
15/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
15/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
15/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
15/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
15/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
15/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
15/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
16/17
Emlékeztetö Megvilágítás Modellek
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
[email protected]
| Számítógépes Graka - 4. Gyak
17/17