深度学习抗锯齿(DLSS)
在现代游戏中,渲染帧不直接显示,而是经过后处理图像增强步骤,结合来自多个渲染帧的输入,试图去除视觉伪像,例如混叠,同时保持细节。例如,时间抗锯齿(TAA)是一种基于着色器的算法,该算法使用运动矢量结合两帧来确定在何处采样先前帧,这是当今使用的最常见的图像增强算法之一。然而,这种图像增强处理从根本上来说是非常困难的。
诸如此类的图像分析和优化问题没有没有干脆利落的算法解决方案,唯有应用人工智能。正如图像处理案例,是深度学习的最大成功应用之一。现在,深度学习已经实现了超人的能力,能够通过观察图像中的原始像素来识别狗、猫、鸟等。在这种情况下,目标是结合渲染的图像,基于查看原始像素,以产生高质量的结果,不同的对象,但由近似的步骤完成。
为解决这一挑战而开发的深度神经网络(DNN)被称为深度学习超级采样(DLSS)。DLSS从给定的一组输入样本中产生比TAA高得多的质量输出,并可以利用此能力来提高总体性能。尽管TAA在最终目标分辨率下进行渲染,减去细节,组合成每一帧,DLSS允许在较少的输入样本计数下进行更快的渲染,然后推断出在目标分辨率下与TAA相似的结果,仅需一半的着色工作。
4K DLSS的TRAIN是4K TAA Pascal的两倍性能。
以上为虚幻4引擎的《渗透者》DEMO测试,DLSS提供了与TAA相似的图像质量,性能大大提高。RTX 2080 Ti本身的强大渲染性能,加上Tensor Core进行DLSS操作带来的性能提升,使4K分辨率下RTX 2080 Ti达到GTX 1080 Ti性能的2倍。
这个结果的关键在于DLSS的学习过程,DLSS有机会学习如何基于大量超高质量的采样产生应有的画面输出。64x超级采样意味不是对每个像素进行一次着色,而是在像素内以64个不同的偏移进行着色,然后组合输出,产生具有理想细节和抗锯齿质量的结果图像。接下来,DLSS还可以学习来匹配64xSS输出帧,通过遍历每个输入,要求DLSS产生一个输出,测量其输出和64xSS目标之间的差异,并根据这些差异调整网络中的权重。在多次重复之后,DLSS自己学习以产生接近64xSS质量的结果,同时学习避免影响经典抗锯齿(如TAA)的模糊、去遮挡和透明性的问题。
除了以上描述的标准DLSS模式,还有第二种模式,称为DLSS 2x。在这种情况下,DLSS输入以最终的目标分辨率呈现,然后由较大的DLSS网络组合以产生接近64x超级抗锯齿的输出图像,这果不可能通过任何传统手段实现的。
以上测试场景中展示了最具说服力的对比效果。游戏中半透明的全系屏幕漂浮在不断移动的背景前面。TAA倾向于盲目跟随运动对象的运动矢量,导致屏幕上的细节也被模糊了。DLSS则能够识别场景中更加复杂的变化,并以更智能的方式组合输入,避免了模糊问题。