游戏反走样算法调研 | 英伟达最新 DLSS, TAA, FXAA, MSAA 原理及比较 ... ...

2022-4-21 21:43臭椿 961 0

游戏抗锯齿即图形学 Anti-Aliasing(反走样),FXAA、MSAA、TAA 缩略中的 AA 来源,本文我们使用图形学的反走样这一术语。

反走样本质是为了解决采样不足的问题。需在游戏画面质量渲染效率权衡下,进行图形增强。我们期望引擎中主流的 AA 算法能大幅度改善游戏中的走样现象的同时,不增加太多时间的开销。

经过多年演进,反走样算法产生了多种分支。随着游戏引擎与硬件的发展,最初用于抗锯齿的 FXAA、MSAA 逐渐被 Temporal AA、DLSS 等新秀取代。

本文挑选商用游戏引擎中最具代表的几种 AA 算法,对其底层原理进行剖析,并进行相互比较。

主流 AA 算法:哪种算法最佳?

基于图像后处理的 AA 算法:简单的图像后处理,根据像素邻域信息进行融合,性能开销小,对于边缘平滑明显,常见于 FXAA。

增加像素采样数 AA 算法:他们对于单个像素颜色,使用了多个样本点平均,得出的结果更精确。算法开销中等,效果明显优于 FXAA,且消耗更多的 GPU 内存资源,MSAA、Temporal AA 属于该类算法

基于深度学习的 AA 算法:前两种算法的组合,利用神经网络的重建能力进行图像处理。效果较好,算法开销最高,同时利用时域信息增加单个像素的采样点,常见算法 DLSS(需要特殊硬件 Tensor Core 的支持,当前,仅 RTX 20 系列的少量游戏能开启)

接下来的章节会涵盖每种算法的原理、资源消耗、效果、抗锯齿类别、所处渲染流程五个维度。

英伟达 DLSS | 深度学习超采样

DLSS 背后使用的技术是 Recurrent CNN,递归神经网络与卷积神经网络的一种结合。因此他能结合时域上的信息保证时域稳定性——像素具有帧间连贯性,不会出现过多闪烁、跳变现象。其次,结合神经网络的强大图形重建能力,DLSS 能够分别对几何边缘以及着色进行重建。

DLSS 神经网络结构类似于英伟达在 SIGGRAPH 17 发表论文:

总体来说,依据英伟达的官方资料得出的结论是,DLSS 效果优于现有的主流 AA 算法,它能同时在几何、着色、时域上进行反走样;不足之处是神经网络带来的性能开销比较大,仅仅反走样就占用了画面 20% 的渲染时长,相比之下 Temporal AA 开销低了一个量级

3DMark: TAA vs DLSS image quality comparison using the NVIDIA DLSS feature test

所处流程

图形后处理

抗锯齿类别

时域、几何、着色

使用场景

拥有 RTX 20 系列显卡,对画质敏感玩家,追求极佳图形/光照效果,DLSS 2X 模式对标 64X SSAA。

优缺点

MSAA

MSAA 在光栅化过程中计算多个子像素的 Coverage 情况,着色仅进行一次,Resolve的时候将着色结果乘上 Coverage 的比例,从结果上看 MSAA 几何边缘反走样效果良好。

所处流程

光栅化,仅支持前向渲染,无法融合进主流的延迟渲染。

使用场景

前向渲染

抗锯齿类别

几何

优缺点

Temporal AA 时域反走样

Temporal AA 是近年来商业引擎最流行的几种反走样算法之一。它以后处理的方式融入渲染流,良好的抗锯齿效果以及与延迟渲染的适配,使得业界游戏非常乐于采取这种抗锯齿方式。

算法思想可以看前一篇文章,TAA 反走样算法研究 | 时域超采样技术 。简单来说,对于每一帧游戏画面,相机抖动 0.x~1 像素。那么在时域上,我们可以得到当前像素的多个子像素信息。时域上进行加权融合后,得到当前像素的最终颜色。

其原理接近 SSAA,不同的是Temporal AA 将采样点分摊到历史帧上

所处流程

图形后处理

使用场景

支持主流游戏引擎使用的延迟渲染,采样样本分摊在时域上,开销小,抗锯齿能力强。

抗锯齿类别

几何、着色、时域

优缺点

FXAA

最简单的、高效率的抗锯齿方式,对图形边缘进行后处理。

所处流程

图形后处理

使用场景

开销极小,对图形边缘进行柔化。

抗锯齿类别

几何、着色

优缺点

小结

每种 AA 算法有其特定使用场景,在性能/画质的 Trade off 下,你的硬件配置及游戏渲染方式决定了最优选择。

  • 对于追求高帧率/低画质改善的人来说 FXAA 较为实用;
  • 拥有英伟达最新 RTX 20 系列显卡的游戏玩家来说,不妨试试 DLSS 2X 技术带来的绝佳画质;
  • 绝大多数用户,TAA 在不带来太多性能损失的情况下,对画质改善较好,能满足大部分使用场景。
  • 对那些仍在使用 Forward Shading 的游戏来说,MSAA 是最佳选择。

Appendix A:英伟达在线 Anti-Aliasing 算法比较

  • FXAA vs No AA
  • SMAA vs FXAA
  • 4x MSAA vs SMAA
  • 8x MSAA vs 4x TXAA
  • SSAA 4x vs SMAA
  • 4x TXAA vs 4x MSAA

Appendix B:参考文章

Anti-Aliasing: What Is It and Why Do We Need It?


鲜花

握手

雷人

路过

鸡蛋
上一篇:OpenGL vs DirectX

最新评论

QQ|手机版|小黑屋|九艺游戏动画论坛 ( 津ICP备2022000452号-1 )

GMT+8, 2024-4-20 21:13 , Processed in 0.182596 second(s), 18 queries .

Powered by Discuz! X3.4  © 2001-2017 Discuz Team.