原文:抗锯齿技术这么多种,怎么选可以既画质好又跑得快? 摘选部分 - 抗锯齿基本原理.
游戏画面:越来越精细的纹理和材质、越来越华丽丰满的光影效果、越来越多样化、动态化、要素丰富的沙盘世界.
然而有一项无论如何升级游戏画面画质,近年来的原理都没有发生大的改变,这就是抗锯齿(Anti-Aliasing)技术.
但事实上,将 Anti-Aliasing 翻译为 抗锯齿,应该更多的只是一种语言中的巧合和便利,因为 Aliasin 本身的含义是混淆、混叠,因此这一合成词的真正意思应该是 通过混叠、混淆的手段去除锯齿,这也是抗锯齿技术背后真正的技术原理:通过 “以模糊换取精确” 的手段来消除显示屏幕上的锯齿,而这个过程称其为“采样(Sampling)”,也就是针对某一点的像素,通过让它带有周围像素的特性,因此在足够的分辨率下,这一像素点便不再顽固般地锐利,也达到消除锯齿的目的.
首先要明确的是,某一个区域看上去充满锯齿,这是由图形场景本身的三维数据决定的,只不过将它投射至显示阶段时不可避免的现象,不过善于拓展的人类是最有智慧的,不同历史阶段的图形学家(其实图形大牛同时也是数学大牛)通过不同的手段实现过对于锯齿的采样原理,而我们首先从原理上最有效的超级采样抗锯齿(Super Sampling Anti-Aliasing, SSAA)抗锯齿.
通过名字就知道,SSAA 最大的特点来自于采样过程.
是的,以常见的 SSAA4 为例,在面对一张最后需要以 19201080像素渲染的画面时,SSAA 会首先渲染一张尺寸为 3840*2160 像素的缓存,再在这种长宽都乘以 2 的画面上进行采样,采样的精度和效果当然是最理想的,但是也可以想象,这种只为追求理想情况的手段对于硬件资源的消耗非常大,成本也非常高. 更重要的是,即使在原理上 SSAA 拥有最理想的精度,但是最现实情况万般变化中的游戏世界,SSAA 并不能永远保证采样效果是最讨好眼睛的,换句话说性价比会随着新技术的现身而面临越来越大的挑战,这其中就包括SSAA本身的一种灵活的变体:多重采样抗锯齿(Multi-Sampling Anti-Aliasing,MSAA)
一张看起来精细的游戏画面,放大之后都是由像素组成的
MSAA 的原理和 SSAA 一致,都是通过将图形拉伸至更高倍率下的缓存之后再更精细的图像上进行采样,但是前者真正聪明的地方在于,再开始狮子大开口之前 MSAA 存在一个判断的过程,换句话说MSAA 仅仅针对画面中边缘部分进行放大处理,这么一来对于硬件的负担着实大大减轻,正是因为如此,MSAA早已是最流行的抗锯齿方案之一,对于任何一款稍微现代的游戏来说,不支持MSAA几乎是不可想象的.
无论是 SSAA 还是MSAA,它们的运作都集中在非常靠前的位置,比如光栅化阶段,因此对于硬件开销有较大的呼声,但是从2012年的GeForce 600系列以来,NVIDIA就已经开始推广一款全新的抗锯齿方案,其最大的特点就是出发点非常靠后,作为一款后处理抗锯齿它的硬件需求非常低,甚至达到几乎难以察觉的地步,同时因为较低的实现难度,它已经成为继 MSAA 之后最流行的抗锯齿方案之一,说到这里相信很多玩家已经猜到,这就是NVIDIA推出的 快速近似抗锯齿(Fast approximate anti-aliasing)
和更多是追求质量的的 SSAA、MSAA相比,主要工作在流水管线后端的 FXAA 来到世上的原因很直接,就是奔着更少的硬件开销来的,而在图像细节方面只追求近似值,因为就和在开篇说的,憋着一口气追求精细度并不是永远最理想的,对于硬件水平处在瓶颈的用户而言,FXAA 对于他们来说是最现实的方案.
说到 FXAA,几乎是在同一时间,NVIDIA 还推出一款针对 MSAA做出效率改进的时间性抗锯齿(TXAA),关于TXAA的技术原理,NVIDIA谈之甚少,我们知道最多的则是 NVIDIA用于对比的一组数字:TXAA 2x 的效率近似MSAA 4x,但是硬件开销依然停留在MSAA 2x,而TXAA 4x消除锯齿的效果甚至可以达到MSAA 8x的级别,不过很多时候据小编的观察和经验,MSAA 4x消除锯齿的效果大多已经非常可观. 而在进入GeForce 900 Maxwell架构之后,NVIDIA甚至针对MSAA,推出通过在不同帧之间采样的 多帧采样除锯齿(Multi-Frame Anti-Aliasing),当然,相信这方面玩家接触的比较少,因为 MFAA 在游戏中并不会单独以选项的形式存在,而是需要通过NVIDIA控制面板将 MSAA 替换为 MFAA.