FidelityFX Super Resolution

此示例演示了 FidelityFX Super Resolution 3.1.4 在画面放大和帧生成方面的应用。
有关底层算法的详细信息,您可以参考 FSR3 画面放大 和 帧插值 的各技术文档。
要求
- Windows
- DirectX(R)12
- Vulkan(R)
UI 元素
示例包含各种 UI 元素,以帮助您探索其演示的技术。下表总结了 UI 元素及其在示例中的控制功能。
| 元素名称 | 值 | 描述 |
|---|---|---|
| 粒子动画 | 选中,未选中 | 启用或禁用粒子发射,这用于演示反应性遮罩的使用。 |
| 方法 | 原生、FSR | 用于选择画面放大方法,可以选择原生分辨率(无画面放大)或使用 FSR 进行画面放大。 |
| FSR 版本 | 3.1.4, 2.3.3 | 选择要使用的 FSR 画面放大器版本。 |
| 预设比例 | 原生抗锯齿 (1.0x)、质量 (1.5x)、平衡 (1.7x)、性能 (2x)、超高性能 (3x)、自定义 | 选择画面放大预设,它表示从渲染分辨率到显示分辨率的每维缩放因子。 |
| Mip LOD 偏差 | -5.0..0.0 | 用于选择在 G-Buffer 传递过程中采样纹理时应用的 mipmap 偏差量。 |
| 自定义比例 | 1.0..3.0 | 当“缩放预设”设置为“自定义”时,允许设置自定义缩放因子。 |
| 信箱大小 | 0.2..1.0 | 当设置为小于 1 的值时,会在画面周围添加黑色边框。 |
| 重置画面放大 | 点击后,会为一帧设置画面放大重置标志,模拟不连续的相机变化。 | |
| 绘制画面放大调试视图 | 选中,未选中 | 切换画面放大调试视图。请参阅下面的说明。 |
| 反应性遮罩模式 | 禁用、手动生成反应性遮罩、自动生成 FSR2 辅助函数 | 用于选择生成反应性遮罩的方法。可以选择完全禁用它,通过绘制透明对象手动生成,或使用 FSR 2 提供的辅助函数自动生成。 |
| 使用透明度和组合遮罩 | 选中,未选中 | 切换透明度和组合遮罩的使用。 |
| RCAS 锐化 | 选中,未选中 | 切换 RCAS 锐化功能的使用。 |
| 锐度 | 0.0..1.0 | 更改 RCAS 启用时应用的锐化量。 |
| Upscaler CB 键 | fVelocity, fReactivenessScale, fShadingChangeScale, fAccumulationAddedPerFrame, fMinDisocclusionAccumulation | 选择在 KeyValue API 中公开的画面放大器调优旋钮。 |
| Upscaler CB 值 | -1.0..2.0 | 更改时,使用此值调用 KeyValue API 来设置画面放大器调优旋钮。 |
| 调试器 | 禁用, 启用。设置 nullptr 消息回调, 启用。设置 Cauldron 消息回调 | 为所有 ffx-api 上下文选择调试检查器行为。调试检查器是禁用的、启用的并输出消息到调试器 TTY,还是启用的并输出消息到应用程序的回调。当 FFX_FSR3UPSCALER_ENABLE_DEBUG_CHECKING 或 FFX_FRAMEGENERATION_ENABLE_DEBUG_CHECKING 标志位改变时,将重新创建上下文。 |
| 帧插值 | 选中,未选中 | 切换帧生成。 |
| 支持异步计算 | 选中,未选中 | 切换在创建上下文时设置的异步计算标志。 |
| 允许异步计算 | 选中,未选中 | 切换异步计算队列的使用。 |
| 使用回调 | 选中,未选中 | 切换帧生成回调的使用。 |
| 使用失真场输入 | 选中,未选中 | 切换 distortionField 纹理的使用。 |
| 绘制帧生成撕裂线 | 选中,未选中 | 切换窗口左右两侧的撕裂指示器。 |
| 绘制帧生成同步线 | 选中,未选中 | 在窗口左侧绘制两条垂直线。最左边的线在绿色和品红色之间交替。另一条线在黑色和白色之间交替。如果同步完成得当,用户应该能看到两条灰色线。 |
| 绘制帧生成重置指示器 | 选中,未选中 | 切换窗口顶部的重置指示器。 |
| 绘制帧生成调试视图 | 选中,未选中 | 切换帧生成调试视图。请参阅下面的说明。 |
| 仅显示插值帧 | 选中,未选中 | 启用时,只显示插值帧。 |
| 重置帧插值 | 点击后,会为一帧设置帧生成重置标志,模拟不连续的相机变化。 | |
| 模拟画面跳过 | 点击后,通过将帧 ID 增加两倍来模拟跳过一帧的显示。 | |
| UI 组合模式 | 无 UI 处理(不推荐)、UiTexture、UiCallback、Pre-Ui Backbuffer | 选择渲染已生成帧的用户界面的方法。 |
| 在交换链中双缓冲 UI 资源 | 选中,未选中 | 切换交换链上下文中 UI 资源的双缓冲。 |
| Waitcallback 模式 | nullptr, CAUDRON_LOG_DEBUG(waitCallback) | 如果启用,帧插值交换链将在选定的位置调用 waitcallback。例如,当调整窗口大小所需时间超过 1ms 时。 |
| 帧同步 safetyMarginInMs | 0.0..1.0 | 更改帧插值交换链同步调优 safetyMarginInMs 值。 |
| 帧同步 varianceFactor | 0.0..1.0 | 更改帧插值交换链同步调优 varianceFactor 值。 |
| 帧同步 allowHybridSpin | 选中,未选中 | 切换在等待目标 QPC 之前,帧插值交换链 presenterthread 是否使用混合自旋而不是忙碌自旋。 |
| 帧同步 hybridSpinTime (以计时器分辨率单位) | 0.0..10.0 | 更改插值交换链 presenterthread 在检查是否达到已完成帧的目标 QPC 之间的睡眠时间。 |
| Frame Pacing allowWiatForSingleObjectOnFence | 选中,未选中 | 切换帧插值交换链 interpolationThread 是否使用 WaitForSingleObject 而不是忙碌自旋等待 interpolationFence。 |
Upscaler 调试视图
当启画面放大调试视图时,将显示以下内容
帧生成调试视图和标记
当启用帧生成调试视图时,将显示以下内容
除了调试视图,还可以启用几个标记,这些标记可能会出现在窗口的侧面和顶部。
如果启用了撕裂线,将在每个生成帧的左侧绘制一条绿色条,在每个生成帧的右侧绘制一条颜色变化的条。这将有助于可视化插值帧是否已显示,以及帧是否以启用撕裂模式显示。
如果启用了重置指示器,当帧生成被手动重置时,屏幕顶部将出现红色条;当光流算法检测到不连续的相机变化时,将出现蓝色条。
设置 FidelityFX Super Resolution 3
该示例包含一个 专用的 FSR 渲染模块,该模块负责创建上下文并控制其生命周期。有关更多信息,请参阅 FidelityFX Super Resolution 3.1 概述和集成文档。
示例控件和配置
有关示例控件、配置和 FidelityFX Cauldron Framework UI 元素的详细信息,请参阅 运行示例。