複製鏈接
請複製以下鏈接發送給好友

各向異性過濾

鎖定
各向異性過濾 (Anisotropic Filtering )是用來過濾、處理當視角變化導致3D物體表面傾斜時造成的紋理錯誤。傳統的雙線性和三線性過濾技術都是指“Isotropy”(各向同性)的,其各方向上矢量值是一致的,就像正方形正方體
中文名
各向異性過濾
外文名
Anisotropic Filtering
用    途
過濾、處理當視角變化導致3D物體表面傾斜時造成的紋理錯誤
形    式
雙線性和三線性過濾技術
定    義
用來過濾、處理當視角變化導致3D物體表面傾斜時造成的紋理錯誤
原    理
三線性過濾

目錄

各向異性過濾原理

三線性過濾原理同雙線性過濾一樣,都是將相鄰像素及彼此之間的相對關係都記憶下來,然後在視角改變的時候繪製出來。只不過三線性過濾的採集範圍更大,計算更精確,畫面更細膩。
當然佔用資源也更多。Anisotropic Filt技術的過濾單元並不是“四四方方”的,其典型單元是矩形,還可以變形為梯形和平行四邊形。畫面上的一個像素,在一個方向上可以包含不同紋理單元的信息。這就需要一個“非正多邊形”的過濾單元,來保證準確的透視關係和透明度。不然,如果在某個軸上的紋理部分有大量信息,或是某個方向上的圖象和紋理有個傾角,那麼得到的最終紋理就會變得很滑稽,比例也會失調。當視角為90度,或是處理物體邊緣紋理時,情況會更糟。

各向異性過濾過濾方法

各向異性過濾是最新型的過濾方法(相對各向同性2/3線性過濾),它需要對映射點周圍方形8個或更多的像素進行取樣,獲得平均值後映射到像素點上。對於許多3D加速卡來説,採用8個以上像素取樣的各向異性過濾幾乎是不可能的,因為它比三線性過濾需要更多的像素填充率。但是對於3D遊戲來説,各向異性過濾則是很重要的一個功能,因為它可以使畫面更加逼真,自然處理起來也比三線性過濾會更慢。
極品飛車14中叫做非等方性
處理之前的結果:
處理過後的結果:
過濾方法 過濾方法
進入顯卡設置的高級設置後,在3D選項的子選項中可以看到各向異性過濾的調整,可以從0級設置到16級,對顯卡的消耗也會逐漸增大,運行遊戲時的幀數會隨之減小,對於中低端顯卡用户而言,玩遊戲時可能會出現明顯的卡頓和掉幀。
如下展示了在經典的3D隧道動畫中,運用各向異性過濾的前後效果對比。可以看到,沒有進行各向異性過濾時,隧道遠方比較模糊;添加各向異性過濾後,磚塊之間的灰泥等細節清晰可見 [1] 
沒有進行各向異性過濾的效果 沒有進行各向異性過濾的效果
添加各向異性過濾的效果 添加各向異性過濾的效果
參考資料
  • 1.    [美]RichardS.Wright.Jr等.OpenGL超級寶典(第五版):人民郵電出版社,2012:159