【技术精讲】如何使用AMD FSR 超级分辨率锐画技术2 ...
简介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,
1True表示使用FSR2的原生和优化的D3D12后端,False表示使用基于Unreal的RHI的备用实现。20r.FidelityFX.FSR2.UseNativeVulkan1.00,
1True表示使用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中使用原生DirectX12和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
页:
[1]