在图像处理中,锯齿一直是一个大问题,因此图像中的抗锯齿(Anti_aliaing,简称AA),也被称为边缘柔化、消除混叠、抗图像折叠有损等。AA主要是处理图像有锯齿的边缘,使其图像更清晰清晰。下面有一些反锯齿的常用技术:

一、多重采样抗锯齿(MSAA)

多重采样抗锯齿(MultiSampling Anti-Aliasing,简称MSAA),这是一种在OpenGL中的特殊的超级采样抗锯齿(SSAA),MSAA主要是对 Z-Buffer 和 Stencil Buffer(模板缓冲)进行SSAA处理,其原理是通过提取像素界面周围的颜色信息,通过混合颜色信息来消除高对比界面所产生的锯齿。只对多边形的边缘进行抗锯齿处理。

缺点:

资源耗费,画质上有些不如一般的SSAA。

为什么deferred rendering不支持mass

https://blog.csdn.net/limanru14/article/details/104305514

https://www.zhihu.com/question/366668747

二、快速近似抗锯齿(FXAA)

快速近似抗锯齿(Fast Approximately -Aliasing,简称FXAA),是一种典型的边缘检查取样操作。FXAA原理与MSAA相同,其原理是通过提取像素界面周围的颜色信息,通过混合颜色信息来消除高对比界面所产生的锯齿。但是,FXAA将像素的提取和混合过程交由GPU 内的ALU(arithmetic and logic unit,算术逻辑单元)执行,所占用的显存带宽会 << 传统的MSAA。

优缺点

消耗低,速度快;但是是一种粗糙的模糊处理。

三、子像素增强抗锯齿(SMAA)

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

缺点

动态画面时,锯齿抖动厉害。

smaa

javascript:void(0)

四、覆盖采样抗锯齿(CSAA)

覆盖采样抗锯齿(Coverage Sampling Anti-Aliasing,简称CSAA),这是一种覆盖的采样,它的原理是将边缘多边形里需要采样的子像素坐标覆盖掉,抒原像素坐标强制安置在硬件和驱动程序预告算好的坐标中。这就好比采样标准统一的MSAA,能够最高效率地执行边缘采样,交通提升非常明显,同时资源占用也比较低。

相比MSAA减少了带宽和存储开销。

五、时间性抗锯齿(TXAA)

让电影画质的游戏体验达到逼真水平。TXAA 抗锯齿比 MSAA和FXAA 以及 CSAA 的画质更高,制作CG电影的电影制片厂会在抗锯齿方面花费大量的计算资源,从而可确保观众不会因不逼真的锯齿状线条而分心。如果想要让游戏接近这种级别的保真度,那么开发商需要全新的抗锯齿技术,不但要减少锯齿状的线条,而且要减少锯齿状闪烁情形,同时还不降低性能。为了便于开发商实现这种保真度的提升,英伟达设计了画质更高的抗锯齿模式,名为TXAA.该模式专为直接集成到游戏引擎中而设计。

与CG电影中所采用的技术类似,TXAA集MSAA的强大功能与复杂的解析滤镜于一身,可呈现出更加平滑的图像效果,远远超越了所有同类技术。此外,TXAA还能够对帧之间的整个场景进行抖动采样,以减少闪烁情形,闪烁情形在技术上又称作时间性锯齿。

目前,TXAA有两种模式:TXAA 2X和TXAA 4X。TXAA 2X可提供堪比8X MSAA的视觉保真度,然而所需性能却与2X MSAA相类似;TXAA 4X的图像保真度胜过8XMSAA,所需性能仅仅与4X MSAA相当。

六、可编程过滤抗锯齿(CFAA)

可编程过滤抗锯齿(Custom Filter Anti-Aliasing,简称CFAA),起源于AMD的R600家庭。简单地说CFAA就是扩大取样面积的MSAA,比方说之前的MSAA是严格选取物体边缘像素进行缩放的,而CFAA则可以通过驱动和谐灵活地选择对影响锯齿效果较大的像素进行缩放,以较少的性能牺牲换取平滑效果。显卡资源占用也比较小。

七、多帧采样抗锯齿(MFAA)

多帧采样抗锯齿(Multi-Frame Sampled Anti-Aliasing,简称MFAA),与MSAA基于像素采样有所不同,MFAA是基于帧采样的,我们大致可以这么理解,MFAA是在相邻的两帧上各执行一次抗锯齿采样,然后通过NVIDIA自行开发的图像合成处理技术来整合采样结果,最后输出完成抗锯齿运算的图像。

 ​