各向异性过滤 (Anisotropic Filtering )是用来过滤、处理当视角变化导致3D物体表面倾斜时造成的纹理错误。传统的双线性和
三线性过滤技术都是指“Isotropy”(
各向同性)的,其各方向上矢量值是一致的,就像
正方形和
正方体。
三线性过滤原理同
双线性过滤一样,都是将相邻像素及彼此之间的相对关系都记忆下来,然后在视角改变的时候绘制出来。只不过三线性过滤的采集范围更大,计算更精确,画面更细腻。
当然占用资源也更多。Anisotropic Filt技术的过滤单元并不是“四四方方”的,其典型单元是矩形,还可以变形为梯形和
平行四边形。画面上的一个像素,在一个方向上可以包含不同纹理单元的信息。这就需要一个“非正多边形”的过滤单元,来保证准确的
透视关系和透明度。不然,如果在某个轴上的纹理部分有大量信息,或是某个方向上的图象和纹理有个倾角,那么得到的最终纹理就会变得很滑稽,比例也会失调。当视角为90度,或是处理物体边缘纹理时,情况会更糟。
各向异性过滤是最新型的过滤方法(相对各向同性2/3线性过滤),它需要对映射点周围方形8个或更多的像素进行取样,获得
平均值后映射到像素点上。对于许多
3D加速卡来说,采用8个以上像素取样的各向异性过滤几乎是不可能的,因为它比三线性过滤需要更多的
像素填充率。但是对于
3D游戏来说,各向异性过滤则是很重要的一个功能,因为它可以使画面更加逼真,自然处理起来也比三线性过滤会更慢。
进入显卡设置的高级设置后,在3D选项的子选项中可以看到各向异性过滤的调整,可以从0级设置到16级,对显卡的消耗也会逐渐增大,运行游戏时的
帧数会随之减小,对于
中低端显卡用户而言,玩游戏时可能会出现明显的卡顿和掉帧。
如下展示了在经典的
3D隧道动画中,运用各向异性过滤的前后效果对比。可以看到,没有进行各向异性过滤时,隧道远方比较模糊;添加各向异性过滤后,砖块之间的
灰泥等细节清晰可见。