跳至内容

RasterShadowRenderModule

class RasterShadowRenderModule : public cauldron::RenderModule, public cauldron::ContentListener

该栅格阴影渲染模块负责渲染所有栅格化的阴影几何体。

继承自: public cauldron::RenderModule, public cauldron::ContentListener

公共接口

构造函数

RasterShadowRenderModule

inline RasterShadowRenderModule()

构造。

属性: inline

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 63 行, 第 5 列)

析构函数

~RasterShadowRenderModule

virtual ~RasterShadowRenderModule()

销毁。

属性: virtual

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 68 行, 第 13 列)

公共函数

初始化

virtual void Init(const json &initData) override

初始化函数。设置资源指针、管道对象、根签名和参数集。

参数

名称类型默认
initDataconst json &

属性: virtual

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 73 行, 第 10 列)

执行

virtual void Execute(double deltaTime, cauldron::CommandList *pCmdList) override

从每个投射阴影的光源的角度渲染所有活动的阴影几何体。

参数

名称类型默认
deltaTimedouble
pCmdListcauldron::CommandList *

属性: virtual

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 78 行, 第 10 列)

OnNewContentLoaded

virtual void OnNewContentLoaded(cauldron::ContentBlock *pContentBlock) override

加载新内容时调用的回调,以便我们根据需要创建其他管线和资源。

参数

名称类型默认
pContentBlockcauldron::ContentBlock *

属性: virtual

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 83 行, 第 10 列)

OnContentUnloaded

virtual void OnContentUnloaded(cauldron::ContentBlock *pContentBlock) override

内容卸载时调用的回调。允许我们根据需要进行清理。

参数

名称类型默认
pContentBlockcauldron::ContentBlock *

属性: virtual

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 88 行, 第 10 列)

私有接口

私有函数

GetPipelinePermutationID

uint32_t GetPipelinePermutationID(const cauldron::Surface *pSurface)

参数

名称类型默认
pSurfaceconst cauldron::Surface *

返回: uint32_t

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 96 行, 第 14 列)

AddTexture

int32_t AddTexture(const cauldron::Material *pMaterial, const cauldron::TextureClass textureClass, int32_t &textureSamplerIndex)

参数

名称类型默认
pMaterialconst cauldron::Material *
textureClassconst cauldron::TextureClass
textureSamplerIndexint32_t &

返回: int32_t

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 97 行, 第 14 列)

RemoveTexture

void RemoveTexture(int32_t index)

参数

名称类型默认
indexint32_t

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 98 行, 第 10 列)

CreateShadowMapInfo

void CreateShadowMapInfo(cauldron::LightComponent *pLightComponent, cauldron::ShadowMapResolution resolution)

参数

名称类型默认
pLightComponentcauldron::LightComponent *
resolutioncauldron::ShadowMapResolution

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 100 行, 第 10 列)

DestroyShadowMapInfo

void DestroyShadowMapInfo(cauldron::LightComponent *pLightComponent)

参数

名称类型默认
pLightComponentcauldron::LightComponent *

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 101 行, 第 10 列)

UpdateCascades

void UpdateCascades()

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 103 行, 第 10 列)

UpdateUIState

void UpdateUIState(bool hasDirectional)

参数

名称类型默认
hasDirectionalbool

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 105 行, 第 10 列)

私有成员

constexpr uint32_t s_MaxTextureCount

static constexpr uint32_t s_MaxTextureCount = = 200

属性: static, private

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 109 行, 第 31 列)

constexpr uint32_t s_MaxSamplerCount

static constexpr uint32_t s_MaxSamplerCount = = 20

属性: static, private

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 110 行, 第 31 列)

cauldron::RootSignature * m_pRootSignature

cauldron::RootSignature * m_pRootSignature = = nullptr

属性: private

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 112 行, 第 29 列)

cauldron::ParameterSet * m_pParameterSet

cauldron::ParameterSet * m_pParameterSet = = nullptr

属性: private

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 113 行, 第 29 列)

std::vector<BoundTexture> m_Textures

std::vector<BoundTexture> m_Textures

属性: private

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 120 行, 第 17 列)

std::vector<cauldron::Sampler *> m_Samplers

std::vector<cauldron::Sampler *> m_Samplers

属性: private

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 121 行, 第 17 列)

std::mutex m_CriticalSection

std::mutex m_CriticalSection

属性: private

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 122 行, 第 16 列)

std::vector<ShadowMapInfo> m_ShadowMapInfos

std::vector<ShadowMapInfo> m_ShadowMapInfos

属性: private

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 146 行, 第 23 列)

std::vector<PipelineRenderGroup> m_PipelineRenderGroups

std::vector<PipelineRenderGroup> m_PipelineRenderGroups

属性: private

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 147 行, 第 17 列)

cauldron::UISection * m_UISection

cauldron::UISection * m_UISection = = nullptr

属性: private

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 150 行, 第 44 列)

bool m_CascadeSplitPointsEnabled

bool m_CascadeSplitPointsEnabled = = &#123;false&#125;

属性: private

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 151 行, 第 45 列)

bool m_DirUIShowing

bool m_DirUIShowing = = false

属性: private

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 152 行, 第 45 列)

int m_NumCascades

int m_NumCascades = = 4

属性: private

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 154 行, 第 25 列)

std::vector<float> m_CascadeSplitPoints

std::vector<float> m_CascadeSplitPoints = = &#123;10.0, 20.0, 60.0, 100.0&#125;

属性: private

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 155 行, 第 18 列)

bool m_MoveLightTexelSize

bool m_MoveLightTexelSize = = true

属性: private

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 156 行, 第 25 列)

源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 56 行, 第 1 列)

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