找回密码
 立即注册
查看: 589|回复: 0

【技术精讲】如何使用AMD FSR 超级分辨率锐画技术2 ...

[复制链接]
发表于 2022-7-8 11:29 | 显示全部楼层 |阅读模式
简介

AMD FSR超级分辨率锐画技术2(FSR 2)是我们的开源时域图像放大解决方案。使用了先进的时域算法来重建精细的几何和纹理细节,从有锯齿的输入产生抗锯齿输出。
此下载包还包含FSR2MovieRenderPipeline插件,可在使用Unreal Movie Render Queue时使用FSR 2来加速渲染。
启动

支持的虚幻引擎版本


  • FSR 2插件适用于虚幻引擎4.26.2*或更高版本,包括虚幻引擎5。
  • FSR2MovieRenderPipeline插件适用于虚幻引擎4.27.2*或更高版本,包括虚幻引擎5。
*如果您不是注册的虚幻引擎开发者,则需要按照以下说明进行注册才能访问此链接。
安装过程

安装插件需要:

  • 找到虚幻引擎安装的Engine/Plugins目录。
  • 解压缩FSR2.zip文件的内容。
  • 选择与要使用的虚幻引擎版本相对应的子文件夹。
  • 将FSR2文件夹放置在虚幻引擎源代码树中的以下位置:Engine/Plugins/Runtime/AMD(适用UE4)或Engine/Plugins/Marketplace(适用UE5)。

    • (可选)将FSR2MovieRenderPipeline文件夹放置在虚幻引擎源代码树中的以下位置:Engine/Plugins/Runtime/AMD。仅适用于虚幻引擎4.27.2及更高版本。

  • 打开您的虚幻引擎项目
  • 导航至虚幻引擎工具栏中的Edit      > Plugins。
  • 在Plugins对话框中:

    • 确保在左侧选择了All。
    • 在右上角的搜索框中键入“fsr”。
    • 选中FSR 2.0插件的Enabled复选框。

i. (可选)选中FSR2MovieRenderPipeline插件的Enabled复选框。



    • 出现提示时,单击Restart Now以应用更改,然后重新启动虚幻引擎。




插件配置

使用方法

必须在Project Settings > Rendering窗口中启用Temporal Upsampling,该窗口可通过虚幻引擎工具栏中的Edit > Project Settings访问,也可以通过控制台变量r.TemporalAA.Upsampling访问。



FSR 2.0可通过Project Settings > FidelityFX Super Resolution 2.0设置窗口中的Enabled选项启用或禁用,也可使用配置文件中的控制台变量r.FidelityFX.FSR2.Enabled启用或禁用。
注意:该变量可以在运行时修改*但是*当其他第三方图像放大工具也被启用时,此操作并不保证安全。
该插件通过控制台变量r.FidelityFX.FSR2.QualityMode覆盖r.ScreenPercentage来使用指定的质量模式。


可选模式有:

  • Quality·高质量(1.5x):r.FidelityFX.FSR2.QualityMode 1
提供了比原生渲染相同或更优的图像质量,同时有明显的性能提升。

  • Balanced·平衡(1.7x):r.FidelityFX.FSR2.QualityMode 2
图像质量和性能提升之间一个理想的折中选择。

  • Performance·性能(2.0x):r.FidelityFX.FSR2.QualityMode 3
提供了近似于原生渲染的图像质量,性能上有大幅提升。

  • Ultra      Performance·超高性能(3.0x):r.FidelityFX.FSR2.QualityMode 4
带来最高的性能提升,图像质量仍与原生渲染无明显落差。
集成说明

FSR2包含一个内置的锐化pass,名称为Robust Contrast Adaptive Sharpening(RCAS),可通过控制台变量r.FidelityFX.FSR2.Sharpness进行配置。默认情况下,此选项处于禁用状态。如果您的项目已经集成了FidelityFX—CAS,则可能需要在启用r.FidelityFX.FSR2.Sharpness时禁用FidelityFX CAS(包括任何游戏中的菜单选项),以防止过度锐化最终渲染,并改善集成结果。
为了使FSR2正确处理具有World Position Offset(世界位置偏移)和/或World Displacement(世界位移)的材质,必须启用r.VertexDeformationOutputsVelocity(UE4)或r.Velocity.EnableVertexDeformation(UE5)选项。r.FidelityFX.FSR2.ForceVertexDeformationOutputsVelocity设置默认情况下处于启用状态,且在启用时,FSR2将强制启用r.VertexDeformationOutputsVelocity(UE4)或r.Velocity.EnableVertexDeformation(UE5)。
启用r.FidelityFX.FSR2.CreateReactiveMask时,FSR2插件会将r.SSR.ExperimentalDenoiser强制设为1,以便捕获Screen Space Reflections(屏幕空间反射)。为处理此问题,r.SSR.ExperimentalDenoiser的初始值将应用于r.FidelityFX.FSR2.UseSSR.ExperimentalDenoiser。随后对r.FidelityFX.FSR2.UseSSRExperimentalDenoiser的值所做的更改将覆盖此设置。
为了在FSR2和另一个时域图像放大工具之间切换,请务必确保一次仅开启一个外部时域图像放大工具。在启用所需的图像放大工具之前,请先禁用当前的图像放大工具。
其他配置

