CASRenderModule
class CASRenderModule : public cauldron::RenderModuleCASRenderModule 处理与 CAS 相关的若干任务。
CASRenderModule 负责:创建 UI 部分,使用户能够切换 CAS 的选项,进行锐化或上采样,并将结果输出到颜色目标。
依赖项: FfxCasContext, FfxCasContextDescription
继承自: public cauldron::RenderModule
公共接口
构造函数
CASRenderModule
inline CASRenderModule()带默认行为的构造函数。
属性: inline
来源: samples/cas/casrendermodule.h (第 57 行,第 5 列)
析构函数
~CASRenderModule
virtual ~CASRenderModule()拆解 FFX API 上下文并释放资源。
属性: virtual
来源: samples/cas/casrendermodule.h (第 65 行,第 13 列)
公共函数
初始化
virtual void Init(const json &initData) override初始化 FFX API 上下文,设置用作临时输入的内部颜色纹理,并为 CAS 设置 UI 部分。
参数
| 名称 | 类型 | 默认 |
|---|---|---|
initData | const json & | “ |
属性: virtual
来源: samples/cas/casrendermodule.h (第 70 行,第 18 列)
执行
virtual void Execute(double deltaTime, cauldron::CommandList *pCmdList) override设置 FFX API 本帧所需的输入/输出纹理和参数,然后调用 FFX Dispatch。
参数
| 名称 | 类型 | 默认 |
|---|---|---|
deltaTime | double | “ |
pCmdList | cauldron::CommandList * | “ |
属性: virtual
来源: samples/cas/casrendermodule.h (第 75 行,第 18 列)
OnResize
virtual void OnResize(const cauldron::ResolutionInfo &resInfo) override当分辨率改变时,由框架调用。需要响应此调用重置 CAS 的 FFX API 上下文。
参数
| 名称 | 类型 | 默认 |
|---|---|---|
resInfo | const cauldron::ResolutionInfo & | “ |
属性: virtual
来源: samples/cas/casrendermodule.h (第 80 行,第 18 列)
私有接口
私有函数
UpdateResolution
cauldron::ResolutionInfo UpdateResolution(uint32_t displayWidth, uint32_t displayHeight)由框架必需,以便 CAS RenderModule 可以处理上采样比例。
参数
| 名称 | 类型 | 默认 |
|---|---|---|
displayWidth | uint32_t | “ |
displayHeight | uint32_t | “ |
返回值: cauldron::ResolutionInfo
来源: samples/cas/casrendermodule.h (第 103 行,第 30 列)
UpdatePreset
void UpdatePreset(const int32_t *pOldPreset)当启用上采样或更改上采样预设时调用的回调函数。
参数
| 名称 | 类型 | 默认 |
|---|---|---|
pOldPreset | const int32_t * | “ |
来源: samples/cas/casrendermodule.h (第 108 行,第 30 列)
UpdateUpscaleRatio
void UpdateUpscaleRatio(const float *pOldRatio)上采样比例滑块的回调函数。
参数
| 名称 | 类型 | 默认 |
|---|---|---|
pOldRatio | const float * | “ |
来源: samples/cas/casrendermodule.h (第 113 行,第 30 列)
SetupFfxInterface
void SetupFfxInterface()来源: samples/cas/casrendermodule.h (第 115 行,第 30 列)
InitCasContext
void InitCasContext()来源: samples/cas/casrendermodule.h (第 116 行,第 30 列)
DestroyCasContext
void DestroyCasContext()来源: samples/cas/casrendermodule.h (第 117 行,第 30 列)
私有成员
CAS_State m_CasState
CAS_State m_CasState = = CAS_State_SharpenOnly属性: private
来源: samples/cas/casrendermodule.h (第 119 行,第 15 列)
bool m_CasEnabled
bool m_CasEnabled = = true属性: private
来源: samples/cas/casrendermodule.h (第 120 行,第 15 列)
float m_Sharpness
float m_Sharpness = = 0.8f属性: private
来源: samples/cas/casrendermodule.h (第 121 行,第 15 列)
CASScalePreset m_ScalePreset
CASScalePreset m_ScalePreset = = CASScalePreset::UltraQuality属性: private
来源: samples/cas/casrendermodule.h (第 123 行,第 20 列)
float m_UpscaleRatio
float m_UpscaleRatio = = 1.3f属性: private
来源: samples/cas/casrendermodule.h (第 124 行,第 20 列)
bool m_UpscaleRatioEnabled
bool m_UpscaleRatioEnabled = = false属性: private
来源: samples/cas/casrendermodule.h (第 125 行,第 20 列)
bool m_CasUpscalingEnabled
bool m_CasUpscalingEnabled = = false属性: private
来源: samples/cas/casrendermodule.h (第 126 行,第 20 列)
FfxCasContextDescription m_InitializationParameters
FfxCasContextDescription m_InitializationParameters = = {0}属性: private
来源: samples/cas/casrendermodule.h (第 129 行,第 30 列)
FfxCasContext m_CasContext
FfxCasContext m_CasContext属性: private
来源: samples/cas/casrendermodule.h (第 130 行,第 30 列)
const cauldron::Texture * m_pColorTarget
const cauldron::Texture * m_pColorTarget = = nullptr属性: private
来源: samples/cas/casrendermodule.h (第 133 行,第 29 列)
const cauldron::Texture * m_pTempColorTarget
const cauldron::Texture * m_pTempColorTarget = = nullptr属性: private
来源: samples/cas/casrendermodule.h (第 134 行,第 29 列)
std::function<cauldron::ResolutionInfo(uint32_t, uint32_t)> m_pUpdateFunc
std::function<cauldron::ResolutionInfo(uint32_t, uint32_t)> m_pUpdateFunc = = nullptr属性: private
来源: samples/cas/casrendermodule.h (第 137 行,第 19 列)
来源: samples/cas/casrendermodule.h (第 51 行,第 1 列)