在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次取样都是必须的,因为只有在远距离并且歪斜的像素填充才会高度各向异性。
在这样的背景下,各向异性过滤使我们对于影像质量的要求得到了前所未有的满足,这不禁让我们思考:未来的影像技术将会朝着怎样的方向发展,让我们的视觉体验变得更加真实和非凡?