控制台变量预设值数值范围详细信息
1r.FidelityFX.FSR2.AdjustMipBias1.00,
  1
将负MipBias应用于材质纹理,从而改善结果。
2r.FidelityFX.FSR2.Sharpness0.00.0
  – 1.0
大于0.0时,将启用Robust Contrast Adaptive Sharpening Filter以锐化输出图像。
3r.FidelityFX.FSR2.AutoExposure0.00,
  1
设定为1以使用FSR2的自动曝光,否则将使用引擎的自动曝光值。
4r.FidelityFX.FSR2.HistoryFormat0.00,
  1
为FSR2历史纹理格式选择位深度,默认为PF_FloatRGBA,但可以设定为PF_FloatR11G11B10以降低带宽,但会影响质量。
5r.FidelityFX.FSR2.CreateReactiveMask1.00,
  1
启用此选项可从SceneColor、GBuffer、SeparateTranslucency和ScreenspaceReflections生成一个mask,用于确定每个像素的反应程度。
6r.FidelityFX.FSR2.ReactiveMaskReflectionScale0.40.0
  – 1.0
将虚幻引擎的反射贡献程度缩放到reactive mask上,这可以用来控制反射表面的锯齿效果。
7r.FidelityFX.FSR2.ReactiveMaskReflectionLumaBias0.00.0
  – 1.0
通过反射的亮度来偏置reactive mask。用于在明亮的反射表面上平衡锯齿和重影。
8r.FidelityFX.FSR2.ReactiveMaskRoughnessScale0.150.0
  – 1.0
缩放GBuffer粗糙度,以便在screenspace(屏幕空间)和planar
  reflections(平面反射)被禁用或不影响像素时为reactive mask提供一个备用值。
9r.FidelityFX.FSR2.ReactiveMaskRoughnessBias0.250.0
  – 1.0
当screenspace(屏幕空间)/planar reflections(平面反射)较弱时,使用GBuffer粗糙度偏置
10r.FidelityFX.FSR2.ReactiveMaskRoughnessMaxDistance60000.0
  – INF
使用材料粗糙度影响reactive mask的最大距离(以世界单位表示),将使用该值和View.FurthestReflectionCaptureDistance的最大值。
11r.FidelityFX.FSR2.ReactiveMaskRoughnessForceMaxDistance0.00,
  1
启用此选项可强制使用世界单位中的最大距离,以便使用材质粗糙度而不是使用View.FurthestReflectionCaptureDistance对reactive mask做出贡献。
12r.FidelityFX.FSR2.ReactiveMaskTranslucencyBias1.00.0
  – 1.0
缩放reactive mask中的半透明贡献程度。较高的值将使半透明材质的反应程度较低,从而可以减少拖影。
13r.FidelityFX.FSR2.ReactiveMaskTranslucencyLumaBias0.80.0
  – 1.0
通过透明度的亮度偏置半透明的贡献程度。高值会使明亮的半透明材质反应程度更小,较高的值将使明亮的半透明材质反应程度较低,从而可以减少拖影。
14r.FidelityFX.FSR2.ReactiveMaskPreDOFTranslucencyScale1.00.0
  – 1.0
缩放pre-Depth-of-Field的半透明颜色对reactive mask的贡献程度。较高的值将使半透明材质的反应程度较低,从而可以减少拖影。
15r.FidelityFX.FSR2.ReactiveMaskPreDOFTranslucencyMax0.00,
  1
切换以确定是使用最大值(SceneColorPostDepthOfField
  -SceneColorPreDepthOfField)或长度(SceneColorPostDepthOfField
  – SceneColorPreDepthOfField)来确定pre-Depth-of-Field半透明对reactive mask的贡献程度。
16r.FidelityFX.FSR2.ReactiveMaskTranslucencyMaxDistance5000000.0
  – INF
以世界单位表示的使用半透明来影响reactive mask的最大距离。这是一种从reactive mask中去除天空盒(sky-box)和其他背板(back-plane)的方法,但这样较近的半透明材质将没有反应。
17r.FidelityFX.FSR2.ForceVertexDeformationOutputsVelocity1.00,
  1
即使角色没有移动,力使具有World Position
  Offset(世界位置偏移)和/或World Displacement(世界位移)的材质在速度pass中也能输出速度。
