主题 : 解析:多种抗锯齿技术,该如何选择?
千山同一月 万户尽皆春 千江有水千江月 万里无云万里天
级别: 总版主

UID: 998
精华: 0
发帖: 604963
威望: 528524 点
无痕币: 3089 WHB
贡献值: 0 点
在线时间: 61688(时)
注册时间: 2008-12-25
最后登录: 2024-03-29

0 解析:多种抗锯齿技术,该如何选择?

如果你细心留意游戏中的抗锯齿,我们可以发现SSAA、MSAA、TXAA、FXAA、MFAA等等,那么他们有什么异同?在游戏中又有什么不同的采样表现呢?希望这篇文章可以让你有所启发。
如果你注意在2016年由PlayStation 4 Pro、Project Scorpio引起的关于游戏世代的争论,你可能会觉得目前无论是图形还是硬件本身发展的速度都非常快,快到一个世代已经无法容纳7-8年的时长。当然,大家都记得世代之交后游戏画面表出现的极为快速的发展势头:越来越精细的纹理和材质、越来越华丽丰满的光影效果、越来越多样化、动态化、要素丰富的沙盘世界,然而有一项无论如何升级,近年来的原理都没有发生大的改变,这就是陪伴我们多年的抗锯齿(Anti-Aliasing)技术。

但事实上,将“Anti-Aliasing”翻译为“抗锯齿”,小编决觉得更多的只是一种语言中的巧合和便利,因为“Aliasing”本身的含义是“混淆”、混叠”,因此这一合成词的真正意思应该是“通过混叠、混淆的手段去除锯齿”,这也是抗锯齿技术背后真正的技术原理:通过“以模糊换取精确”的手段来消除显示屏幕上的锯齿,而这个过程我们就称其为“采样(Sampling)”,也就是针对某一点的像素,通过让它带有周围像素的特性,因此在足够的分辨率下,这一点便不再顽固般地锐利,也达到消除锯齿的目的。

首先要明确的是,某一个区域看上去充满锯齿,这是由图形场景本身的三维数据决定的,只不过将它投射至显示阶段时不可避免的现象,不过善于拓展的人类是最有智慧的,不同历史阶段的图形学家(其实图形大牛同时也是数学大牛)通过不同的手段实现过对于锯齿的采样原理,而我们首先从原理上最有效的超级采样抗锯齿(Super Sampling Anti-Aliasing,SSAA)抗锯齿。


通过名字就知道,SSAA最大的特点来自于采样过程,是的,以常见的SSAA*4为例,在面对一张最后需要以1920*1080像素渲染的画面时,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)。


千山同一月 万户尽皆春 千江有水千江月 万里无云万里天
级别: 总版主

UID: 998
精华: 0
发帖: 604963
威望: 528524 点
无痕币: 3089 WHB
贡献值: 0 点
在线时间: 61688(时)
注册时间: 2008-12-25
最后登录: 2024-03-29

和更多是追求质量的的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。


课堂之后是实操:睁大眼睛的时候已到(除非特别说明,以下截图全部统一截取自200%比例)
在介绍完基本的原理情况之后,我们还是通过游戏来向大家直观地展现不同的抗锯齿背后的画面表现和硬件开销,首先还是从SSAA开始,我们挑选的游戏是《古墓丽影:崛起》,它也是近期不多的使用超级采样的游戏之一。

作为画质担当的范例之一,《古墓丽影崛起》本身的画质是很强悍的,材质也非常精细,但是我们在NO AA的设置下可以看到,即使是开发者注意力最集中的劳拉身体本身,她的项链、衣领、弓箭、箭袋,以及周围的岩石、草木都有非常非常严重的锯齿,甚至已经达到影响玩家游戏的程度。我们使用性能非常强悍的GTX 1080,在最高预设画质、2560*1440分辨率、No AA、Pure Hair On的条件下使用Benchmark可以跑出79.25帧的水平。
SSAA画质与性能变化
我们再来对比开启SSAA之后的情况,首先这里可以看到SSAA的一个特点,虽然抗锯齿技术逃不过采样的过程,但是这里可以看到在开启SSAA之后,原本充满锯齿的地方首先还是一如既往的清晰、锐利,衣物和衣物的过渡干净利落,完全没有后处理抗锯齿那种模糊的感觉,而是锯齿真的缩小的既视感,不过开启SSAA的代价确实高,2倍环境下Benchmark成绩已经滑落至49.08帧。

可以见到从SSAA 2x开始已经大幅减轻,并且没有任何模糊的副作用(统一截自200%)
而看到更进阶的SSAA 4x之后,大家可以发现放大观察之后确实还有依稀的锯齿的身影,但是在全尺寸角度来看锯齿已经大大减轻,同时颇为难得的是在采样之后画面还是保持非常高的锐度,没有模糊的感觉,但是这是Benchmark成绩只有33.35帧。

最右侧的SSAA 4x可以看到采样效果非常完美
MSAA画质与性能变化
看完SSAA我们再来看看MSAA,我们选取的游戏依然是NVIDIA The Way阵营的《刺客信条:枭雄》,由于没有Benckmark,我们选取固定的大本钟下方作为测试场景。首先我们来看看No AA的条件下的观感,相信大家可以看到情况有多糟糕,不仅伊微·弗莱的手臂、披肩出现明显的锯齿,就连前额那几个像素宽的一缕刘海也出现明显的锯齿,不仅如此,不远的栏杆,远处的楼房、树叶的锯齿也非常明显,仿佛进入一个刺猬构成的世界,在2560*1440分辨率、最高预设画质下我们选择大本钟下方的桥作为测试场景,录得帧率为77.654帧。

测试路线

