APP下载

超55款游戏上市,DLSS即将支持Linux 聊聊NVIDIA DLSS

2021-08-13夏松

微型计算机 2021年14期
关键词:高分辨率引擎分辨率

夏松

日前,NVIDIA以在线媒体会的形式宣布对DLSS又进行了新一轮的支持游戏的更新。在此之前,NVIDIA的游戏黑科技DLSS已经实现了对超过55款热门游戏的支持,其中就包括《使命召唤:战争地带>《控制》《赛博朋克2077》《堡垒之夜》《地铁:离去PC增强版》《我的世界》等热门主流3A级游戏大作。同时,从NVIDIA官方获悉,接下来6月22日上线的《乐高建造者之旅》,6月29日更新的《毁灭战士:永恒》和《荒野大镖客:救赎2》,以及7月之后将发售的《腐蚀》《涅克洛蒙达:赏金猎人》《切爾诺贝利》等游戏中,都将添加对NVIDIA DLSS的支持。同时,NVIDIA也放出了针对这些游戏的DLSS性能测试,着实让人期待!

主流游戏引擎全面支持,Linux玩家福利即将来到

说起DLSS,相信大家应该不会陌生。作为NVIDIA伴随RTX 20系光追GPU推出的游戏黑科技,DLSS这些年来可说是为高分辨率下的光追游戏得以流畅运行立下了汗马功劳。作为当今游戏业界最常用的几个游戏引擎免费插件之_,DLSS在各类游戏引擎中都得到了充分的扩展,比如大名鼎鼎的虚幻引擎。

NVIDIA DLSS是业界最常用的游戏引擎的免费插件,今年2月推出的虚幻引擎4的DLSS插件,一直支持到虚幻引擎2021.2版本,后来在6月中旬,NVIDIA又推出了基于虚幻引擎5的DLSS插件,实现了对UE的全系DLSS支持。而游戏引擎的插件集成将使得游戏开发者在游戏中启用DLSS变得更加快捷且容易了许多。就像Night DiveStudios首席工程师Matthew Kenneally所说,“虚幻引擎4的DLSS插件可以轻松地将NVIDIA DLSS添加到的游戏中。带给玩家更大更强的游戏震撼性表现,—直是我们团队所热爱的工作。而NVIDIA DLSS对游戏性能与体验的影响,是不可否认的无与伦比。”

当然,也不只是UE引擎中引入了DLSS插件,事实上,包括4A GAMES、CRYENGINE等在内的多个游戏开发组都已经将DLSS带到了自家的内部游戏引擎中,这样在未来的时间里,DLSS也将能够更快地融入将来发售的游戏大作之中。

在此次在线媒体会上,NVIDIA宣布的另一个消息可能更略有震撼性一点,那就是NVIDIA DLSS将通过Proton提供对Vulkan API游戏的支持。这意味着什么?这意味着那些Linux操作系统的玩家也能够通过GeForceRTX GPU来获得DLSS的帧率加速功能了,比如《毁灭战士:永恒》《无人天空》《重返德军总部:新血脉》这些基于Vulkan API的游戏在Linux平台上也能获得DLSS的“帧加速”功能,NVIDIA已经计划在2021年秋季提供经由Proton在Linux上运行DX向的DLSS游戏的功能,想必对Linux玩家来说,这是巨大的利好消息。

NVIDIA DLSS,因何而生?

新一代游戏的需求是什么?实时光线追踪、大物理运动模型、高动态CG以及4K或更高的分辨率输出……这些需求毫无疑问都在很大程度上推动着GPU的计算能力要求以几何指数的幅度增长。比如单独的实时光线追踪计算,这将比传统的光栅化图像渲染计算复杂数倍,对GPU的计算能力要求也达到了数倍的增长。在这种情况下,NVIDIA在RTX GPU中集成了单独的RT Core来应对光追计算要求。但是,在1440p或更高的4K分辨率下,即使拥有RT Core,对绝大部分RTX GPU来说,也不足以满足绝大部分游戏中最高画质+光追效果的流畅运行需求。因此这时候,在游戏中就需要一种额外的算法,这种算法能够将GPU的计算能力集中在更少、更拟真的像素上,也就是GPU在游戏中实际渲染低于设置的分辨率的像素,然后使用分辨率缩放填充技术,以原始显示分辨率和原始图像质量来欣赏这些图像,这就是NVIDIA在图灵核心的RTX 20系GPU上提出的“深度学习超级采样”功能-DLSS。一种渲染更少像素,并使用先进的AI技术以更高分辨率输出高质量图像的“游戏黑科技”。

