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.
- D3DXCreateTexture
- D3DXCreateTextureFromFile
- D3DXCreateTextureFromFileEx
- D3DXCreateTextureFromFileInMemory
- D3DXCreateTextureFromFileInMemoryEx
- D3DXCreateTextureFromResource
- D3DXCreateTextureFromResourceEx
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).
Kapcsolódó témakörök