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初始化函数。设置资源指针、管道对象、根签名和参数集。
参数
| 名称 | 类型 | 默认 |
|---|---|---|
initData | const json & | “ |
属性: virtual
源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 73 行, 第 10 列)
执行
virtual void Execute(double deltaTime, cauldron::CommandList *pCmdList) override从每个投射阴影的光源的角度渲染所有活动的阴影几何体。
参数
| 名称 | 类型 | 默认 |
|---|---|---|
deltaTime | double | “ |
pCmdList | cauldron::CommandList * | “ |
属性: virtual
源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 78 行, 第 10 列)
OnNewContentLoaded
virtual void OnNewContentLoaded(cauldron::ContentBlock *pContentBlock) override加载新内容时调用的回调,以便我们根据需要创建其他管线和资源。
参数
| 名称 | 类型 | 默认 |
|---|---|---|
pContentBlock | cauldron::ContentBlock * | “ |
属性: virtual
源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 83 行, 第 10 列)
OnContentUnloaded
virtual void OnContentUnloaded(cauldron::ContentBlock *pContentBlock) override内容卸载时调用的回调。允许我们根据需要进行清理。
参数
| 名称 | 类型 | 默认 |
|---|---|---|
pContentBlock | cauldron::ContentBlock * | “ |
属性: virtual
源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 88 行, 第 10 列)
私有接口
私有函数
GetPipelinePermutationID
uint32_t GetPipelinePermutationID(const cauldron::Surface *pSurface)参数
| 名称 | 类型 | 默认 |
|---|---|---|
pSurface | const 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)参数
| 名称 | 类型 | 默认 |
|---|---|---|
pMaterial | const cauldron::Material * | “ |
textureClass | const cauldron::TextureClass | “ |
textureSamplerIndex | int32_t & | “ |
返回: int32_t
源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 97 行, 第 14 列)
RemoveTexture
void RemoveTexture(int32_t index)参数
| 名称 | 类型 | 默认 |
|---|---|---|
index | int32_t | “ |
源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 98 行, 第 10 列)
CreateShadowMapInfo
void CreateShadowMapInfo(cauldron::LightComponent *pLightComponent, cauldron::ShadowMapResolution resolution)参数
| 名称 | 类型 | 默认 |
|---|---|---|
pLightComponent | cauldron::LightComponent * | “ |
resolution | cauldron::ShadowMapResolution | “ |
源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 100 行, 第 10 列)
DestroyShadowMapInfo
void DestroyShadowMapInfo(cauldron::LightComponent *pLightComponent)参数
| 名称 | 类型 | 默认 |
|---|---|---|
pLightComponent | cauldron::LightComponent * | “ |
源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 101 行, 第 10 列)
UpdateCascades
void UpdateCascades()源文件: framework/rendermodules/rastershadow/rastershadowrendermodule.h (第 103 行, 第 10 列)
UpdateUIState
void UpdateUIState(bool hasDirectional)参数
| 名称 | 类型 | 默认 |
|---|---|---|
hasDirectional | bool | “ |
源文件: 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 = = {false}属性: 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 = = {10.0, 20.0, 60.0, 100.0}属性: 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 列)