首页 » 技术分享 » 抗锯齿的发展

抗锯齿的发展

 

原文地址 http://www.thegibook.com/tag/unreal-engine-4/
MSAA
一般是由硬件支持的反走样(anti-aliasing,AA)技术,它在光栅化阶段在一个像素区域内对每个像素使用多个深度采样值,但是每个像素内的这些深度采样值共享一个着色计算,即是每个像素仍然只执行一次fragment shader的计算,然后计算的结果被复制到每个子深度采样点上,这样一个像素内深度测试失败的子采样点将不会包含颜色信息,从而能够更使最终的颜色过渡更平滑。MSAA与SSAA的不同就在于MSAA的每个像素只执行一次着色计算,因此比SSAA具有较大的性能优势,但是也因此MSAA不能处理由于着色计算中对函数(如高光)采样不足导致的走样(如Shader Aliasing),但是由于人眼对于几何边缘的敏感度更高于对颜色的敏感度,因此MSAA是一种相当受偏爱的技术。

FXAA
是种取边缘的技术。但是和MSAA不同,MSAA提边缘是在图形管线的前段(跟深度有关)。FXAA是种后处理技术,后处理技术一般在画面完成后,通过像素颜色检测边缘(色彩差异太大时,不是边缘也被认为成边缘,精度有问题)。后处理技术一般没倍数概念,因为不存在放大。FXAA的精度肯定不如MSAA,但是不像MSAA那样依赖显卡的深度处理能力和显存大小。所以,好的硬件上,撑得住MSAA就用MSAA,撑不住那么用FXAA可能效果最优。不能一概而论。正因为不是所有边缘都需要AA,所以MSAA这种对所有边缘都进行AA的算法,存在着浪费。也就意味着后处理AA技术有很大的发展价值。

而MSAA基本上只对画面中物体的边缘进行放大、混合的抗锯操作,因为边缘是锯齿最明显的地方(注意不是所有的边缘)。提取边缘,主要是结合深度技术。MSAA是种硬件AA。我们一般说的4x、8x,就是放大倍数,放得越大,供混合的采样越充份,效果越好,但是处理速度也就越慢。

链接:https://www.zhihu.com/question/20236638/answer/14438218

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

TAA
即时间反走样(temporal anti-aliasing),TAA的思路就是每帧还是执行一个正常的对每个像素执行单次采样和单次着色的计算,但是它在每一帧对摄像机的位置在屏幕区域内执行一个在一个像素尺寸内的抖动操作,这样如果将邻近的多个帧的数据混合起来,就相当于对每个像素执行了多次深度采样,如下图所示。TAA相当于SSAA的效果,它将多个采样点从单帧内的空间分布转化到时间上,使得每一帧绘制并不会增加多次采样导致的性能开支,又能达到像SSAA一样的图像品质,因此TAA是时下相当受偏爱的一种在Deferred Shading渲染架构下的反走样技术。
AGAA
与TAA的思路不一样,AGAA并不累计历史颜色,因此不存在TAA的历史累计混合问题,AGAA使用MSAA的思路,在同一帧内使用多个子采样点,例如8x,由于这在Deferred Shading会导致8x的G-buffer,所以AGAA是利用pre filtering的思路将这8x的材质参数pre filter成2x(或更多,但通常2个足够)的G-buffer,因此称作为Aggregate G-Buffer,这样8x的深度采样只输出2x的G-buffer,这样就减少了G-buffer的内存占用以及导致的带宽占用性能问题.

SMAA
(Enhanced Subpixel Morphological Antialiasing,增强型子像素形态学抗锯齿)是后处理抗锯齿技术的一种,它的基本处理流程建立在Jimenez优化改造后的MLAA(形态学抗锯齿)算法之上。原始的MLAA是由英特尔实验室提出的抗锯齿技术,这项技术代表着后处理式抗锯齿蓬勃发展的开端。最初,MLAA是为CPU设计的,Jimenez对其进行改造并移植到GPU上,使其适用于实时渲染。SMAA则是在此基础上进一步发展而来的。

https://blog.csdn.net/qezcwx11/article/details/78426052

CSAA—CoverageSampling Anti-Aliasing1

CSAA,即覆盖取样抗锯齿。这是nVidia在G80及其衍生产品首次推向实用化的AA技术,也是目前nVidia GeForce 8/9系列独享的AA技术。 CSAA就是在MSAA基础上更进一步的节省显存使用量及带宽,简单说CSAA就是将边缘多边形里需要取样的子像素坐标覆盖掉,把原像素坐标强制安置在硬件和驱动程序预先算好的坐标中。这就好比取样标准统一的MSAA,能够最高效率的执行边缘取样,效能提升非常的显著。比方说16xCSAA取样性能下降幅度仅比4xMSAA略高一点,效果却几乎和8xMSAA一样。8xCSAA有着4xMSAA的处理效果,性能消耗却和2xMSAA相同。
CSAA是目前最为先进的AA实现方式,也是GeForce 8克敌制胜的重要法宝之一,可以遇见,在将来的两三年内,CSAA必定会获得大量游戏软件的直接支持从而大放异彩。

转载自原文链接, 如需删除请联系管理员。

原文链接:抗锯齿的发展,转载请注明来源!

0