MCPLive > 杂志文章 > TXAA游戏抗锯齿技术深度解析与测试

TXAA游戏抗锯齿技术深度解析与测试

2013-03-20张夷捷《微型计算机》2013年3月上

随着电脑硬件性能的逐步提升以及用户更高体验效果的需求,两三年前的游戏画质已经不能满足当下的需求。现阶段,不论是单机还是网游,都在努力提升游戏画质,更接近真实场景的画质效果才能迎合用户的需求。在游戏场景中,我们免不了会看到各种“锯齿”,这是由于3D图像从本质上讲是把图像分割成若干个小方格,这些小方格也称为像素点,通过这些像素点来显示图像,这些小方格也就导致了画面会有类似于三角形的锯齿,为了消除这锯齿来提升画质,所以就诞生了抗锯齿技术。就在去年NVIDIA发布新的Kepler架构显卡GTX 680时候,NVIDIA也表示一种更新的抗锯齿技术即将来临,它就是——TXAA!今天,我们就来揭开这项新的抗锯齿技术的神秘面纱。

TXAA游戏抗锯齿技术深度解析与测试

TXAA诞生的背景

如果把2000年FSAA(Full Screen Anti-Aliasing,全屏抗锯齿)进入实用化阶段看作是3D图形卡实时抗锯齿技术诞生的标志,那么到今天这项技术已经进入第14个年头了。从早的SSAA到改进型的MSAA(现阶段应用广泛的抗锯齿技术)、CSAA,再到后处理式的MLAA、FXAA,就算是资深的DI Yer也难以数清到底有多少种抗锯齿技术。

无论是哪种抗锯齿技术,其宗旨无非是两个词:画质、速度。为了能够在画质和速度上取得佳的平衡,同时也为了适应日渐流行的延迟渲染技术,各种后处理式抗锯齿技术便应运而生。AMD方面,MLAA(Morpho logical Anti-Aliasing,形态抗锯齿)伴随HD 6000系列显卡而来。NVIDIA则把FXAA作为开普勒系列显卡的助推器(其实FXAA并非只支持开普勒显卡,只是到了开普勒时代NVIDIA把FXAA集成到了驱动程序控制面板中)。


在《毁灭战士3:BFG》中,通过NVIDIA控制面板开启FXAA后能获得不错的抗锯齿效果。

开启FXAA后,《毁灭战士3:BFG》中的文字明显变模糊了。
开启FXAA后,《毁灭战士3:BFG》中的文字明显变模糊了。

《战地3》内置FXAA选项,不会出现使用驱动控制面板开启FXAA后文字模糊的现象。
《战地3》内置FXAA选项,不会出现使用驱动控制面板开启FXAA后文字模糊的现象。

《战地3》内置FXAA选项,不会出现使用驱动控制面板开启FXAA后文字模糊的现象。
《战地3》内置FXAA选项,不会出现使用驱动控制面板开启FXAA后文字模糊的现象。

2:NVIDIA给出的TXAA与8×MSAA效果对比
NVIDIA给出的TXAA与8×MSAA效果对比
使用开普勒系列显卡时,《使命召唤:黑色行动2》可以开启TXAA抗锯齿。
使用开普勒系列显卡时,《使命召唤:黑色行动2》可以开启TXAA抗锯齿。

按照NVIDIA的介绍TXAA无论是在性能还是画质上都轻松超越8×MSAA。另外早期宣传资料中使用的TXAA1、TXAA2现在也称为2×TXAA、4×TXAA。
按照NVIDIA的介绍TXAA无论是在性能还是画质上都轻松超越8×MSAA。另外早期宣传资料中使用的TXAA1、TXAA2现在也称为2×TXAA、4×TXAA。

《使命召唤:黑色行动2》中各种抗锯齿效果对比截图位置示意
《使命召唤:黑色行动2》中各种抗锯齿效果对比截图位置示意

《使命召唤:黑色行动2》中各种抗锯齿画质对比1
《使命召唤:黑色行动2》中各种抗锯齿画质对比1

