以創建一個紋理四邊形為例,記錄一下如何對一個四邊形進行紋理映射以及如何設置紋理過濾器的一般步驟,如果我們的硬件支持多級漸進紋理映射方式,程序中便可使用D3DXCreateTextureFromFile函數自動創建一個多級漸進紋理鏈。
大致的步驟就是下面四點:
(1)構造組成物體的頂點,並為其指定紋理坐標。
(2)用函數D3DXCreateTextureFromFile為IDirect3DTexture9接口加載一種紋理。
(3)設置縮小過濾器、放大過濾器和多級漸進紋理過濾器。
(4)繪制物體前,用函數IDirect3DDevice9::SetTexture來設定與該物體關聯的紋理。
首先需要初始化幾個全局變量,一個用於存儲四邊形頂點的頂點緩存,另一個是將要映射到該四邊形的紋理。
在Setup函數中我們像之前一樣定義了頂點紋理坐標的兩個三角形構造了一個四邊形。然後,為IDirect3DTexture9接口加載位圖文件,最好是用相對地址,其加載模式我覺得和VB的LoadPicture差不多的,只是多了兩個其他的參數。接下來在調用SetTexture方法啟用紋理。最後我們將縮小過濾器和放大過濾器設為線性過濾模式,並將漸進紋理過濾器設為D3DTEXF_POINT。當然,過濾器的模式選擇可以自由,這裡主要是為了效率。
現在我們就可以在Display函數中像往常一樣繪制該四邊形了,並且我們可以將當前紋理映射到該四邊形表面上。