各向異性過濾
各向異性過濾
各向異性過濾(Anisotropic Filtering)是用來過濾、處理當視角變化導致3D物體表面傾斜時造成的紋理錯誤。傳統的雙線性和三線性過濾技術都是指“Isotropy”(各向同性)的,其各方向上矢量值是一致的,就像正方形和正方體。
三線性過濾原理同雙線性過濾一樣,都是將相鄰像素及彼此之間的相對關係都記憶下來,然後在視角改變的時候繪製出來。只不過三線性過濾的採集範圍更大,計算更精確,畫面更細膩。
當然佔用資源也更多。Anisotropic Filt技術的過濾單元並不是“四四方方”的,其典型單元是矩形,還可以變形為梯形和平行四邊形。畫面上的一個象素,在一個方向上可以包含不同紋理單元的信息。這就需要一個“非正多邊形”的過濾單元,來保證準確的透視關係和透明度。不然,如果在某個軸上的紋理部分有大量信息,或是某個方向上的圖象和紋理有個傾角,那麼得到的最終紋理就會變得很滑稽,比例也會失調。當視角為90度,或是處理物體邊緣紋理時,情況會更糟。
各向異性過濾是最新型的過濾方法(相對各向同性2/3線性過濾),它需要對映射點周圍方形8個或更多的像素進行取樣,獲得平均值后映射到像素點上。對於許多3D加速卡來說,採用8個以上像素取樣的各向異性過濾幾乎是不可能的,因為它比三線性過濾需要更多的像素填充率。但是對於3D遊戲來說,各向異性過濾則是很重要的一個功能,因為它可以使畫面更加逼真,自然處理起來也比三線性過濾會更慢。
極品飛車14中叫做非等方性
處理之前的結果:
處理過後的結果:
進入顯卡設置的高級設置后,在3D選項的子選項中可以看到各向異性過濾的調整,可以從0級設置到16級,對顯卡的消耗也會逐漸增大,運行遊戲時的幀數會隨之減小,對於中低端顯卡用戶而言,玩遊戲時可能會出現明顯的卡頓和掉幀。
下圖展示了在經典的3D隧道動畫中,運用各向異性過濾的前後效果對比。可以看到,沒有進行各向異性過濾時,隧道遠方比較模糊;添加各向異性過濾后,磚塊之間的灰泥等細節清晰可見。
添加各向異性過濾的效果