在3D電腦圖形學中,各向異性過濾(Anisotropic Filtering, AF)是一種顯著提升紋理影像品質的方法。它的獨特之處於於,這項技術僅在相機視角歪斜且紋理投影看起來非正交的表面上應用。從字源上看,各向異性過濾在各個方向的處理方式並不相同。與雙線性和三線性過濾相比,各向異性過濾不僅消除了鋸齒效應,還改善了模糊,並在極端視角下保留了細節。
各向異性過濾能夠保留傳統mipmap技術在避免鋸齒過程中損失的“清晰度”。
在1990年代末,由於記憶體帶寬的限制,各向異性過濾的使用逐漸普及,並成為消費級顯示卡的標準功能。現代的圖形硬體(以及視頻驅動程序)中,這項技術已經非常普遍,使用者可以通過驅動程序設置或遊戲索引接口使用這種過濾技術。
各向異性過濾能夠以快速的反鋸齒紋理過濾技術,在所有的視覺角度下維持銳利的紋理細節。傳統的各向同性mipmap技術,當每一層的解析度下降時,會同時在每一個軸上減半解像度。這樣一來,在以歪斜角度渲染水平平面時,最小化的結果將因為垂直軸影像頻率的降低而導致水平解析度不足。
例如,當對一個256x256解析度的紋理進行各向異性過濾時,它不僅會變為128x128的解析度,還可變成256x128和32x128等非正方形解析度。
透過mipmap各向異性過濾,當紋理的影像頻率對於每個紋理軸不同時,可以對這些各向異性降頻的圖像進行探測。這樣,一個軸就不會因另一個軸的屏幕頻率而模糊,同時仍然避免了鋸齒。
在渲染過程中,可以應用不同程度的各向異性過濾,這個程度指的是過濾過程所支持的最大各向異性比率。例如,4:1(“四比一”)的各向異性過濾將在2:1的範圍外,進一步增強歪斜紋理的清晰度。在實務上,這意味著在高度歪斜的紋理情況下,4:1的過濾效果會比2:1清晰兩倍。
然而,大多數場景將不需要4:1的過濾,只有更多歪斜且通常較遠的像素需要更清晰的過濾技術。
這也就代表著,隨著各向異性過濾程度的增長,肉眼所見的質量改善會出現遞減效益,只有相對少數的高度歪斜的像素會顯示出更為清晰的紋理。
真正的各向異性過濾是在每個像素的即時基礎上按比例進行探測。在圖形硬體中,當進行各向異性取樣時,通常會根據該像素的投影形狀,對紋理中心點周圍進行幾個探測。過去的軟體方法多使用了總區域表(summed-area tables)。每個各向異性過濾探測通常本身就是一個經過過濾的mipmap樣本,因此這一過程增加了取樣的複雜度。
例如,十六個三線性各向異性樣本可能需要128個樣本,而三線性mipmap過濾需要為每個mipmap取四個樣本,然後再進行十六次的各向異性取樣。
不過,這樣的過濾複雜度並不是總是需要的。針對圖像渲染硬體,存在一些可用的方法來減少工作量。在圖形硬體中,最常見的是僅從一行mipmap樣本中合成過濾後的像素值。
要求的樣本數可能使得各向異性過濾在帶寬上變得非常繁重。因為多個紋理是常見的,每個樣本的大小可能是四個字節或更高,因此每個各向異性像素可能需要從紋理記憶體中提取512個字節。不幸的是,當前電視顯示器可能輕易地擁有超過兩百萬個像素,且期望的應用幀率通常都高於60幀每秒。
因此,對於紋理渲染操作的帶寬需求可能會達到數百GB每秒,這在涉及各向異性過濾操作時並不罕見。
手幸的是,多種因素可以改善性能。探測本身共享緩存的紋理樣本,無論是像素間還是像素內部。而即使是16次取樣的各向異性過濾,也不是所有的16次取樣都是必須的,因為只有在遠距離並且歪斜的像素填充才會高度各向異性。
在這樣的背景下,各向異性過濾使我們對於影像質量的要求得到了前所未有的滿足,這不禁讓我們思考:未來的影像技術將會朝著怎樣的方向發展,讓我們的視覺體驗變得更加真實和非凡?