共用方式為


紋理資源 (Direct3D 9)

紋理資源會在 IDirect3DTexture9 介面中實作。 若要取得紋理介面的指標,請呼叫 IDirect3DDevice9::CreateTexture 方法或任何下列 D3DX 函式。

下列程式代碼範例使用 D3DXCreateTextureFromFile 從 Tiger.bmp載入紋理。

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

LPDIRECT3DTEXTURE9 pTexture;

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

D3DXCreateTextureFromFile 接受的第一個參數是 IDirect3DDevice9介面指標。 第二個參數會告訴 Direct3D 要從中載入紋理的檔名。 第三個參數會採用 IDirect3DTexture9 介面的指標位址,代表建立的紋理物件。

使用紋理資源轉譯

Direct3D 支援透過紋理階段的概念進行多個紋理混合。 每個紋理階段都包含可在紋理上執行的紋理和作業。 紋理階段中的紋理會形成一組目前的紋理。 如需詳細資訊,請參閱 紋理混合 (Direct3D 9)。 每個紋理的狀態會封裝在其紋理階段中。

在C++應用程式中,每個紋理的狀態都必須使用 IDirect3DDevice9::SetTextureStageState 方法來設定。 傳遞階段編號 (0-7) 作為第一個參數的值。 將第二個參數的值設定為 D3DTEXTURESTAGESTATETYPE 列舉型別的成員。 最後一個參數是特定紋理狀態的狀態值。

使用紋理介面指標,您的應用程式可以轉譯最多八個紋理的混合。 叫用 IDirect3DDevice9::SetTexture 方法來設定目前的紋理。 Direct3D 會將所有目前紋理混合到它呈現的基本類型。

注意

IDirect3DDevice9::SetTexture 方法會遞增所指派之紋理表面的參考計數。 當不再需要紋理時,您應該在適當的階段將紋理設定為 NULL。 如果您無法執行這項作,則不會釋放表面,導致記憶體流失。

 

您的應用程式可以呼叫 IDirect3DDevice9::SetRenderState 方法來設定目前紋理的紋理換行狀態。 將值從D3DRS_WRAP0傳遞至D3DRS_WRAP7做為第一個參數的值,並使用D3DWRAPCOORD_0、D3DWRAPCOORD_1、D3DWRAPCOORD_2和D3DWRAPCOORD_3旗標的組合,以啟用 u、v 或 w 方向的包裝。

您的應用程式也可以設定紋理檢視方塊和紋理篩選狀態。 請參閱 紋理篩選 (Direct3D 9)

Direct3D 紋理