推荐FXAA:AMD反行其道原为何?

在EA一轮又一轮“狂轰乱炸”式宣传以及吊人胃口的Beta测试之后,10月25日,万众瞩目的DX11 FPS大作《战地3》终于降世。次日一早,EA就豪言对外宣布,近300的预定量已经破了该公司记录,成为公司史上最成功的射击游戏首发。一周之后,“预计”500万的销量,又使该作荣登历史上销售最快的游戏宝座。

是EA沽名钓誉,还是《战地3》真的如此受宠?至少,在《使命召唤3》到来之前,很难想出能够拒绝这样一款游戏的理由。

在被“寒霜2”引擎绘出的一幅幅逼真、绚丽、真实的战地场景吸引地找不着北之后,随后我们就被DICE一纸官方配置需求彻底吓晕了。在格外醒目地彻底宣布和XP党告别之外,在推荐配置的主要配件云云之中,还赫然躺着几个大字:GeForce GTX 460、Radeon HD 6850或更高级别。

听到怀揣老爷机用户的各种悲鸣声之际,看到一幕幕被卡到疯掉之后的抓狂面孔。除了拿出荷包里的票票升级显卡之外,还能做点什么吗?

坦白说,在《战地3》发布之初,笔者就进行了试玩以及简单测试。不过,由于各种各样的原因致使未能第一时间奉上详细的测试,延期至今,深表歉意。面对如此火热的一款大作,各种评测数据自然是铺天盖地,基本上传统测试该有的都有了,比如前段时间我们的上方大大引用Tom's Hardware的一篇测试就相当全面,涵盖了29款显卡之多。

另外,关于《战地3》采用的“寒霜2”引擎以及相关DX11特效技术,也已有文章着墨较多,这里不再一一赘述了。由于手头没有这么多显卡,而且人云亦云也并没有太大必要,所以本次测试我们会用另一个角度出发,看看到底如何在保证一定画质的条件下获得更好的游戏流畅度,测试流程上较以往也会更加详细,我想这样无论是对已经玩上还是尚未尝鲜的朋友都更加具有实际意义。毕竟没有了流畅度,再多的特效、再真实的画面也都是浮云而已。


AMD官方提供的测试数据

事实上,在《战地3》发布不久之后,AMD公关经理Antal Tungler就亲自撰写了一份优化测试指南,推荐玩家在游戏抗锯齿选项上使用NVIDIA的快速近似抗锯齿FXAA,而且向各大媒体进行了公布。并着重说明了FXAA相比MSAA应用更加广泛,在同样能够起效的物体上效果差不多,而且最重要的是对显卡资源消耗很小,不像MSAA动不动就将帧率降低一半。

但是,此时向媒体提供评测指南,不免让人想入非非,而后来各种测试中的A卡弱势更使得AMD此举有钻空子嫌疑。说到底,还是《战地3》对显卡要求极高,而且自家的产品并不占优。不过,既然AMD能横下心向玩家推广竞争对手的技术,看来确实能够从中受益良多。而既然是NVIDIA的技术,肯定对自家显卡百利无害。如果在不影响画质的基础上,这对玩家来讲未尝不是一件好事。接下来要做的就是辨其真伪,嫌官方测试不靠谱?那么我们自己来实际验证吧。

溯本归源 FXAA到底是个啥?

既然这里提到了FXAA和MSAA,而且二者是接下来要优化测试的对象,下面就来详细介绍一下。

说起AA(Anti-Aliasing)抗锯齿,只要玩过游戏的人都不会陌生,反映到实际中的作用就是将游戏图像边缘及其两侧的像素颜色进行混合,然后用新生成的具有混合特性的点来替换原来位置上的点以达到柔化物体外形、消除锯齿的效果,是物体边缘看起来更加平滑。

经过数十年的发展,AA也衍生出了各种各样的形态。主要可以分为Hardware AA(硬件AA)和Post Process AA(后处理AA)这两大类,而这两种又分别演变中各种子集形态。相比之下,硬件AA要十分依赖于硬件性能,而后处理AA则要轻的多。

硬件AA中比较有代表性的就是比较通用的MSAA(MultiSampling Anti-Aliasing)多重采样抗锯齿(其余还有SSAA、CSAA,这里限于篇幅就不再介绍了)。该技术源于OpenGL,是NVIDIA于NV20核心上首次引用,通俗来说就是将游戏3D模型边缘部分放大处理,从而使其看起来更加平滑。MSAA在抗锯齿效果上相当不错,消耗的显卡资源有所降低,但也是相比更加耗资源的SSAA来说的。


FXAA抗锯齿处理过程