DLSS的核心就在于以低分辨率的实际渲染输出高分辨率的图像,自然这其中的核心挑战就在于如何保留图像中的细节,也就是以实际渲染的低分辨率来实现输出的高分辨率画质。而实现这一切的核心,也要依靠NVIDIA RTX GPU中所配置的张量核心-Tensor Core。

NVIDIA在基于'Tensor Core神经网络的人工智能研究模型取得了巨大的进步,并由此产生了非常高的图像质量。利用这项AI研究,NVIDIA开发了一种新的图像处理算法,这种算法近似于AI研究模型并符合NVIDIA对渲染输出的性能预算,DLSS就这样诞生了。事实上,NVIDIA从DLSS l.0的“可预测、固定”的AI模型训练到DLSS 2.0的AI模型训练升级,DLSS的核心策略已经发生了转变。从DLSS 2.0开始,NVIDIA已经不再依赖于单个的、固定游戏的神经网络,而是构建了一个通用训练的AI神经网络并持续不断地对其进行着优化,这也是DLSS的根本基础所在。

AL加持的分辨率增强,DLSS工作原理简述

前面已经说过,NVIDIA DLSS是一种基于Tensor Core的AI超级分辨率算法,在RTX GPU内部有Tensor Core为这一算法进行独立的专项加速。其实,要更简单一点来理解DLSS的话,我们可以将其看作在1080p分辨率渲染下输出4K的图像这一过程。在1080p分辨率下渲染,游戏帧率自然相比4K分辨率会有极大程度的提升,然后输出的图像通过Tensor Core的AI神经网络和游戏引擎数据的再学习,对1080p的渲染图形进行智能增强,从而最终输出4K分辨率质量的图像。

我们知道,在1080p分辨率下一帧游戏画面大约需要203万个像素(1920x1080)填充,而在4K分辨率下,一帧游戏画面大约需要830万个像素(3840x2160)。这也就意味着,要从1080p的实际GPU渲染分辨率到输出4K高质量的图像,其中“丢失”的像素约为620万个以上。那么毫无疑问的是,NVIDIA的DLSS这-AI算法能够收集到的这些像素信息越多、越详细、越准确,最终输出的4K图像质量就越好。那么,对RTX GPU来说,它在这一过程中是如何做的呢?

从DLSS工作流程图中,我们可以清晰地看出,NVIDIA DLSS通过四种不同的输入源,一起确定显示屏上的最终输出游戏画面帧,也是在低分辨率实际渲染下得到高分辨率最终输出结果的真正原因。即利用低分辨率的当前帧、运动矢量和高分辨率的前一帧,逐像素地确定如何生成高分辨率的当前帧(通过训练好的人工智能神经网络模型)。

我们以4K分辨率、光追开启+最高画质下,开启DLSS的游戏渲染过程为例,首先看左侧。在开启光线追踪效果后,再开启DLSS,比如“平衡模式“或游戏内置固定模式。这时就会产生第一种原始的输入源——游戏引擎实际以较低分辨率渲染的游戏画面帧(比如1080p或1440p图像),这是游戏渲染过程中最原始的输入。

接着产生的输入源是由游戏引擎生成的游戏图像的运动矢量(Motion Vector)逐帧的预测。运动矢量预测的意义在于,它能够通知DLSS算法,在这一游戏场景中每个物体在帧与帧之间的运动趋势与方向。对DLSS来说,在一定程度上是比较依赖于运动矢量预测来学习前一高分辨率输出帧并渲染增强当前帧的输出。因此,对游戏引擎来说,仍然是需要将这些运动矢量提供给DLSS。对绝大部分游戏来说,开发人员已经在游戏中对物体的运动提前进行了某些形式的处理(比如某些抗锯齿效果),而这些处理信息在游戏引擎中是可以直接使用的,并只需要提供给DLSS就行。这也就意味着DLSS仍然是需要在每一次游戏的基础上进行每一帧的预测处理,这并非是固定的处理方式,也和之前的FXAA、图像锐化放大、点阵或双线性分辨率增强技术等纯后端的处理解决方案完全不一样。

