左转科技

对抗MLAA NVIDIA全新FXAA抗锯齿技术实测,fxaa

左转科技 1

  PC游戏玩家肯定会对各式各样的AA抗锯齿技术非常熟悉,AMD去年发布第二代DX11显卡Radeon HD 6800系列的时候,引入了一种新型抗锯齿技术MLAA(形态抗锯齿),并在后期提供了对Radeon HD 5000系列的支持。

  传统的多重采样抗锯齿(MSAA)和超级采样抗锯齿(SSAA)都是在帧渲染的同时执行过滤,贯穿整个渲染管线,MLAA则属于一种后期处理效果,是在渲染阶段全部完成之后才应用于输出图像的。这样一来,MLAA的应用范围就要比MSAA、SSAA等广泛得多,比如全面支持DX9/10/11级别游戏,无需游戏专门优化;可提供全屏抗锯齿,而不限于多边形边缘、Alpha测试表面;能用来消除静态图像的锯齿,当然再动态画面上效果最好。

  为了对抗AMD,NVIDIA推出了全新的抗锯齿技术“FXAA”,相比AMD的大肆宣传,NVIDIA只是低调公布了这项技术,可能很多玩家可能还未听说过这项技术,但近期上市的两款游戏《永远的毁灭公爵》或者《F.3.A.R》都采用了“FXAA”,为了让大家更深入了解这项技术,下面就让我们为大家解析下何为“FXAA"

  FXAA全称为“Fast Approximate Anti-Aliasing”,翻译成中文就是“快速近似抗锯齿”。它是传统MSAA(多重采样抗锯齿)效果的一种高性能近似值。它是一种单程像素着色器,和MLAA一样运行于目标游戏渲染管线的后期处理阶段,但不像后者那样使用DirectCompute,而只是单纯的后期处理着色器,不依赖于任何GPU计算API。正因为如此,FXAA技术对显卡没有特殊要求,完全兼容NVIDIA显卡及DX9、DX10、DX11 API。

  相比于MSAA,FXAA的目标是速度更快、显存占用更低,还有着不会造成镜面模糊和亚像素模糊(表面渲染不足一个像素时的闪烁现象)的优势,而代价就是精度和质量上的损失。

  FXAA现在有三种版本:“FXAA 1”是最早最基础的版本,也是在PC游戏中使用最广泛的,已用于《F.3.A.R》、《永远的毁灭公爵》、《柯南时代》、《Crysis 2》、《无主之地》等等;“FXAA 2”是针对Xbox 360游戏机专门设计的;“FXAA 3”又有两种算法,Quality质量版本面向PC,Console主机版本则面向Xbox 360、PS3。

  FXAA 3相比于FXAA 1有很明显的性能优势,GeForce GTX 480 DX11默认设置下使用FXAA 3 Quality处理典型的720p分辨率画面只需要大约0.21毫秒。另外DX9、DX11模式下性能差异会很大,其中DX11更快一些。

  说了这么多理论知识,下面让我们一起来通过实际游戏截图来对比一下效果:

  我们选取了多款游戏同一场景分别在NO AA、FXAA、2XAA、4XAA设置下截图,为了便于网友对比,我们特意放大了细节部分,下面让我们不妨仔细观察下:

  FXAA的抗锯齿效果明显优于2xAA,甚至比4xAA也不弱!FXAA用比2xAA快很多的速度,取得了4xAA级别甚至更好的效果。截图显示了FXAA对透明Alpha纹理的影响。不开启AA的话,纹理外侧的硬边缘被平滑,但是树叶和树枝上还有大量颗粒,2xAA、4xAA下甚至更糟,只有FXAA才消除了树叶上的颗粒。

  来自NVIDIA官方的演示例图。最左侧是关闭FXAA,中间是开启FXAA但没有亚像素对比度降低,右侧就是同时开启FXAA和亚像素对比度降低了,即使不到一个像素的树叶也都被平滑了。

  前面我们曾提到:FXAA是NVIDIA为了对抗MLAA所研发出的抗锯齿技术,两者也基于相似的原理,用后处理的方式来平滑边缘像素,那么两者的画质表现又如何呢?

  通过截图对比,较真的话可以说MLAA的色彩过渡更平滑一些,但整体基本相同。

  湿润的底面上,FXAA、MLAA的效果差不多,肉眼基本看不出区别。

  放大区域的对比度略有不同,总体来说FXAA更强一些。以树叶为代表的透明纹理上,FXAA的颗粒明显比MLAA少得多。MLAA也取得了一定的效果,但是FXAA更好一些。

  FXAA能够提供与MLAA相似甚至更精美的画面质量,而且对透明树叶纹理的处理更平滑,那么其对显卡资源的消耗程度究极如何呢?会不会开启FXAA后会出现帧数大幅下降的现象呢?下面就让我们测试一下:

  我们选择了性能不俗的测试平台,I7 920+X58的经典搭配虽已算是老将,但性能仍足以满足需求,不会对显卡性能造成瓶颈。驱动方面使用了Forceware 275.50测试版驱动,对FXAA的支持已算较为完美。

  下面就让我们一起来看下GTX580显卡开启和关闭FXAA前后的帧数变化:

  从另一方面来看,FXAA更适合应用在PS3 XB360这样的家用机平台上,由于GPU性能落伍,游戏厂商在开发主机游戏时候往往在画质及运行速度间难以取舍,而全新的FXAA能够提供与4XAA接近的画质效果,性能损失却可以基本忽略,而且无需API支持,并不像MLAA那么封闭,效率也比MLAA高很多,所以在家用机平台上还是有广阔的应用前景。即将上市的PS3独占大作《神秘海域3 德雷克的欺骗》就可能采用FXAA,而且将会是FXAA3版本。

  最后让我们对比一下NVIDIA FXAA及AMD MLAA的 优劣势

  NVIDIA FXAA优点:

  - 兼容NVIDIA、AMD显卡

  - 性能影响更小(相比于MSAA、MLAA)

  - 画质与4xMSAA、MLAA基本相当

  - 定制度高,可在性能和画质之间取得平衡

  - 能够减少边缘、纹理和Shader上的锯齿

  缺点:

  - 需要游戏开发人员提供支持

  AMD MLAA优点:

  - 无需游戏特别支持,可通过驱动用于任何游戏

  - 兼容所有游戏和引擎,不管是DirectX还是OpenGL

  - 能够减少边缘、纹理和Shader上的锯齿

  缺点:

  - 仅支持AMD显卡

  - 性能影响比较大

  - 对于单像素和亚像素物体效果一般