分析Unreal Engine 5.2的功能:这是解决#StutterStruggle的答案吗?

分析Unreal Engine 5.2功能:解决#StutterStruggle的答案?

在Unreal Engine 5首次亮相近三年后,我们即将迎来第一批重要的UE5游戏发布,包括《Immortals of Aveum》、《The Lords of the Fallen》和《Stalker 2: Heart of Chernobyl》等。随着Unreal Engine 5.2的发布,现在是时候再次审视最新版本中添加的新功能以及这些新增内容将如何为未来的游戏带来新的色彩 – 包括之前使用自己引擎的开发商如CD Projekt Red和Crystal Dynamics制作的游戏。

UE5.2的重要新增特性是程序生成(Procedural generation)。在今年三月的Electric Dreams演示中,程序生成首次亮相。如果你还记得,最初的Unreal Engine 5展示中的场景,如《Lumen in the Land of Nanite》和《Valley of the Ancient》,是以一种非常特定的方式构建的。艺术家们手动放置并安排环境中的每一个细节,使用预制资源,经常花费时间复制粘贴这些资源,并进行旋转和缩放变换,以创建这些演示中的稀疏岩石环境。虽然这种技术在构建像这些展示一样规模较小的项目时可能是一种有效的方法,但这种“拼贴式组装”可能对于真正的游戏制作来说并不实用。这需要大量的人工劳动,对引擎的限制也较大,因为许多网格的浪费重叠会降低硬件加速的Lumen光线追踪性能。

在后来的Matrix Awakens演示中,Epic展示了一种用于填充城市环境的程序工具,但在5.2版本中,他们还发布了另一种适用于自然室外环境的系统,就像在Electric Dreams演示中看到的那样。在这里,Nanite不仅用于不透明对象(如岩石),还用于使用alpha遮罩的透明度的叶子和灌木等对象。根据我对演示的第一次接触以及在编辑器本身中的体验,这种技术似乎能够从有限数量的资源和少量艺术家干预中生成令人信服的高质量环境。这将使得填充大型世界以达到令人信服的细节变得更加容易,而Nanite则提供了所需的细节。

一些差异在视觉上表现得更好 – 因此我们为您制作了这个视频演示。在YouTube上观看

这种更系统的放置方法的另一个积极影响是在性能方面,硬件加速的Lumen现在可以在其默认的epic设置下运行得更好。举个例子,与软件Lumen在相同分辨率下相比,我测得的帧率提高了14%,同时提供了更明显的反射细节 – 软件版本中显示出的是较模糊的斑点,而硬件版本中可以显示出个别的叶子。在硬件实现中,漫反射光照质量也有所改善,因为软件解决方案往往会过度加深阴影区域。这是对像《Valley of the Ancient》这样基于套件的环境的有力改进,因为硬件加速的Lumen运行得更差,尽管其质量更高,但实际上却无法使用。

虽然这很令人印象深刻,但需要注意的是,这些概括往往在GPU受限时成立,但CPU受限的情况可能会有不同的结果。例如,在较低分辨率下运行UE5.2演示时,软件Lumen相比硬件Lumen提供了约10%的性能提升,这并不是一个微不足道的提升。CPU的要求可能也会很高,即使使用Core i9 12900K和6400MT/s DDR5 RAM,演示的平均帧率也只有略高于60fps。当以更高的速度穿越世界时,演示变得越来越受CPU限制,性能下降,出现卡顿。

有趣的是,尽管是一款现代引擎,UE5在具有更高核心和线程数量的CPU上似乎并不具备良好的扩展性 – 这与去年的结果相一致。例如,在12900K上从6个核心增加到8个核心,CPU受限性能只增加了6%,而打开超线程后,性能在这个测试序列中进一步提高了4%。再打开八个高效核心也不会提高帧率。

在六个核心/线程之后,UE5不再表现出明显的性能提升 – 因此现代处理器的潜力没有得到充分利用。

考虑到在未来几年中UE5似乎会变得非常普遍,这有点令人失望 – 尤其是随着平均CPU核心数量的不断增加。以《Cyberpunk 2077》为例,我们在12900K上从4个核心增加到16个核心时,帧率增加了88%,而在Electric Dreams演示中,我们只看到了30%的改进。基于这一点,UE5在利用现代多线程处理器方面仍有很大的发展空间。

如果您使用的是Ada Lovelace(Nvidia RTX 40系列)GPU,DLSS 3 Frame Generation可以是一种有效的对策,并且对开发人员来说非常容易实现,只需在Unreal Engine Marketplace上找到插件后,总共点击11次即可。在启用后,我在这个受CPU限制的场景中测量到了97%的帧率提升。我认为这使得DLSS3(以及AMD和Intel未来的等效技术)成为开发UE5游戏时不可或缺的选择。

UE5.2的另一个重要性能更新是对着色器编译行为的改进,这是我经常抱怨的一个问题,也是常规读者们熟知的。在UE4和UE5.0中,开发人员唯一能够防止着色器编译卡顿的方法是在游戏开始前提供一个预编译步骤。这在一些UE4游戏中是可行的,但它要求开发人员按部就班地玩游戏,以建立一个完整的玩家遇到的所有着色器库,如果有任何遗漏,仍然会出现卡顿。

正如您在这张截图中所看到的,与硬件版本相比,软件Lumen有时会过于黑暗。

在UE 5.1和匹配的Fortnite更新中,Epic添加了一种异步着色器编译方案,它可以实时工作,在游戏过程中在CPU上后台预编译着色器,以期望防止卡顿。这种技术并不完美,因为如果需要绘制的着色器还没有准备好,游戏会出现卡顿。在UE5.2中,这个异步系统更加准确,并且关键地增加了开发人员延迟着色器显示直到完全编译完成的能力,从而有可能完全消除与着色器相关的卡顿 – 但是可能会导致某些视觉效果或材质稍晚显示。

根据我的测试,这种改进的异步着色器预缓存和来自5.2的新的skipdraw功能具有改变性能的效果,消除了最大的(约500毫秒)卡顿,并大大提高了流畅度。然而,这并不能完全消除卡顿,仍然存在一些持续时间为30-50毫秒的例子,这些例子在完全“热”缓存中找不到。其中一些可能归因于遍历卡顿,UE5从UE4继承了这个问题,甚至在运行Unreal Engine 5.2的最新版本的Fortnite中仍然存在。

就卡顿而言,Unreal Engine 5.2确实是一个改进 – 但是遍历卡顿需要改进,即使是新的异步着色器缓存系统也不是开发人员完全依靠以获得流畅的玩家体验的万能解决方案。首先,它似乎不是默认启用的,可能会被一些开发人员忽略,其次,它会产生一些通过传统的着色器缓存方法来修复的卡顿。因此,将这个新的异步系统与旧的离线预缓存系统结合起来,可以在PC上实现最流畅的体验。

真让人好奇的是,从Unreal Engine 5.2中的这两个新功能如何在发售的第三方游戏中应用,从8月的Immortals of Aveum到10月的The Lords of the Fallen,再到12月的Stalker 2。2023年对于PC游戏来说并不是我所期望的一年 – 但是还有时间改变,而UE5.2可能发挥关键作用。