我们再来看看MSAA 2x的环境,首先这里可以看到虽然伊微前额那缕刘海的锯齿已经不见,但是整条刘海也已经变得不再清晰——注意,这种很窄的线条最能看出抗锯齿的采样效果。我们可以简单对比一下周围栏杆、楼房、树木的抗锯齿效果,虽然有点模糊的副作用,但是看得出锯齿已经明显减轻很多,作为代价,重新测试的帧率为64.676帧,还在可接受的范围内。

至于MSAA 4x,我们可以看到锯齿已经更加罕见,但或许是Over-Size Buffer的关系,在高倍率的采样之后,似乎MSAA 4x在边缘部分的清晰度要比MSAA 2x更加优秀,唯一的代价是,MSAA 4x的帧率已经跌至53.973帧。

在前面已经说过,MFAA和MSAA在同倍数下的硬件开销是接近的,但是前者的采样效果更好,我们来简单对比一下硬件开销,在相同的测试环境下,MFAA 2x的帧数为62.576,而MFAA 4x的帧数为53,316帧,确实和MSAA很接近,但是在实际的处理上,小编并没有看到太多不同,但是在正面面对强光的时候,MFAA仿佛会丢失更多细节,而且在对较远的楼房上的横置木板放大之后,小编发现MFAA还是有些细微的锯齿,看来在帧与帧之间采样确实不如在单帧上来的好掌握。

开启MSAA 4x之后,刘海已经很模糊
TXAA/MFAA画质与性能变化
至于TXAA,在硬件开销上确实如同所宣传的,和MSAA、MFAA都很接近:62.761、53.863帧,但是在简单对比之后小编发现相比MSAA、MFAA,TXAA还是要明显的模糊一些,证据是放大远处的楼房的时候,前两者还能明显看到其中木板的细节,但是在TXAA中要明显更加模糊,已经无从谈起楼房上方木板的细节。
千山同一月 万户尽皆春 千江有水千江月 万里无云万里天
级别: 总版主

UID: 998
精华: 0
发帖: 604963
威望: 528524 点
无痕币: 3089 WHB
贡献值: 0 点
在线时间: 61688(时)
注册时间: 2008-12-25
最后登录: 2024-03-29





FXAA画质与性能变化
最后再来说说FXAA,前面其实我们有谈到过,相比其他抗锯齿主要依赖于大范围的采样,FXAA则主要依靠后处理的算法,若是算法控制得当,那么在画面的精细度、硬件开销方面会很有保证,但是如果控制失误,那么就会出现明显的模糊,相比这方面很多用户都体验过,FXAA很多时候都会带来一种仿佛隔着玻璃看显示器的感觉,这就是FXAA的采样算法没有处理好的证据。


有一种声音称在技术开发的早期,也就是2011、2012年,FXAA的算法确实有上升的空间,但是就现在来说,FXAA已经有很大的改观,是这样吗?我们就拿第一款支持FXAA的《上古卷轴V:天际》、《杀手6》和《刺客信条:枭雄》来对比一番。
首先看到《上古卷轴V:天际》,我们选择玩家最熟悉的溪木镇作为测试环境,我们首先关闭抗锯齿,在村镇的门口截一张图,大家可以看到这张图的锯齿并不算多,主要是建筑的屋顶和左侧的草丛有较为集中的锯齿,再村外的路牌中我们则可以看到较多较为明显的基础,我们在同样是1440P、最高预设画质下跑一圈溪木镇,测得帧数为131.463帧,而开启FXAA之后测得帧数为130.996,可见影响非常小。



开启FXAA之后,我们首先可以看到村口左侧的草丛出现明显的模糊,但是村口的路牌出的锯齿消除效果却屏不理想,锯齿还是在目力所及之内,但是硬件开销非常低,近乎可以忽略不计:130.996帧。
那么在2015年发售的《刺客信条:枭雄》的表现呢?我们首先看看截图,至少从效果来看并不算模糊,至少比TXAA要清晰得多,不过硬件开销确实非常低,帧率达到74.884,影响百分比甚至不到4%。那么在2016年发售的《杀手6》中的表现呢?帧率影响更加毫发般微小:No AA 88.718帧,FXAA 88.586帧,相差一帧都不到。
所以说到最后,相信你已经对于各种抗锯齿已经有初步的印象:SSAA从采样的效果来说是最理想的,但是因为目前支持SSAA的游戏并不算多,因此如果你在玩一款喜欢的游戏且支持SSAA,为追求最好的采样效果你可以尝试降低其他特效,再打开SSAA 2x。但就更普遍的情况来说,MSAA不仅支持非常广泛,锐度也没有失去,而帧数在低倍率下损失的并不多,是一种综合采样效果、帧率比较理想的方案,当然,如果运用得当FXAA会是最理想的一种抗锯齿,硬件开销最少,消除锯齿的效果也不错,但是这需要开发团队一定的水平,而原本小编抱有不小信心的TXAA则虽然硬件开销不大,但是带来的模糊副作用竟然比FXAA更严重,总得来说,小编自己在游戏中一般使用最多的是FXAA和MSAA 2x。
级别: 二分秋色
UID: 280487
精华: 0
发帖: 28
威望: 361 点
无痕币: 402 WHB
贡献值: 0 点
在线时间: 5(时)
注册时间: 2017-02-11
最后登录: 2018-04-18

goojdob。。。。。。。。。。。。
级别: 四缕秋风
UID: 91766
精华: 0
发帖: 685
威望: 1647 点
无痕币: 3374 WHB
贡献值: 0 点
在线时间: 853(时)
注册时间: 2009-11-07
最后登录: 2023-03-16

技术文章,学习了
Total 0.038601(s) query 4, Time now is:03-29 19:02, Gzip enabled 粤ICP备07514325号-1
Powered by PHPWind v7.3.2 Certificate Code © 2003-13 秋无痕论坛