Unreal Engine
使用我们的插件、性能和功能补丁(包括 FidelityFX 支持),在 AMD 硬件上为 Unreal Engine 进行开发。
当 FSR 2.1 可用时,我们也更新了我们的 FSR 2 Unreal Engine 插件。此更新不仅普遍改进了插件,而且我们还随包提供了两个补丁,可以提高视觉保真度。FSR 2.2 进一步改进了插件并增加了对 Unreal Engine 5.1 的支持。
这个分为五部分的博客系列(这是第二部分)重点介绍了这些补丁要解决的问题,以及如何在您自己的 Unreal Engine 项目中使用它们。
第一部分——改进植被外观:引入和使用基础通道生成速度。
→ 第二部分 – 改善植被外观:通过内容更改实现改进。
第三部分——改进植被外观:应用 ImproveStaticWPO 补丁。
第四部分——实现材质响应性:如何使特定着色模型写入响应性掩码。
第五部分 – 使材质具有响应性:应用 LitReactiveShadingModel 补丁。
在第一部分中,我们讨论了植被外观的问题,以及如何使用基础通道生成速度以改善它。
在第二部分中,我们讨论如何通过内容更改来改善植被的外观。
重要提示!
有一个单独的指南 介绍如何使用 FSR 2 Unreal Engine 插件——不要错过!本博文系列特别涉及 FSR 2.2 提供的增强功能,以及如何使用随此版本捆绑的补丁。
注意: 对 Unreal Engine 的补丁需要开发者从源代码构建,因为*补丁无法应用于 Epic 分发的二进制编辑器*。然而,本博文系列也展示了如何在可能的情况下修改项目设置和内容以获得相同的结果。
除了依赖 r.BasePassOutputsVelocity 或源代码补丁外,还可以通过内容更改来解决其中一些问题。在使用二进制版本的编辑器时,改进质量的唯一其他选择是内容更改,因为补丁需要修改 Unreal Engine 代码。
根据项目和涉及的资产类型,这些更改可能非常广泛。继续使用“A Boy and His Kite”作为示例,需要采取几个措施来更改项目和内容,以确保尽可能多的植被生成运动矢量。
为了使内容更改生效,有必要对项目设置进行修改。使用 r.BasePassOutputsVelocity 而不启用或允许 FSR 2.1 启用 r.BasePassForceOutputsVelocity 可能会导致即使所有对象都设置为“静态”或“可移动”,仍然缺少运动矢量。因此,如果需要渲染最少数量对象的运动矢量,则必须首先完成此操作。
要禁用此设置,请打开项目设置 > 引擎 > 渲染 > 优化,然后禁用在基础通道中输出速度。


演示使用了在景观材质中采样的草层,这些草层在运行时创建了**分层实例化静态网格体**组件,并在 Unreal Engine 代码中设置为静态移动性。
该插件在插件设置中有一个选项,可以在运行时将这些组件的移动性强制设置为静态。
要启用此设置,请打开项目设置 >插件 >FidelityFX Super Resolution 2.2,然后选择所有实例或具有世界位置偏移的实例。前者对 CPU 的开销较低,而后者可能需要更多 CPU 时间,但 GPU 开销较小。
一个新的控制台变量 r.Velocity.EnableLandscapeGrass 控制这些组件是否渲染速度,该变量默认启用。如果禁用了 r.Velocity.EnableLandscapeGrass,FSR 2.2 插件会启用它,以确保在启用了强制顶点变形以输出速度时正确渲染。
通常不需要启用强制景观 HISM 移动性选项。

启用此选项可确保起始场景中大多数靠近摄像机的草渲染速度,这对视觉效果有显著影响。但是,由于不是草层一部分的对象未渲染,速度仍然存在空白,这些对象需要额外的工作。
在演示的后期,还有一些树木仍然不渲染速度,其中许多是普通的静态网格体。

在编辑时,可以通过选择视口中的选项在**编辑器**视口中使用 FSR 2。

将这些网格体更改为静态会强制它们渲染 FSR 2 所需的速度,以获得最佳渲染效果,但仍有许多网格体未渲染。

这些是**实例化植被Actor**的一部分,需要修改用于在植被系统中生成它们的蓝图。切换编辑器到植被模式会显示当前关卡中使用的蓝图和静态网格体。

打开这些蓝图并将**移动性**从静态更改为静态,然后保存蓝图和关卡,它们将开始渲染速度。

速度插图特写
我们还可以打开**程序化植被系统**,它会向我们展示更多用于生成森林的蓝图。


这些蓝图定义了植被系统如何生成森林中的**实例化**静态网格体,并且要使它们生成速度,需要更改每个蓝图的*移动性*。

在使用了World-Position-Offset的材质上启用*抖动 LOD 过渡*选项,当 r.BasePassOutputsVelocity 被**禁用**时会产生问题。在这种情况下,引擎会使用抖动图案在两个 LOD 之间渲染基础通道,以实现 LOD 过渡的边界。这会减少 LOD 级别之间的“弹出”。
当 r.BasePassOutputsVelocity 被禁用时,速度是通过单独的通道渲染的,这会导致速度和抖动的基础通道之间出现不匹配,从而混淆 FSR 2 缩放算法。下面的屏幕截图显示了一个示例。

要解决此问题,需要启用 r.BasePassOutputsVelocity 或在相关材质中禁用*抖动 LOD 过渡*,如下图所示。

在使用 UE4 4.27 及更早版本的**材质实例**时,有必要仔细检查材质系统是否正确导出材质使用 World-Position-Offset。这对于 Unreal Engine 5 不是必需的。
问题出现在使用*材质实例参数*(默认值为 0)来控制**材质**中是否使用 World-Position-Offset 时,因为系统会根据**材质**的默认输入来评估 WPO 是否被使用,而不是根据**材质实例**。

带有实例参数的材质图

启用 WPO 的材质实例
**材质**将*动画*的值默认设置为 false,但**材质实例**将*动画*设置为 true。然而,使用**材质实例**的对象并未渲染速度,尽管它已动画化。

仅将默认值更改为*true*即可让材质系统假定 WPO 被使用并渲染速度。


一旦所有内容都经过正确修改,缩放结果中的重影将减少,但 CPU 和 GPU 的行为将发生变化。
在进行这些内容更改时,最好只更改出现重影的内容,尽可能将大部分设置为*静态*,以减少这些行为的变化。
下方链接的软件包包含我们所有当前可用的 UE 4/5 插件的最新版本 [约 600MB]
脚注
本文档包含的信息仅用于提供信息之目的,并可能随时更改,恕不另行通知。尽管已在本文档的准备过程中尽一切努力,但其中可能包含技术性不准确、遗漏和印刷错误,AMD 无义务更新或以其他方式更正此信息。Advanced Micro Devices, Inc. 对本文档内容的准确性或完整性不作任何陈述或保证,并且对本文档描述的 AMD 硬件、软件或其他产品的运行或使用不承担任何类型的责任,包括不侵权、适销性或特定用途适用性的默示保证。本文档不授予任何知识产权的许可,包括默示许可或因禁止反悔而产生的许可。适用于购买或使用 AMD 产品的条款和限制以双方签署的协议或 AMD 的标准销售条款和条件为准。
AMD、AMD 箭头徽标、FidelityFX、FidelityFX Super Resolution、FidelityFX Super Resolution 2.0 及其组合是 Advanced Micro Devices, Inc. 的商标。本出版物中使用的其他产品名称仅用于识别目的,并可能是其各自公司的商标。
Unreal® 是 Epic Games, Inc. 在美国和其他地区的商标或注册商标。
© 2022 Advanced Micro Devices, Inc. 版权所有。