实战AMD MLAA形态抗锯齿

  • 来源:微型计算机
  • 关键字:AMD MLAA,形态
  • 发布时间:2011-01-21 08:05
  抗锯齿技术是3D技术的一个重要组成部分,这项技术伴随着3D技术一路发展,先后出现过SSAA、MSAA、CSAA和CFAA等多种抗锯齿模式。但大浪淘沙,在长期使用过程中,只有最消耗资源、画质最好的SSAA和效果相对较好、资源耗费较少的MSAA两种抗锯齿技术被广泛使用。最近,AMD在全新的催化剂驱动中,为Radeon HD 5800以及Radeon HD 6800系列显卡带来了新的MLAA抗锯齿技术。

  MLAA技术实质是什么?

  传统的抗锯齿技术,是贯穿在整个3D处理中的一种算法。比如SSAA,可以理解为大幅度提高原始图形分辨率,在处理计算后,再缩小分辨率并按照要求的分辨率计算输出的“暴力”抗锯齿方法;常见的MSAA是检测多边形的边缘,对边缘采样进行多次计算,最后输出相对平滑的边缘效果。相比之下,MSAA速度更快,但不够精细,对多边形内的纹理等抗锯齿效果的处理可能不如SSAA到位。

  MLAA和上述抗锯齿技术都完全不同。从技术原理来说,MLAA更类似于一个2D滤镜,它并没有贯穿在整个3D处理中,反而是在整个3D计算完成,即将输出画面到屏幕上之前,利用DirectCompute对即将显示的画面进行再处理。此时MLAA会自动寻找画面中的高对比度边缘(一般这些地方都是分界线、物体边缘等人眼比较敏感的部位),专门对这些边缘进行特殊算法操作。换句话来说,MLAA是一个彻底的后期处理技术。

  我们用一个不太恰当的例子来更好地理解MLAA技术:如果你有照相机,在拍摄过程中使用各种灯光、道具、不同的镜头等来改善拍摄效果,就类似传统的抗锯齿操作。这些操作是针对拍摄本身的,会改变最终得到的数据。但你在拍摄了照片以后,利用Photoshop中的滤镜对照片处理,就属于拍摄后期处理,MLAA技术就是3D后期处理。假如Photoshop中有类似MLAA功能的滤镜,我们甚至可以直接对2D图片进行MLAA抗锯齿操作。

  由于MLAA是纯粹的后期处理,因此它的兼容性极为出色。理论上MLAA可以在任何游戏上运行,包括DirectX 9、DirectX 10、DirectX 11游戏都可以使用MLAA进行抗锯齿处理,并获得同样的抗锯齿效果。不仅如此,MLAA还可以和任何其他抗锯齿模式叠加,比如MLAA+MSAA的处理等。只不过目前受限于显卡性能,我们还是最好单独开启MLAA或者MSAA,否则性能下跌幅度会较大,会影响游戏本身的流畅性。

  AMD首次公布MLAA抗锯齿技术是在催化剂10.10a Hotfix中,期间已经更新过b、c、d等版本。截至本文发稿前,最新的催化剂驱动10.10e已经发布,新版本不但进一步加强了MLAA技术,还使得Radeon HD 5000系列也能支持MLAA技术了(MLAA技术发布初期只支持Radeon HD 6000系列)。

  从AMD官方给出的对比图来看,MLAA在对比强烈的边缘处理时作用明显,效果类似于特定的模糊处理。但作为一种后期处理技术,MLAA对画面全局使用滤镜处理,是不是也会影响到纹理的锐利度?比如不应该处理的地方却进行了MLAA抗锯齿,是否导致画面质量变差?下面笔者将通过实际测试来证明这个问题。

  MLAA DEMO实战演示画质对比

  由于MLAA技术属于后处理技术,因此很多截图工具不能截取到MLAA处理后的图像,包括我们常见的Fraps。之前有一些资料声称AMD提供了一个特殊的小工具,这个小工具的内部算法和驱动中的MLAA算法完全一致,用这个小工具可以得到和游戏中开启MLAA相同的画面。笔者通过其他渠道获得了和上述软件类似的软件,一共是三款,分别叫MLAA、MLAA2和MLAA3。它们不但可以可以演示MLAA和MSAA的差异,还可以和MSAA技术进行对比,并且能够以截图方式体现MLAA和MSAA以及0AA的差距,并且能得到抗锯齿算法检测出来的边缘等信息。

  通过三款软件的对比,我们可以看到,MLAA对抗锯齿的效果还是相当明显的。不过需要特别说明的是,MLAA核心算法虽然只有一种,但可以通过人为调整取得不同的宽容度来改变抗锯齿效果。宽容度是指判断边缘的严格程度,也就是说:究竟边缘像素的差异需要多大,才会被认为是“边缘”并进行MLAA抗锯齿处理。

  我们打个比方来说,熟悉Photoshop的朋友肯定熟悉这样一个参数—容差。在Photoshop中使用魔棒选择画面区域时,容差可以让你确定选择时的宽容度。容差为1的时候,宽容度最小,Photoshop只会选择和确定像素极其相似甚至完全相同的像素点;而容差设定为50甚至更大时,与确定像素点接近甚至基本相当的像素都会被包括进来。MLAA中也有类似的“容差”概念,因此究竟怎样确定“MLAA的容差”是一个相当困难的问题。不同的设置会导致最终效果出现巨大差异,这就需要厂商有相当强的优化水平和极为精准的拿捏手段了。

  MLAA游戏实战性能对比

  经过上文的讲述,想必大家都对MLAA有一定的了解了。下面笔者就目前主流的游戏来实际测试下MLAA能带来什么效果以及在游戏中实际应用的情况。

  测试平台:

  CPU:Core i7 860(睿频开启)

  主板:P55

  内存:DDR3 1333 2GB×2

  显卡:Radeon HD 6870 1GB

  操作系统:Windows 7 64bit

  驱动程序:催化剂10.10e

  测试游戏:《极品飞车14》、《使命召唤7》

  测试说明:在实测中,笔者将对比MLAA和MSAA 8×的平均帧数,并与关闭AA情况下游戏的帧数、画质等情况作出对比。

  《极品飞车14》游戏实测

  在《极品飞车14》中,开启了MLAA 8×的性能要比开启MSAA的帧数高一些,平均胜出幅度在5%左右。从游戏画质对比来看,MSAA的纹理精细度要好一些,MLAA的一些画面纹理细节部分稍微有模糊感,但基本不会影响游戏效果。相比不开启AA的时候,两种抗锯齿技术对画质的改善都是巨大的。但MLAA对文字的处理依旧是软肋,所有的文字都会变得圆润。

  《使命召唤7》游戏实测

  《使命召唤7》的游戏引擎比较老,因此在开启MSAA 8×和MLAA的情况下两款显卡都能在80fps左右流畅运行游戏。性能方面,MLAA的平均帧数比MSAA 8×还是要稍高一些。画质方面怎没有特别巨大的差距,MLAA在这款游戏中的表现也是很出色的。

  测试小结

  在实际游戏对比中,MLAA展示了它出色的抗锯齿效能。不过和传统的抗锯齿技术不同的是,使用MLAA后整个画面感觉更柔和,和MSAA那种锐利的感觉有明显差别。另外,MLAA对文字的作用是相当明显的,一些游戏中的文字甚至Fraps的文字都出现了圆滑化的倾向。

  MLAA前景广阔

  MLAA作为一个新诞生的抗锯齿技术,在其初生之时就能获得不错的抗锯齿效能和画质效果,是令人欣喜的。但MLAA的问题也有一些,比如纹理锐利度问题,比如字体变形等问题,这都是不容忽视的。

  其实,MLAA在游戏主机上已经取得了很大的成功,例如在PS3的经典巨作《战神3》里面,MLAA的应用可谓非常出色,整个画面几乎看不到锯齿存在,并且画质精细度也得到很好的保证。《战神3》大获成功后,人们看到了MLAA的技术潜力,因此在新的催化剂驱动中,AMD将其作为一种新功能加入,给玩家带来更多的选择。从游戏主机对MLAA成功的应用来看,MLAA是相当有潜力的抗锯齿技术。目前的MLAA利用DirectCompute技术实现,因此老一些的Radeon HD 5800理论上都能打开MLAA。我们有理由相信,在新一代显卡进一步加强DirectCompute性能并特别针对MLAA技术改进后,MLAA能够在性能和画质上取得平衡,让我们的游戏锯齿更少,画质更精美!
……
关注读览天下微信, 100万篇深度好文, 等你来看……
阅读完整内容请先登录:
帐户:
密码: