Unreal Engine
使用我们的插件、性能和功能补丁(包括 FidelityFX 支持),在 AMD 硬件上为 Unreal Engine 进行开发。
当 FSR 2.1 可用时,我们也更新了我们的 FSR 2 Unreal Engine 插件。此更新不仅普遍改进了插件,而且我们还随包提供了两个补丁,可以提高视觉保真度。FSR 2.2 进一步改进了插件并增加了对 Unreal Engine 5.1 的支持。
这篇五部分博客文章系列——这是第一部分——重点介绍了这些补丁所解决的问题,以及如何在您自己的 Unreal Engine 项目中使用它们。
→ 第 1 部分 – 改善树叶外观:简介和使用基础通道生成速度。
第二部分——改进植被外观:通过内容更改进行改进。
第三部分——改进植被外观:应用 ImproveStaticWPO 补丁。
第四部分——实现材质响应性:如何使特定着色模型写入响应性掩码。
第五部分 – 使材质具有响应性:应用 LitReactiveShadingModel 补丁。
在第一部分中,我们讨论了如何改善树叶的外观,以及可以通过使用基础通道生成速度来实现这一目标的一种方法。
重要提示!
有一个单独的指南 介绍如何使用 FSR 2 Unreal Engine 插件——不要错过!本博文系列特别涉及 FSR 2.2 提供的增强功能,以及如何使用随此版本捆绑的补丁。
注意: 对 Unreal Engine 的补丁需要开发者从源代码构建,因为*补丁无法应用于 Epic 分发的二进制编辑器*。然而,本博文系列也展示了如何在可能的情况下修改项目设置和内容以获得相同的结果。
在 Unreal Engine 中,动画树叶最常见的方法之一是在材质中使用 **World Position Offset** (WPO),为几何体添加柔和的运动,而无需诉诸完整的动画和 Skeletal Mesh 渲染。这会直接动画每个顶点,并且默认情况下,除非对象本身在移动,否则不会生成任何运动矢量。
对于 FSR 2 等缩放器而言,这可能导致次优的缩放结果,因为算法无法解释树叶的运动,导致闪烁,因为历史样本的权重不正确。FSR 2 插件可以启用控制台变量 r.VertexDeformationOutputsVelocity (UE 4.27 或更早版本) 或 r.Velocity.EnableVertexDeformation (UE 5.0 或更高版本),强制这些材质写入运动矢量,前提是它们所使用的对象的材质符合评估标准。
对于 Unreal Engine 5.0 及更早版本,存在一项优化,会跳过设置为静态移动的对象(因为它们预计不会移动或动画)的运动矢量计算。对于 Unreal Engine 5.1 及更高版本,对象将默认评估 World Position Offset,除非开发者禁用它。
对于 Unreal Engine 中的默认缩放器,这通常不是一个明显的问题,因为算法经过调整,可以处理 WPO 提供的此类微小运动。然而,FSR 2 对游戏提供的运动矢量的存在和保真度都更加敏感。
因此,有必要
r.BasePassOutputsVelocity 引擎设置。启用 r.BasePassOutputsVelocity 会强制在基础通道中生成速度,而不是作为单独的通道。FSR 2 插件会启用 r.BasePassForceOutputsVelocity 以确保所有对象都渲染速度,从而避免这些问题。然而,这会增加所有对象的 GPU 工作量,无论它们是否使用 WPO 材质。
为了更轻松地实现最佳结果,FSR 2 插件现在包含了 **ImproveStaticWPO.patch**,该补丁会修改引擎,以便为所有使用 WPO 材质的对象自动生成运动矢量,而无论其移动性设置如何。
r.VelocityOutputPass 控制台变量控制哪个通道生成速度数据。它默认在基础通道中渲染速度,这对于 FSR 2 是首选。
不再需要修补引擎来确保对象为 World Position Offset 材质渲染速度。开发者应避免启用 r.OptimizedWPO 控制台变量。如果启用了 r.OptimizedWPO,请确保在编辑器中使用 World Position Offset 材质的网格组件上保持启用 bEvaluateWorldPositionOffset,以便它们能够生成速度数据。
默认使用 FSR 2 时,最靠近摄像机的草地会显得模糊。
FSR 2 插件已经启用了控制台变量 r.VertexDeformationOutputsVelocity (<= 4.27) 或 r.Velocity.EnableVertexDeformation (>= 5.0) 来强制 WPO 材质渲染速度,但可视化速度数据(如下所示)显示这些对象并未渲染速度。
此项目默认启用了 r.BasePassOutputsVelocity 设置,这意味着速度数据在基础通道中写入。这稍微改变了引擎的行为,并允许 FSR 2.1 插件也启用 r.BasePassForceOutputsVelocity 设置,该设置会为屏幕上的所有对象发出速度数据,并确保 FSR 2 具有所需的运动矢量。

未修补的 UE4 4.27 FSR2.1 - 速度嵌入
对于已在使用 r.BasePassOutputsVelocity 的项目,这现在是默认行为,并将确保默认获得最佳质量。然而,这确实增加了所需的 GPU 工作量,因为现在所有对象都在发出速度,即使它们可能不需要。
未使用 r.BasePassOutputsVelocity 但使用大量 World-Position-Offset 材质的项目应考虑启用此设置并进行性能分析,因为在许多情况下,这无需大量投入即可充分发挥作用。
在使用编辑器二进制版本时,这是最简单的选项。
在 第 2 部分 中继续阅读,了解如何通过内容更改来解决其中一些问题,而不是依赖 r.BasePassOutputsVelocity 或源代码补丁。在使用编辑器二进制版本时,内容更改是提高质量的唯一其他选项,因为补丁需要修改 Unreal Engine 代码。
或者,您可以随意跳到其他部分
第 1 部分 – 改善树叶外观:简介和使用基础通道生成速度。
→ 第 2 部分 – 改善树叶外观:通过内容更改进行改进。
第三部分——改进植被外观:应用 ImproveStaticWPO 补丁。
第四部分——实现材质响应性:如何使特定着色模型写入响应性掩码。
第五部分 – 使材质具有响应性:应用 LitReactiveShadingModel 补丁。
下方链接的软件包包含我们所有当前可用的 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. 版权所有。