而相比之下,FXAA (Fast Approximate Anti-Aliasing)快速近似抗锯齿就算是后处理AA中的后起之秀了,直到今年NVIDIA才将之公之于众。从效果上来看,它是MSAA的一种高性能近似值,而运行原理则非常相AMD更早推出的MLAA(Morphological Antialiasing)形态抗锯齿,一样运行于目标游戏渲染管线的后期处理阶段。但不像后者那样使用DirectCompute,而只是单纯的后期处理着色器,不依赖于任何GPU计算API。所以,FXAA技术对显卡没有特殊要求,可以同时兼容NVIDIA、AMD的不同显卡和DX9、DX10、DX11。所以,也就不奇怪为何AMD会推荐用户使用FXAA了。相比MSAA,FXAA对硬件的依赖度更小,资源消耗更低速度更快。


《战地》中的反锯齿后处理即为FXAA选项


也可以通过通过驱动面板开启

对比MSAA 效果几乎没区别

说了这么多,恐怕大家最关心的还是在《战地3》中,放弃MSAA而启用FXAA会不会造成画面精度和质量上的损失呢?跟MSAA的效果有差距吗?为了一探究竟,我们分别在以下两个场景进行对比。截图均来自1920x1200分辨率最高画质,后期放大截取。


4MSAA FXAA高,栏杆表面光滑,没有锯齿感


2MSAA FXAA高,效果同上,基本没有差别


0MSAA FXAA高,栏杆有少许锯齿感,但并不易察觉


0MSAA FXAA关,锯齿感开始比较明显


4MSAA FXAA高,没有丝毫锯齿感,椅子腿看起来比较光滑


2MSAA FXAA高,和上图看不出有什么差别


0MSAA FXAA高,依然难以分别出锯齿


0MSAA FXAA关,可以明显看到锯齿的出现,椅子腿看起来不平滑了

通过以上对比不难看出,即便是关闭MSAA之后,只要将FXAA调至高级别,物体边缘看起来依然平滑,基本上和4MSAA没有什么差别;而如果关闭FXAA,锯齿感就比较严重了。所以,从对画质的影响上来看,FXAA和MSAA效果十分接近。至少这一点,和AMD的说法是基本吻合的。那对游戏流畅度的影响呢?

9款显卡验证 FXAA/MSAA性能对比测试

具体测试平台如下:

测试平台配置

处理器

Intel Core i7 920 oc 3.2GHz

主板

微星X58白金版

内存

海盗船XMS3-1600 2GB x3

显卡

GeForce GTX 580(772/4008MHz)

GeForce GTX 570(732/3800MHz)

GeForce GTX 560 Ti(850/4008MHz)

GeForce GTX 560(810/4004MHz)

GeForce GTX 550 Ti(900/4104MHz)

Radeon HD 6970(880/5500MHz)

Radeon HD 6950(800/5000MHz)

Radeon HD 6870(900/4200MHz)

Radeon HD 6850(775/4000MHz)

硬盘

希捷7200.12 1T

电源

超频三青金石750豪华版

散热器

利民U120E

操作系统

Microsoft Windows 7 64bit中文版

测试方法

游戏中“进退两难”关卡,开头场景,耗时60秒,采用Fraps测帧,同时记录平均FPS以及最小FPS。

驱动程序

NVIDA显卡驱动程序285.62 WHQL for Win7 64bit

AMD显卡催化剂11.10正式版 for Win7 64bit

www.mydrivers.com

测试显卡我们分别选择了NVIDIA的五款以及AMD的四款,没有选择更低端显卡的原因也是因为AA优化并非没有底限,要想在保证高画质的基础上玩爽《战地3》,一定性能级别的显卡还是必须的,比如NVIDIA的GTX以及AMD的HD 6700系列以下就基本没有太大可塑性。以上参测显卡部分为非公版,也同样调至公版频率。

没有内置Benchmark测试程序也是很多FPS游戏的惯例,这里依然采用Fraps进行测帧。由于《战地3》关卡较多,为了尽可能的反应游戏的真实要求水平,并且保证测试的准确性,我们最终选择了“进退两难”关卡开头场景,耗时为60秒,同时记录平均FPS以及最小FPS。每次测试均为3遍,在保证没有太大测试误差的情况下,以最好的结果为准。


《战地3》图形设定选项

测试驱动分别为最新的285.62 WHQL以及11.10 正式版。下面的结果均在1920x1200分辨率、最高画质条件下测得。看看我们能够在高分辨最高画质下,是否也能获得意想不到的效果。

