建立紋理對象
10: ); |
|
紋理過濾方式 ·Nearest- point sampling(最近點采樣) · Linear texture filtering(線性紋理過濾) · Anisotropic texture filtering(各向異性紋理過濾) ·Texture filtering with mipmaps(多級漸進紋理過濾)
D3DTEXF_POINT | 取距離最近的像素的顔色,适用于紋理與圖元的大小相近時 |
D3DTEXF_LINEAR | 對上下左右4個紋理元素進行權重平均 |
D3DTEXF_ANISOTROPIC | 對映射點周圍方形8個或更多的像素進行取樣,獲得平均值後映射到像素點上 |
D3DSAMP_MIPFILTER | 采用不同分辨率的紋理序列 |
遊戲中常見的三種方式: · Bilinear Interpolation (雙線過濾 D3DTEXF_LINEAR) 這種處理方式較适用于有一定景深的靜态影像,不過無法提供最佳品質。其最大問題在于,當三維物體變得非常小時,一種被稱為Depth Aliasing artifacts(深度赝樣鋸齒),也不适用于移動中的物件。 · Trilinear Interpolation (三線過濾 D3DSAMP_MIPFILTER+ D3DTEXF_LINEAR) 一個“雙線過濾”需要三次混合,而“三線過濾”就得作七次混合處理,是以每個像素就需要多用21/3倍以上的計算時間。還需要兩倍大的存儲器時鐘帶寬。但是“三線過濾”可以提供最高的貼圖品質,會去除材質的“閃爍”效果。對于需要動态物體或景深很大的場景應用方面而言,隻有“三線過濾”才能提供可接受的材質品質。 · Anisotropic Interpolation (各向異性過濾 D3DTEXF_ANISOTROPIC)
它在取樣時候,會取8個甚至更多的像素來加以處理,所得到的品質最好。 可以與線性紋理過濾和多級漸進紋理過濾結合使用.一般來說4X以上才有效果 紋理尋址模式 當紋理坐标在[0.0, 1.0]範圍之外時的情況 1. Wrap texture address mode(重疊)
2. Mirror texture address mode(鏡像)
3. Clamp texture address mode(夾取)
4. Border color texture address mode(邊框顔色)
紋理階段混合 顔色混合,紋理混合,Alpha混合,還有個凹凸映射? 紋理包裝 Texture Wrapping,改變D3D光栅器使用紋理坐标對有紋理的多邊形進行光栅化操作的基本方式. U,V紋理包裝的使用會影響D3D在U,V方向上對紋理坐标間最短線的選取.
上圖中的U方向上的包裝使AB之間的紋理坐标内插操作就穿越了0.0和1.0所在的交界線. 可以用紋理包裝來做環境映射(現在通常都是用Cubemap吧?)略過