Megosztás a következőn keresztül:


Textúraerőforrások (Direct3D 9)

A textúra-erőforrások az IDirect3DTexture9 felületen vannak implementálva. Ha egy felületre mutató mutatót szeretne kapni, hívja meg az IDirect3DDevice9::CreateTexture metódust vagy az alábbi D3DX-függvények bármelyikét.

Az alábbi példakód D3DXCreateTextureFromFile használatával tölt be egy textúrát Tiger.bmp.

// The following code example assumes that D3dDevice
// is a valid pointer to an IDirect3DDevice9 interface.

LPDIRECT3DTEXTURE9 pTexture;

D3DXCreateTextureFromFile( d3dDevice, "tiger.bmp", &pTexture);

A D3DXCreateTextureFromFileelső paramétere egy IDirect3DDevice9 felületre mutató mutató. A második paraméter megadja a Direct3D-nek annak a fájlnak a nevét, amelyből betölti az anyagmintát. A harmadik paraméter egy mutató címét egy IDirect3DTexture9 felületre viszi, amely a létrehozott textúraobjektumot jelöli.

Renderelés textúraerőforrásokkal

A Direct3D támogatja a több textúra keveredését a textúra szakaszainak koncepciója szerint. Minden anyagminta-szakasz tartalmaz egy textúrát és műveleteket, amelyek elvégezhetők az anyagmintán. A textúra szakaszaiban lévő textúrák az aktuális textúrák készletét alkotják. További információ: Textúra keverése (Direct3D 9). Az egyes textúrák állapota bele van foglalva a textúra szakaszba.

Egy C++ alkalmazásban az egyes textúrák állapotát az IDirect3DDevice9::SetTextureStageState metódussal kell beállítani. Adja meg a szakaszszámot (0-7) az első paraméter értékeként. Állítsa a második paraméter értékét az D3DTEXTURESTAGESTATETYPE számbavételi típus egyik tagjára. A végső paraméter az adott textúraállapot állapotértéke.

A textúrafelület mutatóinak használatával az alkalmazás akár nyolc textúrából álló keveréket is megjeleníthet. Állítsa be az aktuális textúrákat az IDirect3DDevice9::SetTexture metódus meghívásával. A Direct3D az összes jelenlegi textúrát az általa renderelt primitívekre keveri.

Jegyzet

Az IDirect3DDevice9::SetTexture metódus növeli a hozzárendelt felület referenciaszámát. Ha a textúra már nem szükséges, a megfelelő szakaszban állítsa be a textúra NULL. Ha ezt nem teszi meg, a rendszer nem fogja felszabadítani a felületet, ami memóriavesztést okoz.

 

Az alkalmazás a IDirect3DDevice9::SetRenderState metódus meghívásával beállíthatja az aktuális textúrák anyagburkoló állapotát. Adjon át egy értéket D3DRS_WRAP0 és D3DRS_WRAP7 között az első paraméter értékeként, és használja a D3DWRAPCOORD_0, D3DWRAPCOORD_1, D3DWRAPCOORD_2 és D3DWRAPCOORD_3 jelzők kombinációját az u, v vagy w irányban történő körbefuttatás engedélyezéséhez.

Az alkalmazás beállíthatja a textúra perspektíváját és a textúraszűrési állapotokat is. Lásd: Textúraszűrés (Direct3D 9).

Direct3D-textúrák