对于一款第一人称射击游戏,尤其是又以联机模式见长的《战地3》来说,没有40 FPS以上是基本不具备可玩性的。在1920x1200分辨率、最高画质以及4MSAA、高FXAA条件下,即便是GeForce GTX 580也仅有平均54 FPS,最低不过42 FPS,勉强合格,而自GeForce GTX 570、Radeon HD 6950以下的所有显卡均未能达标。看来,官方推荐配置也并非只是吓唬人而已。

而后,我们将MSAA降低到2倍,各款显卡瞬间“如获新生”,无论是高端卡还是主流卡均得到了不同程度的帧数提升。除了相对低端的GeForce GTX 550 Ti和Radeon HD 6850之外,基本上其它几款显卡都具备了不错的流畅度。要知道,通过前面的对比,只要FXAA开到高,2MSAA和4MSAA的效果是基本没有区别的。

最终,索性关闭MSAA。以GeForce GTX 550 Ti和Radeon HD 6850为例,相比2MSAA条件下FPS分别提升了6帧和9帧,而最低FPS也分别从20、22帧提高到23、30。从不具备可玩性,到基本能玩,效果提升还是比较显著的。而且,别忘了,这并非在牺牲绝对画质的基础上得来的。

以上三则测试,我们着重对比的是MSAA对各款显卡的性能影响,可以确定的是无论A卡还是N卡在降低或关闭MSAA之后,性能都有了相当大幅度的提升。虽然这里两家显卡的性能对比并非重点,但是还是忍不住多说两句。首先,无论在哪种设置下,相同档次的A卡都要明显处于劣势,这一点和之前众多媒体的测试结果是吻合的。其次,在降低或者关闭MSAA之后,A卡的提升幅度要平均高于N卡;反过来说就是提升或者开启MSAA之后,A卡的性能损失要高于N卡;最后,即便是关闭MSAA之后,要想在高画质下玩爽《战地3》,GeForce GTX 550 Ti和Radeon HD 6850已经算是底线;也就是说,N卡我们推荐GTX系列级别的显卡,而A卡则需要HD 6800以上。

对号入座 各显卡帧数变化一览及小结

为了更直观的反应各款显卡的前后帧率变化,我们将每款显卡的在60秒测试时间内的FPS变化图绘制如下:


关闭MSAA,平均FPS从54帧提升到71帧,最小FPS由42帧提升到60帧


关闭MSAA,平均FPS从47帧提升到64帧,最小FPS由34帧提升到47帧


关闭MSAA,平均FPS从39帧提升到60帧,最小FPS由24帧提升到41帧


关闭MSAA,平均FPS从30帧提升到49帧,最小FPS由19帧提升到35帧


关闭MSAA,平均FPS从21帧提升到32帧,最小FPS由17帧提升到23帧


关闭MSAA,平均FPS从47帧提升到69帧,最小FPS由33帧提升到56帧


关闭MSAA,平均FPS从41帧提升到61帧,最小FPS由30帧提升到46帧


关闭MSAA,平均FPS从34帧提升到52帧,最小FPS由24帧提升到36帧


关闭MSAA,平均FPS从23帧提升到39帧,最小FPS由14帧提升到30帧

无论是平均FPS还是最小FPS,开启MSAA带来的性能拖累是十分显著的。关闭之后,平均FPS提升20帧以上的显卡也不在少数。所以即便是拥有GeForce GTX 580、Radeon HD 6970级别显卡的玩家,不妨也关闭MSAA,将FXAA设置为高。毕竟,用极其微弱的画质牺牲,换来近20帧的性能提升,还是相当值得的。

这里唯一有些问题的还是最低端的GeForce GTX 550 Ti和Radeon HD 6850,虽然帧数有了很大幅度的提升,但平均32和39帧只能算是刚刚及格,想要玩爽游戏依然还有差距。

于是,我们又进行了如下的测试,看看降低画质和分辨率之后如何,也借此为中低端显卡玩家提供一个类比参考。(图片点击可放大)

很明显,降低分辨率之后,帧数上升还是比较明显的,在其它设置不变的情况下,幅度约为5-6帧。而相比之下,由最高画质调到高画质仅有1-2帧的提高。

而如果依然选择高倍MSAA,即便是降低分辨率和画质之后(包括将HBAO改为SSAO),游戏帧数的提升依然相当有限,依然不具备流畅游戏的及格线。

对于GeForce GTX 550 Ti、Radeon HD 6850及以下级别的显卡,可以基本参照以上两点进行设置。


最后,对于《战地3》,果断放弃MSAA吧!