18r.FidelityFX.FSR2.UseSSRExperimentalDenoiser0.00,
  1
当FSR2启用时,启用r.SSR.ExperimentalDenoiser。当启用r.FidelityFX.FSR2.CreateReactiveMask时,这是必需的,因为FSR2插件会覆盖r.SSR.ExperimentalDenoiser,以便捕获反射数据以生成reactive mask。
19r.FidelityFX.FSR2.UseNativeDX121.00,
  1
True表示使用FSR2的原生和优化的D3D12后端,False表示使用基于Unreal的RHI的备用实现。
20r.FidelityFX.FSR2.UseNativeVulkan1.00,
  1
True表示使用FSR2的原生和优化Vulkan后端,False表示使用基于Unreal的RHI的备用实现。
21r.FidelityFX.FSR2.EnabledInEditorViewport0.00,
  1
默认情况下,在Editor视口中为Temporal Upscale启用FSR。
建议

优化半透明表现

虽然FSR2 Reactive Mask的默认设置应生成合理的结果,但开发者还是需要知道表现可以通过r.FidelityFX.FSR2.ReactiveMask...控制台变量进行更改。优化视觉效果可能需要调整这些变量以适应内容。
半透明天空盒和背景平面

使用天空盒或远处的背景平面时,在用FSR2时,用Opaque或Masked着色模型进行渲染是很有好处的。如果使用Translucent着色模型渲染,它们会影响FSR2半透明效果和reactive mask,这会导致不必要的伪影。当在天空盒/背景平面的顶部渲染其他半透明材质且相机移动时,这一点尤其明显。发生这种情况是因为插件无法区分各个半透明材质的用途,所以都用了同样的方式处理。
为了解决这个问题,FSR2插件会假设使用了半透明天空盒或背景平面,并会根据与相机间的重建距离淡化半透明影响程度。这将阻断远处不透明几何体上渲染的所有半透明材质,并且可以使用r.FidelityFX.FSR2.ReactiveMaskTranslucencyMaxDistance控制台变量进行控制。
使用不透明天空盒或背板时,请调整r.FidelityFX.FSR2.ReactiveMaskTranslucencyMaxDistance控制台变量以避免半透明材质超过范围被切断。
静态树叶

若要让使用World Position Offset(世界位置偏移)和/或World Displacement(世界位移)的Foliage(树叶)资源获得最佳效果,请选择Moveable作为移动选项。这可以确保资源将渲染FSR2生成最佳结果所需的必要运动向量。
UE4后期处理体积屏幕百分比覆盖

对于UE4,开发者应注意,FSR2启用时其质量模式将决定屏幕百分比,忽略后期处理体积中的任何屏幕百分比覆盖。这将导致不同的视觉和性能结果。
PIX和RenderDoc的问题

在FSR2插件图形捕获工具(如PIX和RenderDoc)中使用的原生FSR2后端可能不太稳定。禁用原生后端(r.FidelityFX.FSR2.UseNativeDX12或r.FidelityFX.FSR2.UseNativeVulkan)并使用基于RHI的后端,可以使捕获工具更可靠地重播捕获。
已知问题

分屏

虚幻引擎4中分屏的渲染不正确,且在虚幻引擎5中使用原生DirectX  12和Vulkan 后端时会崩溃。此问题将在将来的版本中得到解决。
独立半透明屏幕百分比

当前的FSR2插件版本依赖于Separate Translucency来生成reactive mask,并假设Separate Translucency纹理分辨率与渲染分辨率相匹配。使用r.SeparateTranslucencyScreenPercentage指定不同的分辨率将产生错误的最终效果。
影片渲染管线插件

FSR2MovieRenderPipeline插件一旦启用,将允许使用FSR2用Unreal Movie Render Queue加速Sequencer影片的渲染。
使用插件需要:

  • 打开您的Unreal项目。
  • 通过Editor打开一个Sequencer影片。
  • 在工具栏中选择影片输出。




  • 单击Unsaved Config以打开Movie      Render Queue设置。




  • 选择+ Setting选项并启用Fidelity FX      Super Resolution 2.0 Settings。




  • 然后在列表中选择新的Fidelity FX Super Resolution 2.0 Settings,并为渲染选择所需的质量模式。




  • 单击Accept,然后单击Render (Local)。
  • 输出将使用FSR 2进行渲染,将输出放大到目标分辨率。
立即获取UE FSR 2插件!

下面链接中的下载包包含用于UE 4.26、UE 4.27和UE 5.0的三个插件。(~340MB)
下载FSR 2插件:https://gpuopen.com/download/UE/FSR2-UE-2.0.1.ziphttps://gpuopen.com/download/UE/FSR2-UE-2.0.1.zip

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-25 10:16 , Processed in 0.097486 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表