《使命召唤:黑色行动2》中各种抗锯齿画质对比2
《使命召唤:黑色行动2》中各种抗锯齿画质对比2

《使命召唤:黑色行动2》中各种抗锯齿性能对比
《使命召唤:黑色行动2》中各种抗锯齿性能对比


《刺客信条3》各种抗锯齿模式性能对比
《刺客信条3》各种抗锯齿模式性能对比

《刺客信条3》中的抗锯齿选项只有普通、高、非常高、TXAA四挡。
《刺客信条3》中的抗锯齿选项只有普通、高、非常高、TXAA四挡。

《刺客信条3》中非常容易出现锯齿闪烁的情况
《刺客信条3》中非常容易出现锯齿闪烁的情况

《刺客信条3》中不同抗锯齿模式画质对比1
《刺客信条3》中不同抗锯齿模式画质对比1


《刺客信条3》中不同抗锯齿模式画质对比2

通过以往的测试,我们发现:后处理式抗锯齿技术在获得不错的画质的同时性能下降很小。然而,由于MLAA和FXAA对图像的处理是在渲染完成之后进行的,因此这就带来一个问题:某些不该被处理的地方“被抗锯齿了”,典型的就是游戏中的文字。由图1可以看到,通过NVIDIA控制面板开启FXAA后,《毁灭战士3:BFG》中的锯齿得到了一定程度的抑制。然而观察游戏中的文字(尤其是较小的文字),我们能够看到发虚的情况(图2),这是因为FXAA完全是基于色彩对图像进行处理的,它并不能识别出哪些内容需要处理而哪些内容需要保留,这就造成了字体边缘不够锐利的情况。解决办法就是让游戏本身内置FXAA引擎,而不是通过显卡的控制面板开启,这样游戏就可以在FXAA抗锯齿完成的图像上再叠加字幕等不需要抗锯齿的内容,这种方法其实已经在《战地3》、《光荣使命》、《孤岛危机2》等游戏上使用了(图3)。

解决了字体模糊问题后,FXAA是不是已经达到完美的程度了呢?实际上,说到锯齿很大一部分玩家的意识还停留在静态画面上。其实在动态的画面中锯齿现象对画质也是有影响的,表现在运动的过程中有锯齿的部位会出现较为明显的闪烁。例如《战地3》第二关碎剑者行动片头动画结束后主角走下装甲车后的第一个镜头(图4),尽管已经开启了FXAA,画面右上方的电线杆边缘上依然会有虚线状的小白点(其实就是细微的锯齿),在主角移动的时候这些白点会不停地闪烁,非常晃眼,对画面质量影响严重。

为了解决在动态画面中锯齿部分闪烁的问题,NVIDIA给我们带来了TXAA抗锯齿技术。按照NVIDIA官方资料的介绍,TXAA是Temporal Anti–aliasing的缩写,译为“时间性抗锯齿”。这是一种全新的电影风格抗锯齿技术,旨在减少时间性锯齿,也就是前文提到的在运动中锯齿部位的闪烁和蠕动。该技术集时间性过滤器、硬件抗锯齿电路以及定制的CG电影式抗锯齿算法于一身,通过对象素内部、外部的采样并结合之前帧中内容,TXAA可以提供高画质的过滤。与传统 MSAA相比,TXAA的图像更加柔和。在栅栏、植物以及运动画面中,TXAA已经开始接近甚至在某些情况下超过了其高端专业抗锯齿算法的画质(图5)。

与FXAA等牺牲画质换取高性能的方法相比,TXAA是以牺牲性能来换取画质的。不过这并非是说TXAA效率低下。当前TXAA分为2×和4×两挡,2×TXAA、4×TXAA的性能分别与2×MSAA、4×MSAA相仿,不过2×TXAA的画质已经不逊于8×MSAA,4×TXAA更是远超8×MSAA(图6)。从这个角度看,TXAA是“两手抓,两手都要硬”。比较可惜的是,由于TXAA需要专门的硬件电路配合才能工作,因此现阶段只有NVIDIA的开普勒系列显卡才能够支持。

分享到:

用户评论

用户名:

密码: