mjsong 发表于 2011-2-7 13:27:03

如何正确地为您的游戏设置抗锯齿模式


MSAA,SSAA,CSAA,CFAA...如何正确地为您的游戏设置抗锯齿模式
显卡经过多年的发展,其性能越来越强劲,功耗越来越大,价格也是越来越高.很多游戏爱好者的电脑里,显卡都是最贵的部件了.然而与之对应的是,抗锯齿技术在现在的显卡里也是越来越复杂,而且让人困惑.MSAA,CSAA,CFAA,SSAA,Quincunx,Narrow Tent, Wide Tent,Edge Detect,Temporal AA, Adaptive AA...Nvidia和AMD(ATI)竞相推出了无数的抗锯齿名词,打定了主意要把玩家们搞得头昏脑胀!. L! k, I/ ^- y1 _9 d# x
数字娱乐网但是最糟的还不是这么多的名词,不知从何时开始,不少游戏都开始需要特殊的方式才能打开抗锯齿,或者打开抗锯齿后某些局部狗牙依旧.另外,驱动中抗锯齿设定极其复杂,而且某些较高的设置反而会让整个画面都显得异常模糊.这些情况经常让人空有一块强劲的显卡而无法发挥,要享受高质量的游戏画面却变成了一件困难的事情!本文将首先简明的介绍与抗锯齿相关的各种技术和名词,然后仔细地为大家介绍如何针对Nvidia显卡和ATI显卡进行合理的抗锯齿模式设置,以获得亮丽的游戏画面以及流畅的性能.3 u! m2 s) Z! v* e' u5 A; f$ n
数字娱乐网                                    抗锯齿技术小传及简介
最早的抗锯齿技术叫做FSAA,来自于3dfx,这个曾经的霸主,现代3D显示技术的奠基者和开拓者.FSAA是Full Scene Anti-aliasing的缩写,翻译过来是全屏抗锯齿的意思.这个技术就是简单的以当前分辨率几倍的像素数进行渲染,然后再缩小到当前的分辨率,这样就自然而然地消除了屏幕上的锯齿.下图就是640x480分辨率下不开AA,2xFSAA和4xFSAA的比较.
数字娱乐网                                                                                 http://bbs.cfan.com.cn/attachments/day_110101/110101212332d1bd868dce25a1.png
这种技术的本质其实就是Super Sampling,翻译过来叫做超采样或者过采样,其实接下来的各种抗锯齿技术都是基于这个技术的.由于FSAA要以原来的两倍到数倍的像素数来渲染图像,这种方式是非常耗费显卡的资源的.以4xFSAA为例,在当时流行的1024x768分辨率下游戏,实际需要渲染的图像分辨率就是2048x1532,对于显卡的性能和显存大小是极大的考验.但是这种简单的方式所带来的画面质量也是最好的,屏幕上的任何锯齿都可以被有效的消除,所带来的副作用仅仅是相比不开FSAA有极轻度的模糊.
数字娱乐    3dfx推出FSAA没多久,Nvidia和ATI也都开始支持FSAA技术.2000年底,3dfx被Nvidia收购,三国演艺退化成了双雄争霸.相比3dfx,剩下的两位往往都会在帧率和画质的权衡上偏向帧率一点.2001年,Nvidia推出了Geforce3显卡.伴随而来的就是取代3dfx的FSAA的MSAA技术.MSAA是Multi Sampling Anti-Aliasing的缩写.翻译过来叫做多重采样抗锯齿.单看名字,会让人觉得有点云里雾里的感觉.实质上呢,这是一种"偷工减料"的抗锯齿技术.简单地说,这种技术就是只对游戏画面中锯齿最多的地方--物体的边缘进行抗锯齿处理.处理的方式仍然是和FSAA技术相同的SuperSampling.由于只对整个画面中的一小部分进行处理,所以所需要的额外资源大大减小,对帧率的影响较小,可以说是一种很"聪明"的做法.当然,整体的画面质量对比3dfx的FSAA会有所不如.总的来说,MSAA的特点是实用,对于不希望以太大代价提高画面量的玩家是个福音.2 r: f8 ~/ N$ j/ |/ }
数字娱乐网本来就对3dfx的FSAA技术颇不以为然的ATI也迅速地开始支持MSAA.这个技术的出现虽然是好事,但是从画质上来说并不足以取代FSAA.可是Nvidia和ATI并不这么想,两者都逐渐放弃了对FSAA的支持.于是,画质最好的FSAA技术随着3dfx的被收购而烟消云散,MSAA在数年里都成了玩家们唯一的选择.这以后,很多人仍然把各种抗锯齿技术都叫做FSAA,从广义上来理解,或许并无不妥.但是,那个属于3dfx,画质绝佳,曾经风靡一时的FSAA早已被扼杀.7 f2 b$ [. Y6 H+ G( y+ B
数字娱乐网基于MSAA,NVIDIA和ATI都发展出了不同的技术.但大多是为了更快的帧率,而稍有真正提高画质的技术出现.' V# A* b6 O! H# Q* S" w
2001年,Nvidia推出了采用Quincunx算法的抗锯齿技术,Quincunx的意思是五点梅花排列采样法.这个算法对于显卡的开销极小,而且对于边缘也能起到很好的抗锯齿作用,但是却会让整个画面变得非常的模糊.Nvidia宣称Quincunx算法能以2x的性能损耗带来4x的画面效果,并一度大力推广.不过玩家的眼睛是雪亮的,真正使用这个技术来进行游戏的人少之又少.
数字娱乐网2007年,Nvidia又推出了CSAA.这是Coverage Sampling AA的缩写.意思是覆盖采样抗锯齿.这种技术是普通的MSAA的改进版,提升了不小的性能,而在同样的倍数设定下画质也没有明显下降,所以采用这种技术可以达到很高的抗锯齿倍数,目前单卡最高可设到16x,而MSAA则只能到8x,通算下来还是CSAA能提供最好的画质.这个技术可说是相当成功,是目前Nvidia的主力抗锯齿技术.
数字娱乐网同在2007年,ATI也发布了自己的CFAA技术.CFAA是Customer Filter AA的缩写.意思是定制滤镜抗锯齿.这个技术同样也是对MSAA进行改进得到.ATI在驱动里让玩家可以设定滤镜,也就是对MSAA的改进方式.选择Box就是普通的MSAA,Narrow-Tent和Wide-Tent是改进的实现方式.这两种方式的遭遇和Nvidia以前的Quincunx技术相似,虽然比普通的MSAA性能有提升,但是会让画面变得比较模糊.因此同样不受玩家们的待见.2008年,随着ATI的HD4000系列的发布,一种新的Edge Detect的滤镜被加了进来.这种方式让ATI显卡的AA画质一改上一年的颓势.Edge Detect模式下,抗锯齿倍数最高可达24x.其画质超过Nvidia的16x CSAA. 另外,Edge Detect模式采用了和其他AA模式不同的工作机制,它不需要更多的显存资源,而是用流处理器(Stream Processor)来对AA进行处理.这样,在运行对Shader运算较少的游戏时,这个模式所带来的性能损失就会比较小.4 B( l) l( ~8 {: C, e8 D7 F% d
数字娱乐   CSAA和CFAA固然在画质和性能上都比普通的MSAA有了提升,但是因为它们都是基于MSAA,所以MSAA的一些硬伤它们也无法避免.由于需要分辨画面中哪些部分需要进行抗锯齿处理,MSAA往往需要游戏对其良好的支持.另外,一些新技术的出现也往往会让MSAA失效.最近几年里,透明纹理,HDR技术(高动态范围),阴影的抗锯齿,UE3引擎等都让MSAA吃尽了苦头.其中大多数问题,Nvidia和ATI都花了很长的时间通过驱动的修改来解决.而对于其中的透明纹理这个问题,Nvidia和ATI都特地开发了新的AA技术.
# |! e+ x6 i3 ], V* i1 U
http://bbs.cfan.com.cn/attachments/day_110101/1101012123a508c9d32543bc24.jpg

* Y6 k, V* A6 b* S4 k6 e
http://bbs.cfan.com.cn/attachments/day_110101/1101012123eda73324d598e6f8.jpg

/ l5 N% j* N3 Q+ b
游戏中经常出现的树叶和铁丝网就是典型的透明纹理.这些都是MSAA无法触及的地方.只要游戏里树叶一多,画面往往就会显得有些惨不忍睹.Nvidia为此开发了Transparency AA技术,ATI随后也推出了Temporal AA(后改名为Adaptive AA)技术.它们都是对于MSAA技术的补充,专门处理透明纹理.和MSAA同时打开以后,可以对整个画面都进行有效的抗锯齿处理,当然,也会有一定的性能损失.
即使经过这么多的修修补补,在如今的游戏里,MSAA往往仍然不能照顾到画面里的所有容易出现的锯齿的地方.对于重视画质的玩家来说,抗锯齿变成了一个让人有些抓狂的功能.即使开了再高的抗锯齿,某些地方的狗牙仍然顽固地折磨着玩家们的眼睛.当年3dfx的FSAA如果还在该有多好!可喜的是,近年来这种技术又有回归之势,这就是SSAA.首先是一个叫nHancer的非官方工具软件的出现,让Nvidia用户可以打开驱动中并未正式支持的SSAA功能.Nvidia的SSAA的实现和3dfx的FSAA其实大致相同,除了某些细节不同导致画质稍差以外.不过2x的SSAA就等于以前的4x的FSAA.也就是说,2x的SSAA就会对1024x768的游戏画面用2048x1536的分辨率进行渲染.可以想见的是,性能损耗一定巨大.不过其画质也是毫无疑问的大大优于MSAA及其衍生技术.- V0 B+ @* p" ]; P2 d7 j" Q
数字娱乐从HD5000系列显卡开始,AMD(ATI)开始正式在驱动里支持DX9和OpenGL模式下的SSAA.下面就是在ATI的5870上打开8xMSAA以及Adaptive AA和打开8xSSAA的对比.可以看到前者在某些局部仍然有锯齿,而SSAA的效果就完美得多了.这个趋势不由得让我们对抗锯齿技术的未来开始充满了希望.
数字娱乐网http://bbs.cfan.com.cn/attachments/day_110101/11010121236a76396c074354e4.png


http://bbs.cfan.com.cn/attachments/day_110101/1101012123ceea7b6116db5e0b.png


从伴随HD6000系列显卡而来的催化剂10.10C驱动开始,AMD去掉了Wide Tent和Narrow Tent两种广受质疑的AA方式,另外加入了一种叫做Morphological AA (MLAA)的抗锯齿方式。这种方式对系统性能损耗极小,而且象SSAA一样能对画面中所有边缘进行抗锯齿处理,缺点是会让画面模糊一些,在文本很多的游戏中不太适用。( l) d5 k- @"
) e3 VN) ~! \~2 R
                            AMD(ATI)显卡的抗锯齿设置
ATI的驱动程序设置界面叫做Catalyst Control Center(以下简称CCC,需要微软的Framework 2.0才能运行).关于AA的设置主要分3块:AA,Adaptive AA和AA mode.(最后的AA mode仅在使用HD5000系列显卡时才会出现.更老的显卡虽然可以通过修改注册表在某些版本驱动中让这个选项出现,但最多只能在OpenGL中生效.)- v# c$ _- o6 q9 B
AA部分是其中最主要的设定.如下图所示.第一个选项是Use application settings.意思是用游戏内的设定来决定AA的倍数.千万不要认为不选这个选项就可以用这里的选项来替代游戏里的选项.ATI显卡的AA设定的原则是,在游戏内有AA设定时,应该选中Use application settings,然后用游戏内的AA设定来调整.只有当游戏本身没有AA选项时,才需要去掉Use application settings前面的勾,让驱动来尝试强行对游戏进行抗锯齿处理.在大多数情况下,如果游戏本身有AA选项,去掉Use application settings的话,无论游戏中如何设置,结果往往都是AA根本就打不开!# {# A* o) K" {/ O6 n- b& T* P, G) p
http://bbs.cfan.com.cn/attachments/day_110101/1101012123372ae488be0c097b.png
下面的滑动条是设定AA的倍数的,在选中Use application settings时变成灰色,无法拖动.不过最下面的Filter则是即使在Use application settings时也会生效的.Filter里面选择的就是前面所述的MSAA所使用的滤镜.这里建议选择Box以使用普通的MSAA,或者Edge Detect来获得更高质量的画面.至于Narrow Tent和Wide Tent这两个滤镜,除非您喜欢带朦胧感的游戏画面,建议不要选择.另外,从10.10开始,Narrow Tent和Wide Tent已经被去掉,另外加入了形态滤波,也就是MLAA的选项。: N3 D& }6 q0 B, M% I5 h
Adaptive AA这部分的设定是比较简单的.您可以选择是否打开Adaptive AA,以及在Performance(性能)和Quality(质量)里面选择,选择Quality的话,最好做好性能下降较大的心理准备.
HD5000系列才有的AA mode选项就更简单了,就是在MSAA和SSAA中选择.就如前面所分析的,SSAA能给您带来最完整的抗锯齿效果和最佳的游戏画面,但是性能损失也是巨大的,量力而行吧!* Z0 L' A7 l+ N* G: d' e. ]
在使用ATI显卡进行游戏时,有时会发现怎么设置也无法在游戏中实现抗锯齿的效果.这种现象常见于使用HDR技术或者UT3.0引擎的游戏中.对此,ATI显卡只能通过驱动中进行特殊的处理才能在这些游戏中打开抗锯齿.不过ATI的驱动只能在很少数的几个游戏中自动进行这些特殊处理,比如上古卷轴4:湮没 (The Elder Scrolls 4: Oblivion),生化奇兵(Bioshock),虚幻竞技场3(Unreal Tournament 3). 不过在其他的游戏中,我们往往可以把游戏执行文件名重命名为这几个游戏的名字,来达到让ATI强制在这些游戏中打开抗锯齿的效果.这三个游戏的执行文件名分别是Oblibion.exe, Bioshock.exe, UT3.exe.改名后在驱动中打开Catalyst AI,然后运行改过名字的执行文件即可.Nvidia显卡的抗锯齿设置% f+ L3 I1 R4 c6 N( k1 f2 C( e# b5 O
Nvidia显卡的抗锯齿设置相对ATI显卡比较简单.不过值得注意的是,Nvidia的驱动里的AA设置优先级是高于游戏里的AA设置的.当您把Application Controlled这个选项去掉以后,不管游戏里的AA设置是多少,最终AA所使用的设置会是驱动里的设置.而在游戏里没有内建AA选项时,Nvidia的驱动也会尝试强行打开AA.这种有点"霸道"的做法应该说在实际应用中还是相当有用的,并且也没有改游戏执行文件名的需要.* x; I2 H, M* i
在调整AA的倍数时,您会看到有些后面带了一个Q.这就是前面所提到的Quincunx算法.这些模式都会有相当好的性能,但是也同时会让整个画面变得模糊,不建议使用.5 D& X1 x8 _' f3 C- S% M. f
最后就是Transparency AA的设置了,您同样可以选择打开或者关闭,以及性能和质量两个档次.
Nvidia的驱动固然方便易用而且省心,但是只靠驱动里的设置是不能释放Nvidia显卡所有的能量的.有一个第三方软件nHancer能够提供比驱动里更多的选项,在某些原来不支持SLI或者AA的游戏里打开这两个功能,而且更方便易用.
nHancer是一个免费软件,可以在其官方网站http://www.nHancer.com下载.- @6 }# {' ^( ~* _# }6 K: y
数字娱乐网nHancer的使用方法主要是对每个游戏设置单独的档案(profile).这个概念虽然Nvidia的驱动里就有,但是实用性极差,nHancer对其进行了大幅的改进.如下图所示就是其主界面.对于大多数游戏,Nvidia的驱动里都自动带了profile,nHancer也会自动认出这些profile.当某个游戏没有profile时,我们也可以为其创建一个.在下图中的1处点击Create new profile.然后在2处键入profile的名字,建议使用游戏名称.! A6 _2 ?" k. v5 ]
数字娱图http://bbs.cfan.com.cn/attachments/day_110101/1101012125bfeeb57f62d16cb9.jpg
然后点击下图中的1处,找到游戏的执行文件,这样就将这个profile和游戏联系了起来.在界面的右侧就是众多的设置选项.除了驱动中的那些设置以外,有没有看到Supersampling呢?这个就是前面提到的全屏的SSAA了.如果您的显卡够好的话,就选中Supersmapling,体验毫无锯齿的游戏画面吧!还有其他众多设置,本文就不一一细说了.# L% l: b, u; H) V" z8 X

图) o. |' j: K% o- j# P5 L
http://bbs.cfan.com.cn/attachments/day_110101/1101012125eb9dacc0dce5388a.jpg


1评分次数

[*]

lizoyu 发表于 2011-2-7 15:48:25

本帖最后由 lizoyu 于 2011-2-7 15:50 编辑

排版太乱.

还有一个AA没有提到-SRAA,上个月刚研究出来的.
类似于MLAA,但是速度更快,资源占用少.

ws1988 发表于 2011-2-7 17:26:59

技术文章 先顶再看…

cronald0 发表于 2011-2-7 20:25:33

好长..
顶了再看

zhengning5470 发表于 2011-2-7 20:34:31

了解了,多谢楼主分享哈。。。

wang539402 发表于 2011-2-8 10:20:56

看的有点迷糊

sunnyxu1850 发表于 2011-2-8 11:09:39

无比复杂,长见识不少,但是问题是,我们玩游戏的时候,怎么区分哪种AA呢

wlrwyk 发表于 2011-2-8 19:57:30

的确很详细

wxc_36002 发表于 2011-2-8 21:56:27

很详细,很丰富,支持了
页: [1]
查看完整版本: 如何正确地为您的游戏设置抗锯齿模式