簡介
當材質被貼到螢幕所顯示的一個3D模型上時,材質處理器必須決定哪個圖素要貼在哪個像素的位置。由於材質是2D圖片,而模型是3D物件,所以通常圖素的範圍與像素範圍不會是恰好相同的。此時要解決這個像素的貼圖問題,就得用插補處理的方式來解決,這個過程就叫做TextureMapInterpolation(材質影響過濾處理)。
詳解
插補處理的方式的方式共分四種:“近鄰取樣”、“雙線過濾”、“三線過濾”以及“各向異性過濾”。
近鄰取樣
Nearest Neighbor (近鄰取樣)又被稱為Point sampling(點取樣),是一種較簡單材質影像插補的處理方式。會使用包含像素最多部分的圖素來貼圖。換句話說就是哪一個圖素占到最多的像素,就用那個圖素來貼圖。這種處理方式因為速度比較快,常被用於早期3D遊戲開發,不過材質的品質較差。
雙線過濾
Bilinear Interpolation (雙線過濾)這是一種較好的材質影像插補的處理方式,會先找出最接近像素的四個圖素,然後在它們之間作差補效果,最後產生的結果才會被貼到像素的位置上,這樣不會看到“馬賽克”現象。這種處理方式較適用於有一定景深的靜態影像,不過無法提供最佳品質。其最大問題在於,當三維物體變得非常小時,一種被稱為Depth Aliasing artifacts(深度贗樣鋸齒),也不適用於移動中的物件。
三線過濾
Trilinear Interpolation (三線過濾)是一種更複雜材質影像插補處理方式,會用到相當多的材質影像,而每張的大小恰好會是另一張的四分之一。例如有一張材質影像是512×512個圖素,第二張就會是256×256個圖素,第三張就會是128×128個圖素等等,總之最小的一張是1×1。憑藉這些多重解析度的材質影像,當遇到景深極大的場景時(如飛行模擬),就能提供高品質的貼圖效果。一個“雙線過濾”需要三次混合,而“三線過濾”就得作七次混合處理,所以每個像素就需要多用21/3倍以上的計算時間。還需要兩倍大的存儲器時鐘頻寬。但是“三線過濾”可以提供最高的貼圖品質,會去除材質的“閃爍”效果。對於需要動態物體或景深很大的場景套用方面而言,只有“三線過濾”才能提供可接受的材質品質。
各向異性過濾
Anisotropic Interpolation(各向異性過濾) 在取樣時候,會取8個甚至更多的像素來加以處理,所得到的質量最好。
2-sided (雙面) 在進行著色渲染時,由於物體一般都是部分面向攝像機的,因此為了加快渲染速度,計算時常忽略物體內部的細節。當然這對於實體來說,不影響最終的渲染結果;但是,如果該物體時透明時,缺陷就會暴露無遺,所以選擇計算雙面後,程式自動把物體法線相反的面(即物體內部)也進行計算,最終得到完整的圖象。