第三是DLSS增强的高分辨输出的前一帧。高分辨率输出的前一帧在DLSS的连续处理过程中是非常重要的。在运动矢量的预测下,DLSS能够结合前一帧的高分辨输出画面,实现逐帧的画质和物体追踪,这样能够保证游戏画面动态渲染的稳定性,并最大可能地接近原生分辨率的输出画质,减少可能存在的因DLSS分辨率AI补充带来的残缺、花屏或伪影等现象。

在这个过程中,DLSS机制会不断访问高分辨率的前一帧,在运动矢量检测下不断追踪每一个像素,并且能够在不同的游戏帧中对同一像素进行多次采样对比(时间超级采样)。分辨率越高,可供采样的像素点也就越多,分辨率越低,可供采样的像素点也就越少。所以在更高的分辨率下开启DLSS,对游戏画质的影响就越小,甚至会比原生画质更加锐利丰富。因为在多重超级采样的机制下,DLSS针对几乎每一个像素点都进行了反复的推敲优化,能够提供比相比传统的锐化、抗锯齿设置解决方案更丰富的画面细节展现和更光滑的物体边缘处理。另外与传统的抗锯齿技术更注重边缘的锯齿效果不同的是,DLSS可以对全屏画面的像素做采样,在非物体边缘的细节也会得到极大的增强,这也是同很多锐化技术、抗锯齿技术不同的地方。

最后则是DLSS特别的黑科技——基于AI大数据的16K分辨率图像模型训练。这一训练是通过NVIDIA放置在云端服务器上的超级计算机实现的,并通过RTX GPU中的TensorCore进行实时的AI预测高性能处理。这个在超级计算机上训练好的模型,可以让DLSS算法学会以更高的图像精确度来预测补足输出高分辨率的游戏画面,并且随着训练的持续,这个算法模型会迭代得越来越完美。简单地理解,我们可以认为NVIDIA在云端有一台超级计算机,这台超级计算机会对比低分辨率图片和原生16K标准图片的差异,不断的训练生成一个基于AI的“脑补”像素模型算法。而这个训练好的模型会随着驱动更新下载到用户的电脑上。而用户的RTXGPU在执行支持DLSS的游戏时,就会调用这个已经训练好的AI模型,利用Tensor Core加速对每一帧进行速像素填充了。超级计算机训练的算法模型是会不断迭代的,随着训练时间的增加,这个人工智能像素填充模型也会不断完善愈发趋于完美。这项技术也充分体现了,人工智能的魅力所在,它可以在不需人工干预的情况下,就利用海量的数据进行自我迭代,最终不断优化算法模型。玩家可以看到在DLSS诞生以后的这两年时间内,其实DLSS的实际效果有了翻天覆地的变化,这—方面得益于DLSS实现方法的进步,另一方面人工智能也是功不可没。这种人工智能的算法模型,也在维度上完全超越了传统的人工编程的缩放、锐化算法。这也是NVIDIA在人工智能领域不断探索推进以后用于反哺自家游戏的一个典型黑科技。而对于传统的图形渲染行业而言,如果没有人工智能的加持,是很难通过人工编程算法来实现类似效果的,一方面没有大规模训练的AI模型,另一方面用户终端也没有能为AI预测计算加速的专用硬件核心。NVIDIA DLSS通过这种基于超级计算机和AI核心的持续性训练,现在DLSS已经可以学习如何处理从火焰效果、烟雾效果到粒子效果的各种全新内容。而且必须要提的是,DLSS这种基于AI核心和AI算法的功能,在用戶终端上由于有Tensor Core的AI运算加速加持,在速度上已经将“手动”固定编解码计算的非AI处理方式(如之前常见的游戏画质锐化或分辨率缩放功能)远远地抛在了身后。在RTX GPU中可以高达285TFLOPS的Tensor Core Ali+算性能下,开启DLSS对GPU核心的负担几乎没有额外增加,DLSS也能够与3D游戏的正常渲染输出几乎同步同时地实时进行。

以AL增强细节,DLSSVs,传统图像锐化与分辨率缩放

