临时抗锯齿:是福还是祸?

无论好坏,时间抗锯齿(TAA)已经成为当今游戏中图像质量的决定性元素,但它是福是祸,还是两者兼而有之? 无论你以哪种方式分割它,它都会留下来,那么它是什么,为什么这么多游戏使用它,所有的模糊是怎么回事? 曾经,TAA根本不存在,那么使用了哪些抗锯齿方法以及为什么不再使用它们呢?

在大约整整十年的时间里,从 90 年代末到 2010 年左右,您可以获得的最好的抗锯齿功能是 SSAA - 超级样本抗锯齿。 这些原则非常简单。 为了消除锯齿,您部署了 GPU 资源以更高的分辨率渲染图像,然后缩小尺寸。 1080p 屏幕上的 8x SSAA 有效地以 8K 进行内部渲染(!),而 4x SSAA 则从 4K 缩小。 这是一种蛮力方法,可提供稳定的图像,几乎没有子像素破裂和原始边缘。 当 PS4 Pro 和 Xbox One X 上市时,索尼和微软不仅向游戏玩家推销 4K 梦想,还向玩家推销 SSAA 通过以更高分辨率渲染然后缩小尺寸所带来的图像质量优势。

然而,暴力方法意味着需要大量的 GPU 资源。 在 RTX 3070 上使用《孤岛危机 3》,原生 1080p 的运行速度接近每秒 200 帧,而不受 CPU 限制。 然而,4x SSAA 会将其降低至 70 fps,而 8x SSAA 则降低至仅 19 fps。

临时抗锯齿 - Digital Foundry 以视频形式进行深入研究。在 YouTube 上观看

解决方案? MSAA,即多样本抗锯齿。 您可以将 MSAA 视为与 SSAA 类似,但有一个深刻的区别:仅对几何图形进行超级采样。 据我们所知,Nvidia 的 8800 GTX 是第一款支持 8x MSAA 的 GPU,以当时的一个例子 - 《上古卷轴:湮没》为例,它在运行 8x MSAA 时损失了大约 35% 的性能。 这与我们的 RTX 3070 Crysis 3 示例相差甚远,后者损失了 90% 的吞吐量。 与 SSAA 一样,也有质量模式,因此您可以使用 2x 或 4x 来减少锯齿状边缘,但对性能的影响较小。 然而,随着时间的推移,MSAA 消失了,如今只有少数游戏使用它。

有几个原因。 第一个原因是延迟渲染,这是一种以高性能方式增加渲染复杂性的技术。 延迟渲染效果的一个例子是,使用延迟光照的游戏可以大大增加屏幕上的可见光量 - PS3 时代的《杀戮地带 2》并不是第一个使用它的游戏,但经常被引用为一个主要例子。 MSAA 可以集成到延迟管道中,但开发人员的成本很高 - 内存占用也是如此。

Crysis 3 确实支持延迟渲染和 MSAA,但它突出了几个问题,导致其在游戏中的普遍使用结束。 在该游戏中将 MSAA 设为 8x 时,1080p 下的帧速率几乎减半,而 4K 下的情况更糟……而且其抗锯齿的实际结果并不令人信服。 请记住,MSAA 适用于几何图形,随着像素着色更好地定义游戏的视觉构成,几何图形变得不再那么重要。 《毁灭战士 3》中流行的法线贴图等元素表明,游戏光照和对象细节更多地是由纹理驱动的,而不是由几何形状驱动的。 体积照明和屏幕空间环境光遮挡 (SSAO) 等效果也不能很好地与 MSAA 配合使用。 回到《孤岛危机 3》,边缘平滑仍然存在,但镜面反射锯齿(闪亮的部分!)没有得到解决 - 它看起来很糟糕。

左边是《孤岛危机 3》中零抗锯齿与超级采样的相对性能成本和质量。右边是 MSAA 与后处理解决方案的比较。 单击图像以获得更高分辨率。

