紋理篩選

當原始物件透過將 3D 原始物件對應至 2D 畫面時,紋理篩選會為原始物件的 2D 轉譯影像產生一個色彩。

Direct3D 轉譯原始物件期間,會將 3D 原始物件對應至 2D 畫面。 如果原始物件具有紋理,Direct3D 就必須使用紋理,為原始物件之 2D 轉譯影像中的每個像素產生一個色彩。 針對原始物件在畫面中的影像,每個像素都必須包含一個來自紋理的色彩值。 這個程序就是所謂的「紋理篩選」

執行紋理篩選作業時,使用的紋理通常也會放大或縮小。 換句話說,它會對應到比自身更大或更小的原始物件影像中。 放大紋理可能會導致多個紋理對應至單一紋理像素。 這樣一來,就有可能形成塊狀外觀。 縮小紋理通常意味著將單一像素對應至多個紋理像素。 產生的影像可能會發生模糊或鋸齒化。 若要解決上述問題,就必須執行部分紋理像素色彩混合,以產生適用於像素的色彩。

Direct3D 可將複雜的紋理篩選程序予以簡化。 它能提供三種類型的紋理篩選:線性篩選、非等向性篩選和 Mipmap 篩選。 如果沒有選取任何紋理篩選,Direct3D 就會使用名為「最接近點取樣」的技術。

每個類型的紋理篩選都有各自的優勢和劣勢。 舉例來說,線性紋理篩選可能會在最終影像內產生鋸齒狀邊緣或塊狀外觀。 不過,它是運算負荷較低的紋理篩選方法之一。 使用 Mipmap 篩選經常可產生最佳結果,特別在結合非等向性篩選時。 但在 Direct3D 支援的技術中,此一篩選所需的記憶體量最為驚人。

紋理篩選類型

Direct3D 支援下列紋理篩選方法。

本節內容

主題 說明

最接近點取樣

應用程式不一定需要使用紋理篩選。 Direct3D 可進行設定,以計算紋理像素位址 (通常不會評估為整數),並使用最接近整數的位址來複製紋理像素的色彩。 這個程序就是所謂的最接近點取樣

雙線性紋理篩選

雙線性紋理篩選會計算最接近取樣點之 4 個紋理像素的加權平均。 這個篩選方法比最接近點篩選更加精確且常見。 由於它會在現代化圖形硬體上執行,因此為效率十足的方法。

非等向性紋理篩選

非等向性為 3D 物件紋理像素中的可見失真,而該物件表面會朝向與畫面平面相對的角度。 當來自非等向性原始物件的像素對應至紋理像素時,其形狀就會發生失真。

使用 Mipmap 進行紋理篩選

Mipmap 為一系列的紋理,每個紋理都會使用逐漸降低的解析度來呈現相同的影像。 Mipmap 中每個影像 (或層級) 的高度和寬度,都會比上一個層級小二次方。

 

紋理