其实,在DLSS出现之前,业内也已经出现过多种与分辨率缩放及图像蜕化解决方案相关的技术或功能。比如点阵优化(Point upscale).双线性优化(Bilinear upscale)等,甚至NVIDIA自己也开发了一个称为NIS的图像锐化与分辨率缩放的解决方案。但就这些方案来说,在最终的输出图像质量上,跟DLSS相比都还有比较大的差距。为什么?我们以NVIDIANIS(NVIDIA图像锐化)来看看。

传统的分辨率增强锐化技术,比如NIS,几乎都是通过平衡相邻像素来提高图像的分辨率,然后再通过着色器以自适应锐化的方法来增强图像中物体的边缘质量。这种图像锐化处理的方式与DLSS在原理上有着比较大的本质差别,不支持AI和没有基于超级计算机的模型训练是二者之间的核心差距。对NIS或其他传统增强方式来说,它们基本只会使用当前的低分辨率图像信息作为输入帧,没有运动矢量预测,没有高分辨率前帧追溯,更没有超大分辨率的模型训练。因此这些传统的增强方式在最终输出的高分辨率图像的细节上与原生分辨率图像相比要欠缺很多,而且在帧稳定性上也有比较明显的差距。虽然看似提升了性能,但实际上对游戏画质的影响还是非常明显的。

最后要提—下,前不久AMD也推出了自家的分辨率缩放渲染输出技术FSR。虽然目前还没有特别多的游戏支持,但由于FSR技术实现的是对全系显卡的普遍支持,因此它应该是不太依赖于GPU硬件本身,也就是说在AI性能上应该是比较欠缺的。当然,从目前AMD已经公开的部分资料和我们之前的一些测试数据来看,FSR更像是在传统缩放、锐化和抗锯齿技术上的算法衍进,而没有涉及AI人工智能相关技术,所以它跟DLSS是不是有可比性还不好说,毕竟NVIDIA在几年前就已经推出了NIS。而从NVIDIA的DLSS生态来看,目前已经有超过55款游戏加入了DLSS的游戏矩阵,有10多款主流游戏引擎也对其提供了支持,从目前来看的话,应该还是DLSS占据主动。不过二者之间到底有何差异?各有怎样的优势与缺点?我们将在后续的评测中陆续为大家揭晓。

深度学习,DLSS的未來

DLSS,也就是DL+SS,其实是深度学习与超级采样的结合体。在我们看来,DLSS的最重要的核心还是在于DL,也就是Deep Learning,深度学习。虽然此前有些预置的图像增强算法在速度上的表现还算不错,也能够比较接近AI的效果。但这种算法在某些极端的情况下却比较容易导致崩溃,从而严重地影响游戏画质表现。就好比汽车的自动驾驶系统,你永远不可能预先编辑出每一个汽车在行驶过程中所可能遇到的场景.因为其中存在着巨量的可变因素,也就是变量。因此,现代自动驾驶解决方案必须要依靠AI人工智能才能有明显的进步。

而游戏这个虚拟世界与自动驾驶类似,依靠事先预置的编码解决方案几乎不可能准确预测许多游戏中每个像素的颜色和运动轨迹。而DLSS的深度学习并不是通过无限条件语句来解决问题,而是从海量的大数据、大模型中学习算法。DLSS从数万甚至数十万个渲染精美的图像中学习,在云端超级计算机中以非常低的帧速率和每像素约64个样本进行离线渲染,然后训练深度神经网络来识别正确、精致的游戏图像应该是什么样子。然后这些AI神经网络从较低分辨率、较低样本数的图像中重建它们。神经网络整合来自较低分辨率帧的不完整信息,结合模型训练信息创建最终输出的平滑、清晰的游戏图像。因此,DLSS作为NVIDIA的黑科技武器,深度学习是它的立足之本,也是其余众多其他解决方案最本质的区别与性能表现卓越的根本所在。它,才是DLSS的未来所在!

猜你喜欢

高分辨率引擎分辨率
高分辨率合成孔径雷达图像解译系统
EM算法的参数分辨率
原生VS最大那些混淆视听的“分辨率”概念
蓝谷: “涉蓝”新引擎
基于深度特征学习的图像超分辨率重建
一种改进的基于边缘加强超分辨率算法
高分辨率对地观测系统
无形的引擎
基于Curvelet-Wavelet变换高分辨率遥感图像降噪
基于Cocos2d引擎的PuzzleGame开发