出现了权宜之计,例如 FXAA 或 SMAA,它们是有效的后处理解决方案,在场景渲染后寻找可见边缘,试图模糊和柔化这些边缘。 它在许多场景中都是一种改进,对 GPU 资源的占用相对较小,但肯定会软化图像并且不了解历史,这意味着每帧的不同处理可能会导致视觉不连续。 正是在这里,我们看到了 TAA 的起源。

时间抗锯齿是超级采样的另一种形式,但不是从更大的图像中缩小尺寸,而是将先前帧的数据重新投影到当前帧中。 当工作良好时,它具有与 SSAA 类似的行为:它可以清除所有类型的所有锯齿。 当 MSAA 破坏着色器锯齿时,时间 AA 可以很好地清理它,创建比 MSAA 更平滑的图像,而 MSAA 可能根本不起作用。 由于 TAA 的工作原理类似于超级采样,因此它还可以影响根本不是由几何体构成的事物。 在《Control》中,游戏中的光线追踪效果得到了适当的边缘平滑和清理,而这在 MSAA 中永远不会发生。 TAA 目前的最终形式是 Nvidia 的 DLAA(有效地以原始分辨率进行 DLSS 渲染),它实际上看起来甚至比标准超级采样要好得多。

TAA 这种令人印象深刻的超级采样特性很快就被开发人员利用,有时是为了提高性能。 反射、体积光照、阴影过滤、环境光遮挡或头发渲染等效果以较低的分辨率渲染,并且只有在 TAA 聚合先前帧的数据以“完成”效果时才真正变得“完整”。 开发者使用 TAA 不仅可以清理游戏中的锯齿状边缘,还可以优化游戏效果并隐藏质量上的偷工减料。 不过,这里的缺点很明显:如果您不想使用 TAA 并且可以将其关闭,则较低分辨率的影响很容易被注意到,并且看起来不太对劲。

在相对现代的游戏引擎中,时间抗锯齿与 MSAA 相结合所带来的惊人性能提升的另一个例子。

然而,胜利可能是非凡的,即使在纯粹的抗锯齿方面,TAA 的成本也相对较小。 例如,在《杀出重围:人类分裂》中,只有 3% 的帧时间用于 TAA 计算。 当您单独看待该技术的优点时,听起来令人难以置信:比以前的技术有更好的性能和更好的抗锯齿功能,但也存在问题 - 图像清晰度显然是其中之一。 TAA 解决软化图像问题。

TAA 的一个关键问题是它可以解决软化图像的问题。 部分原因在于抗锯齿的本质。 从技术上讲,即使是 SSAA 也有软化因素。 然而,即使考虑到所有抗锯齿如何柔化图像,TAA 本质上还是更柔化,因为它通过轻微抖动图像来整合先前帧的信息以实现其效果。 默认情况下,TAA 的分辨率通常比其他抗锯齿技术更柔和 - 您可能会发现它要么令人愉悦地柔和,要么可能会发现它令人烦恼地模糊。

其中一个重要方面是您距屏幕的距离以及游戏运行的分辨率有多高。 如果您距离屏幕较远,您可能不会注意到柔和度,而只能欣赏 TAA 的宏观方面。 然而,如果距离更近,柔软度就会被放大并变得更加明显。 如果屏幕分辨率较低,这种柔和度就会变得更加明显。 1080p 显示器用户的体验比 4K 差得多,以至于我认为 4K 的软化不是问题。

TAA 的负面因素(例如抖动和模糊)根据分辨率进行缩放。 在 1080p 下存在明显的问题,而在 4K 下则不太明显。

屏幕距离和分辨率的这一方面使 TAA 看起来更好或更差,这是 TAA 普遍问题的关键。 对于玩主机游戏的人来说,他们经常在几米外的高分辨率电视上玩,在这样的距离下柔软度并不那么明显。 然而,在 PC 上,许多人玩游戏时距离屏幕更近,而且分辨率通常较低。 因此,如果游戏开发者根据主机体验平衡游戏中的图像质量选项,那么大量以较低分辨率更接近屏幕的 PC 用户可能会主观上获得更柔和的体验,而 TAA 的缺陷则更加明显。

