Skip to content

RasterShadowRenderModule

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

The raster shadow render module is responsible for rendering all rasterized shadow geometry.

Inherits from: public cauldron::RenderModule, public cauldron::ContentListener

Public Interface

Constructor:

RasterShadowRenderModule

inline RasterShadowRenderModule()

Construction.

Attributes: inline

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 63, column 5)

Destructor:

~RasterShadowRenderModule

virtual ~RasterShadowRenderModule()

Destruction.

Attributes: virtual

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 68, column 13)

Public Functions:

Init

virtual void Init(const json &initData) override

Initialization function. Sets up resource pointers, pipeline objects, root signatures, and parameter sets.

Parameters:

NameTypeDefault
initDataconst json &

Attributes: virtual

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 73, column 10)

Execute

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

Renders all active shadow geometry in the Scene from each shadow-casting light’s point of view.

Parameters:

NameTypeDefault
deltaTimedouble
pCmdListcauldron::CommandList *

Attributes: virtual

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 78, column 10)

OnNewContentLoaded

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

Callback invoked when new content is loaded so we can create additional pipelines and resources if needed.

Parameters:

NameTypeDefault
pContentBlockcauldron::ContentBlock *

Attributes: virtual

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 83, column 10)

OnContentUnloaded

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

Callback invoked when content is unloaded. Permits us to clean things up if needed.

Parameters:

NameTypeDefault
pContentBlockcauldron::ContentBlock *

Attributes: virtual

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 88, column 10)

Private Interface

Private Functions:

GetPipelinePermutationID

uint32_t GetPipelinePermutationID(const cauldron::Surface *pSurface)

Parameters:

NameTypeDefault
pSurfaceconst cauldron::Surface *

Returns: uint32_t

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 96, column 14)

AddTexture

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

Parameters:

NameTypeDefault
pMaterialconst cauldron::Material *
textureClassconst cauldron::TextureClass
textureSamplerIndexint32_t &

Returns: int32_t

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 97, column 14)

RemoveTexture

void RemoveTexture(int32_t index)

Parameters:

NameTypeDefault
indexint32_t

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 98, column 10)

CreateShadowMapInfo

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

Parameters:

NameTypeDefault
pLightComponentcauldron::LightComponent *
resolutioncauldron::ShadowMapResolution

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 100, column 10)

DestroyShadowMapInfo

void DestroyShadowMapInfo(cauldron::LightComponent *pLightComponent)

Parameters:

NameTypeDefault
pLightComponentcauldron::LightComponent *

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 101, column 10)

UpdateCascades

void UpdateCascades()

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 103, column 10)

UpdateUIState

void UpdateUIState(bool hasDirectional)

Parameters:

NameTypeDefault
hasDirectionalbool

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 105, column 10)

Private Members:

constexpr uint32_t s_MaxTextureCount

static constexpr uint32_t s_MaxTextureCount = = 200

Attributes: static, private

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 109, column 31)

constexpr uint32_t s_MaxSamplerCount

static constexpr uint32_t s_MaxSamplerCount = = 20

Attributes: static, private

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 110, column 31)

cauldron::RootSignature * m_pRootSignature

cauldron::RootSignature * m_pRootSignature = = nullptr

Attributes: private

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 112, column 29)

cauldron::ParameterSet * m_pParameterSet

cauldron::ParameterSet * m_pParameterSet = = nullptr

Attributes: private

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 113, column 29)

std::vector<BoundTexture> m_Textures

std::vector<BoundTexture> m_Textures

Attributes: private

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 120, column 17)

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

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

Attributes: private

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 121, column 17)

std::mutex m_CriticalSection

std::mutex m_CriticalSection

Attributes: private

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 122, column 16)

std::vector<ShadowMapInfo> m_ShadowMapInfos

std::vector<ShadowMapInfo> m_ShadowMapInfos

Attributes: private

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 146, column 23)

std::vector<PipelineRenderGroup> m_PipelineRenderGroups

std::vector<PipelineRenderGroup> m_PipelineRenderGroups

Attributes: private

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 147, column 17)

cauldron::UISection * m_UISection

cauldron::UISection * m_UISection = = nullptr

Attributes: private

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 150, column 44)

bool m_CascadeSplitPointsEnabled

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

Attributes: private

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 151, column 45)

bool m_DirUIShowing

bool m_DirUIShowing = = false

Attributes: private

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 152, column 45)

int m_NumCascades

int m_NumCascades = = 4

Attributes: private

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 154, column 25)

std::vector<float> m_CascadeSplitPoints

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

Attributes: private

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 155, column 18)

bool m_MoveLightTexelSize

bool m_MoveLightTexelSize = = true

Attributes: private

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 156, column 25)

Source: framework/rendermodules/rastershadow/rastershadowrendermodule.h (line 56, column 1)