跳至内容

FidelityFX 对比度自适应锐化

alt text

此示例演示了 FidelityFX 对比度自适应锐化 (CAS) 后期处理效果的使用。

有关 CAS 效果底层技术的详细信息,您可以参考相应的技术文档

要求

  • Windows
  • DirectX(R)12
  • Vulkan(R)

UI 元素

示例包含各种 UI 元素,以帮助您探索其演示的技术。下表总结了 UI 元素及其在示例中的控制功能。

元素名称描述
CAS 选项升采样、锐化、关闭如果设置为 关闭,则禁用对比度自适应锐化着色器的使用。如果设置为 升采样,则 CAS 着色器将从选定的“渲染尺寸”升采样并锐化到 JSON 配置文件(见上文)指定的显示分辨率。
CAS 锐化度0..1左右滑动控件可调节锐化量(0 - 最少,1 - 最多)。
预设比例超高质量、高质量、平衡、性能、超高性能、自定义组合预设选择。影响升采样比例。
自定义比例1..3左右滑动控件可调节缩放量(1 - 最少,3 - 最多)。请注意,必须启用自定义缩放预设才能使用自定义缩放滑块。

设置 CAS

对比度自适应锐化 (CAS) 示例接收颜色缓冲区作为输入,该缓冲区由几何渲染通道(包括不透明、透明和天空盒几何体)以及任何后期处理通道生成,但在任何 UI 元素渲染之前。CAS 着色器还具有一些统一参数输入 const0const1,它们作为输入传递给着色器函数 CasFilter,该函数定义在 ffx_cas.h 中。

这些常量的计算方法是通过调用同文件中的 CasSetup 函数,可以在 CPU(首选)或 GPU 上完成。CAS 着色器的输出图像尺寸与输入图像相同或更大。输出图像的有效尺寸是输入图像尺寸的函数,可以通过调用 CasSupportScaling 函数确定(有关所有这些函数的更多详细信息,请参阅 ffx_cas.h 中的注释)。

ffx_cas.h 头文件设计用于通过 #define 宏(见下文)从 C++ 和 HLSL/GLSL 中包含。

C++

#define FFX_CPU
#include <gpu/ffx_core.h>
#include <gpu/ffx_cas.h>

HLSL

#define FFX_GPU
#define FFX_HLSL
#include "ffx_core.h"
#include "ffx_cas.h"

GLSL

#define FFX_GPU
#define FFX_GLSL
#include "ffx_core.h"
#include "ffx_cas.h"

请注意,ffx_cas.h 依赖于 ffx_core.h,因此必须同时包含这两个文件。

着色器选项

CAS 着色器,更具体地说,是 CasFilter 函数,有几种不同的选项。一个选项是支持使用 16 位浮点 (FP16) 数学运算与 32 位浮点 (FP32) 数学运算。一般来说,在 AMD 硬件上,FP16 数学运算比 FP32 数学运算更有效。另一个选项是能够生成升采样输出,或者仅锐化输出而不升采样。为了获得最佳性能,该示例将这些选项编译成多种着色器排列,并在运行时根据示例的当前配置(见上面的 UI 元素部分)选择特定的着色器排列。总共有四种着色器排列:

  • FP16-仅锐化
  • FP16-锐化和升采样
  • FP32-仅锐化
  • FP32-锐化和升采样

示例控件和配置

有关示例控件、配置和 FidelityFX Cauldron Framework UI 元素的详细信息,请参阅 运行示例

另请参阅

© . This site is unofficial and not affiliated with AMD.