FXAA(Fast approXimate AA) 之前的反走样技术都是基于图形信息(几何&材质)执行反走样算法,然后获取最终的图像信息。 FXAA 3.11 FXAA 1.0版本的不足是图像容易变糊,对此,FXAA推出了3.11版本(2011)。 FXAA的特点是简单,只需要一个Pass就能实现抗锯齿,无论是CPU还是GPU,都是一个轻量的后处理反走样技术。FXAA 3.11算得上是目前应用最广泛的后处理反走样技术。 如上图,其流程和FXAA完全相同,计算边缘,获取混合因子,最后得到反走样结果。最大的区别是SMAA是一个3-pass的后处理反走样技术,每一步单独一个pass。 本文重点解释了SSAA,MSAA,FXAA和SMAA四种,也介绍了AGAA这个基于着色的反走样技术,以及相关技术在实现中的一些注意事项,优劣对比。
2、主流的抗锯齿有MSAA以及FXAA,SSAA, TXAA 什么是MSAA MSAA是多重采样抗锯齿”,可以使画面更加平滑 什么是FXAA 快速近似抗锯齿,它是传统MSAA效果的一种高性能近似值 ,相比于MSAA,FXAA的目标是速度更快、显存占用更低,还有着不会造成镜面模糊和亚像素模糊(表面渲染不足一个像素时的闪烁现象)的优势,代价就是精度和质量的损失。 简单说:在同一画质下,FXAA的画面帧数比MSAA高.
在 Implementing FXAA 这篇博客中,解释了 FXAA 具体是如何运作的。 对于一个已经被找到的图形边缘,经过 FXAA 处理后会变成这样,见下两幅图: FXAA(Fast Approximate Anti-Aliasing),快速近似抗锯齿,它找到画面中所有图形的边缘并进行平滑处理 需要通过某种方法得到透明度的点 这些点需要能够组成线段 线段完全吻合我们的 Gradient 使线段覆盖在 Gradient 的上一层以应用我们的修改 这就是大体思路,我们并没有参与浏览器的渲染,而是通过像 FXAA
常见的有以下几种: FXAA(快速近似抗锯齿): FXAA 是一种后处理技术,主要通过在像素着色器中应用边缘检测算法,对边缘附近的像素进行模糊处理,以减少锯齿。 FXAA 可以提供较快的处理速度,但可能会导致一些细节丢失,图像看起来可能会有些模糊。
如果需要在帧缓冲区(离屏渲染)上面实现去锯齿效果,需要在贴图内容上使用自己实现的post -process的AA,比如: FXAA: https://github.com/mattdesl/glsl-fxaa
如果使用了与顺序无关的透明度(OIT)[McGuire13,Bagnell13]或快速近似抗锯齿(FXAA),则它们的缓冲区也将被清除(有关更多信息,请参见下文)。 如果启用了FXAA,则会执行全屏通道以进行抗锯齿。 与平视显示器(HUD)相似,覆盖通道的命令最后执行。 ? Cesium当前的渲染管线。 后处理效果 Scene.render具有一些后期处理效果,这些效果经过硬编码,例如太阳泛光,FXAA甚至是OIT合成。
最重要的是让尽量多的机器画面好, 而不是高端机器好 关键字: Deferred Lighting, SSAO, Deferred Shadow, Gamma Correction, FXAA, Screen
(2)其他方案FXAA& TAA& Super resolution/super sampling FXAA(Fast Approximate AA) 和采样无关,属于图像的后期处理技术,对于有锯齿的图像
禁用内部 FSR 降频、禁用 FXAA 效果以及其他图形相关修改。 此外还有一些额外好处,如控制器界面修改、无限耐久度等 Cheat 代码可供选择使用。
(2)其他方案FXAA& TAA& Super resolution/super sampling FXAA(Fast Approximate AA) 和采样无关,属于图像的后期处理技术,对于有锯齿的图像
高效的后处理策略核心是“取舍与分级”,需结合游戏类型、美术风格与目标平台性能精准配置:动作类游戏需优先保证画面流畅度与清晰度,可保留抗锯齿(推荐FXAA或TAA,避免使用MSAA,后者对移动端GPU压力过大 不同抗锯齿方案的性能差异也需重点关注:FXAA算法简单,性能消耗最低,但边缘模糊度较高;TAA抗锯齿效果更细腻,适合3D游戏,但需要额外的帧缓冲存储,内存占用略高;MSAA抗锯齿效果最佳,但仅支持前向渲染
如果需要在帧缓冲区(离屏渲染)上面实现去锯齿效果,需要在贴图内容上使用自己实现的post -process的AA,比如: FXAA: https://github.com/mattdesl/g...
后续又不好改进算法,这里不做详细介绍了: FXAA (Fast Approximate AA) TAA (Temporal AA) MARSGGBO♥原创 如有意合作或学术讨论欢迎私戳联系~ 邮箱
其于2009年由Intel的Alexander Reshetov提出, 启发了后续一批基于图像自身形态进行抗锯齿操作的算法例如FXAA和CMAA. 后续人们在MLAA的基础上优化开发了例如SMAA, FXAA, CMAA等更实用的抗锯齿算法, 以后有机会再介绍.
而且, 为了性能, 能关的都关了… FXAA: 理论上来说 TemporalAA 更适合消除远处的 Specular Aliasing, 但是会导致近处 HUD 的文字和纹路受到影响, 解决之前先用 FXAA
延迟计算光照会大幅增加纹理带宽和帧缓冲区带宽的开销 当光源数量很多时,光源会不断对光照强度RT进行累加,也会大幅增加帧缓冲区带宽开销 由于硬件限制或者性能限制,不能使用硬件支持的MSAA,只能使用类似后期处理的FXAA 或者Temporal AA 名词解释 MSAA、FXAA、Temporal AA都是抗锯齿(Anti-Aliasing)技术,锯齿的来源是因为场景的定义在三维空间中是连续的,而最终显示的像素则是一个离散的二维数组 具体区别可见FXAA、FSAA与MSAA有什么区别? Deferred Rendering 局限性是显而易见的。比如我在 G-Buffer 存储以下数据: ?
而且, 为了性能, 能关的都关了… FXAA: 理论上来说 TemporalAA 更适合消除远处的 Specular Aliasing, 但是会导致近处 HUD 的文字和纹路受到影响, 解决之前先用 FXAA
他们将这种时间抗锯齿方案与FXAA(稍后讨论)相结合,以有效地在更高分辨率的显示器上进行渲染。 形态学方法 锯齿通常是由边缘引起的,例如由几何形状、锐利阴影或明亮高光形成的边缘。 两种最流行的算法是快速近似抗锯齿(FXAA)[1079,1080,1084]和亚像素形态抗锯齿(SMAA)[828,830,834],部分原因是两者都为各种机器提供了可靠的(和免费的)源代码实现。 Jimenez[836]提出了一种改进的SMAA实现,比FXAA更快,并描述了一种时间抗锯齿方案。
4.2.6.2.5 快速近似抗锯齿(FXAA) 快速近似抗锯齿(Fast Approximate Anti-Aliasing) 它是传统MSAA(多重采样抗锯齿)效果的一种高性能近似值。 TXAA 抗锯齿: 比 MSAA和FXAA 以及 CSAA 的画质更高,制作CG电影的电影制片厂会在抗锯齿方面花费大量的计算资源,从而可确保观众不会因不逼真的锯齿状线条而分心。
(没有AA,MSAA4,FXAA) 依靠图像后处理的抗锯齿方法(例如FXAA)不会出现此问题,因为它们是在渲染整个场景之后应用的。 这是否意味着我无法将MSAA与定向阴影结合使用?