详解《战地3》AA优化之道相关推荐

  1. Web.config详解+asp.net优化(1)

    一.认识Web.config文件 Web.config 文件是一个xml文本文件,它用来储存 asp.NET Web 应用程序的配置信息(如最常用的设置asp.NET Web 应用程序的身份验证方式) ...

  2. Web.config详解+asp.net优化

    Web.config详解+asp.net优化(1) 一.认识Web.config文件 Web.config 文件是一个xml文本文件,它用来储存 asp.NET Web 应用程序的配置信息(如最常用的 ...

  3. linux系统服务详解 用于Linux系统服务优化

    linux系统服务详解 用于Linux系统服务优化 服务名        必需(是/否)用途描述        注解 acon              否       语言支持        特别支 ...

  4. 减少HTTP请求之合并图片详解(大型网站优化技术)

    一.相关知识讲解 看过雅虎的前端优化35条建议,都知道优化前端是有多么重要.页面的加载速度直接影响到用户的体验.80%的终端用户响应时间都花在了前端上,其中大部分时间都在下载页面上的各种组件:图片,样 ...

  5. ThreadPoolExecutor详解及线程池优化

    前言 ThreadPoolExecutor在concurrent包下,是我们最常用的类之一.无论是做大数据的,还是写业务开发,对其透彻的理解以及如何发挥更好的性能,成为了我们在更好的coding道路上 ...

  6. IBM虚拟化与云计算研究员吴玉会——虚拟化三大优势详解:共享、优化、管理...

    IBM虚拟化与云计算专家- IT热书<虚拟化与云计算>作者组做客51CTO巅峰访谈-2 IBM虚拟化与云计算研究员吴玉会--虚拟化三大优势详解:共享.优化.管理 <虚拟化与云计算&g ...

  7. 生产线平衡如何改善?详解:生产线平衡优化改善方法与措施!

    对于制造企业来说,生产线平衡如何改善的问题是一个老生常谈的话题,因为对生产线平衡做好改善,无论是对企业今后的发展还是应对多变的市场环境方面都有这其他项目不可比拟的优势所在,所以做好生产线平衡改善工作是 ...

  8. ECRS软件分享:生产线平衡如何改善?详解:生产线平衡优化改善方法与措施!

    对于制造企业来说,生产线平衡如何改善的问题是一个老生常谈的话题,因为对生产线平衡做好改善,无论是对企业今后的发展还是应对多变的市场环境方面都有这其他项目不可比拟的优势所在,所以做好生产线平衡改善工作是 ...

  9. java内存优化详解_jvm堆内存优化详解

    在日常的运维工作中用到tomcat,都需要对tomcat中的jvm虚拟机进行优化,只有知道需要优化参数的具体用处,才能深刻体会优化jvm的意义所在. 在平常的工作中我们谈对jvm的优化,主要是针对ja ...

最新文章

  1. 用什么软件可以开在线会议啊?
  2. 怎么调用获取被创建的预制体_Uber 开源 Plato:扩展性极强的开发测试会话 AI 平台,可实现多智能体并行训练...
  3. asp.net多语言设置方法
  4. Node.js 的原型注入方法
  5. MySQL日期 专题
  6. 优控触摸屏使用手册_中达优控plc触摸屏一体机说明书资料
  7. 奥运五环(一键复制)
  8. 我的ubuntu论坛账号
  9. 普及练习场 深度优先搜索 八皇后
  10. 定时任务实现(中午12点执行,每1分钟执行一次)
  11. 局域网服务器如何设置代理访问公网
  12. 入职一年感言简短_如何在Windows任务栏中放入简短说明
  13. 7-10 学生成绩排序 (15 分)
  14. warning:iteration 7 invokes undefined behavior
  15. 请用python代码表示什么_深度解析什么是二维码?用Python 5行代码生成个性二维码...
  16. 服务器维护 测试化验加工费,测试化验加工费什么意思
  17. AAPT: error: resource drawable...not found.
  18. stm32【 1.3寸LCD屏幕(2)】
  19. 不用密码卸载symantec
  20. 中国协作机器人行业投资潜力规划及未来发展趋势报告2021-2027年

热门文章

  1. uni-app报错 caniuse-lite is outdated 解决方案
  2. 3dmax阵列你会用吗?3dmax阵列是这样用的!
  3. 颜语言(网络交往语言)
  4. centos挂载硬盘时提示mount:unknown filesystem type 'LVM2_member'的解决方案
  5. 微信小游戏跳一跳辅助尝试留言版
  6. 我为什么选择了数据分析(朋友5000字心得总结分享)
  7. C语言异或位运算小记:
  8. 【小白课程】openKylin U盘启动器介绍
  9. python排序算法代码
  10. 微信公众号如何做直播?从选内容开始