TAA 的另一个问题是它在运动时如何模糊 - 这是我在视频中更容易展示的内容。 《光环:无限》的 TAA 是屏幕移动时最模糊的 TAA 之一,但在相机移动时屏幕模糊的行为几乎在所有类型的 TAA 中都会出现 - 与其说这是一个错误,不如说这是一个功能。 您会注意到多少,这又是一个主观的事情,但是您的分辨率越低,距离屏幕越近,您就越会注意到它。 它还会随着运动速度而变化,因此我相信鼠标用户会比游戏手柄用户受到更大的影响。

TAA 的另一个方面是它依赖于帧速率。 帧速率越高,采样帧越接近,意味着重投影计算中的错误越小,因此图像完整性越高。 如果您以高帧速率玩游戏,这可能会被视为一个积极的方面,但我也想说它会偏向 TAA 的实用性,使其不太适用于某些具有图形野心的游戏类型。 TAA 的另一个不太受欢迎的方面是它如何在图像中产生可见的抖动,但最令人震惊的伪影是重影。 这通常不是 TAA 的恒定状态,但几乎每种 TAA 类型都能够做到这一点,在我多年来以任何分辨率为 Digital Foundry 审核游戏的过程中,我已经数百次遇到过这种行为。 即使是 TAA 的巅峰——Nvidia 的 DLSS——也可能存在这个问题。

TAA 有很多好处,但并不是超级采样的成熟替代方案,正如《光环:无限》中所见。 我们建议能够关闭 TAA 并包含 SSAA 选项对于 PC 游戏来说是一个出色的面向未来的选项。

那么,TAA到底是福还是祸呢? 这么说吧:如果没有 TAA,实时图形就不可能发展到现在的程度。 如果没有 TAA 提出的概念,《赛博朋克 2077》等 AAA 游戏中的实时路径追踪等成就就不会存在。 在主机方面,这也意味着如果没有 TAA,各代主机之间的差异将非常小。 如果没有 TAA,大量的计算能力将花费在清理锯齿状边缘上,而不是改善光照和几何形状等方面。 如果没有 Epic 的 TSR 解决方案(它自己对 DLSS 的有效解决方案),《黑客帝国:觉醒》演示版就不可能在 Xbox 或 PlayStation 上运行。

对于所有问题,我认为 TAA 是一件伟大的事情 - 但我只是一个声音,除了我之外,还有很多声音应该被听到。 例如,我在 4K 下玩很多游戏,这构成了我体验的基础,因为大多数 TAA 关键问题不太明显,但如果您以 1080p 等较低分辨率玩游戏,TAA 的缺点就会更加明显。 根据 Steam 硬件调查,这一点至关重要,因为大量用户以 1080p 玩游戏。

由于 TAA 的重影和模糊等缺点在 1080p 下会更加明显,我认为业界可以像对待其他为游戏添加模糊的选项一样对待 TAA。 TAA 应该能够被关闭,就像运动模糊应该始终能够被关闭一样,因为这对于晕动病的人来说是一个辅助选项。

此外,我确实认为应该为不想使用 TAA 的用户提供简单、标准的替代方案。 例如,在 Nixxes 的《蜘蛛侠》PC 移植中,这些游戏绝对是围绕 PlayStation 的 TAA 设计的,但如果您愿意,您可以将其关闭或使用简单的后处理抗锯齿功能。 当然,FXAA 或 SMAA 确实不擅长清理锯齿状边缘,但有总比没有好,而且作为替代方案也很简单。

TAA 能够关闭的最后一个原因是考虑到未来的扩展。 目前,TAA 的存在主要是因为它很方便,但 10 年后,也许用户更愿意对他们的游戏进行超级采样。 在整理这篇文章时,我加载了一些旧游戏,这些游戏可以在我的 RTX 4090 上通过 SSAA 完美运行。因此,也许开发人员应该允许关闭 TAA,以确保他们的游戏能够适应未来功能更强大的硬件。

然而,从短期来看,TAA 将继续存在。 在通过硬件扩展性能带来的回报不断递减的世界中,重点转向软件解决方案,以从我们确实实现的代际飞跃中获得更多成果 - 而 TAA 是提升最先进水平的有效工具。