GBufferRenderModule
class GBufferRenderModule : public cauldron::RenderModule, public cauldron::ContentListenerThe GBuffer render module is responsible for rendering the gbuffer for all loaded scene entities. If initialized to do so, will also output motion vectors for the frame.
Inherits from: public cauldron::RenderModule, public cauldron::ContentListener
Public Interface
Constructor:
GBufferRenderModule
inline GBufferRenderModule()Construction.
Attributes: inline
Source: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 62, column 5)
Destructor:
~GBufferRenderModule
virtual ~GBufferRenderModule()Destruction.
Attributes: virtual
Source: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 67, column 13)
Public Functions:
Init
virtual void Init(const json &initData) overrideInitialization function. Sets up target pointers and other global data.
Parameters:
| Name | Type | Default |
|---|---|---|
initData | const json & | “ |
Attributes: virtual
Source: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 72, column 10)
Execute
virtual void Execute(double deltaTime, cauldron::CommandList *pCmdList) overrideRenders all active geometric entities in the Scene.
Parameters:
| Name | Type | Default |
|---|---|---|
deltaTime | double | “ |
pCmdList | cauldron::CommandList * | “ |
Attributes: virtual
Source: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 77, column 10)
OnNewContentLoaded
virtual void OnNewContentLoaded(cauldron::ContentBlock *pContentBlock) overrideCallback invoked when new content is loaded so we can create additional pipelines if needed.
Parameters:
| Name | Type | Default |
|---|---|---|
pContentBlock | cauldron::ContentBlock * | “ |
Attributes: virtual
Source: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 82, column 10)
OnContentUnloaded
virtual void OnContentUnloaded(cauldron::ContentBlock *pContentBlock) overrideCallback invoked when content is unloaded. Permits us to clean things up if needed.
Parameters:
| Name | Type | Default |
|---|---|---|
pContentBlock | cauldron::ContentBlock * | “ |
Attributes: virtual
Source: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 87, column 10)
Private Interface
Private Functions:
GetPipelinePermutationID
uint32_t GetPipelinePermutationID(const cauldron::Surface *pSurface)Parameters:
| Name | Type | Default |
|---|---|---|
pSurface | const cauldron::Surface * | “ |
Returns: uint32_t
Source: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 95, column 14)
AddTexture
int32_t AddTexture(const cauldron::Material *pMaterial, const cauldron::TextureClass textureClass, int32_t &textureSamplerIndex)Parameters:
| Name | Type | Default |
|---|---|---|
pMaterial | const cauldron::Material * | “ |
textureClass | const cauldron::TextureClass | “ |
textureSamplerIndex | int32_t & | “ |
Returns: int32_t
Source: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 96, column 14)
RemoveTexture
void RemoveTexture(int32_t index)Parameters:
| Name | Type | Default |
|---|---|---|
index | int32_t | “ |
Source: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 97, column 10)
Private Members:
bool m_VariableShading
bool m_VariableShading = = falseAttributes: private
Source: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 101, column 37)
bool m_GenerateMotionVectors
bool m_GenerateMotionVectors = = falseAttributes: private
Source: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 102, column 37)
cauldron::RootSignature * m_pRootSignature
cauldron::RootSignature * m_pRootSignature = = nullptrAttributes: private
Source: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 103, column 36)
cauldron::ParameterSet * m_pParameterSet
cauldron::ParameterSet * m_pParameterSet = = nullptrAttributes: private
Source: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 104, column 36)
const cauldron::Texture * m_pAlbedoRenderTarget
const cauldron::Texture * m_pAlbedoRenderTarget = = nullptrAttributes: private
Source: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 105, column 36)
const cauldron::Texture * m_pNormalRenderTarget
const cauldron::Texture * m_pNormalRenderTarget = = nullptrAttributes: private
Source: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 106, column 36)
const cauldron::Texture * m_pAoRoughnessMetallicTarget
const cauldron::Texture * m_pAoRoughnessMetallicTarget = = nullptrAttributes: private
Source: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 107, column 36)
const cauldron::Texture * m_pDepthTarget
const cauldron::Texture * m_pDepthTarget = = nullptrAttributes: private
Source: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 108, column 36)
const cauldron::Texture * m_pMotionVector
const cauldron::Texture * m_pMotionVector = = nullptrAttributes: private
Source: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 109, column 36)
std::vector<const cauldron::RasterView *> m_RasterViews
std::vector<const cauldron::RasterView *> m_RasterViews = = {}Attributes: private
Source: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 110, column 17)
std::vector<BoundTexture> m_Textures
std::vector<BoundTexture> m_TexturesAttributes: private
Source: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 117, column 23)
std::vector<cauldron::Sampler *> m_Samplers
std::vector<cauldron::Sampler *> m_SamplersAttributes: private
Source: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 118, column 17)
std::mutex m_CriticalSection
std::mutex m_CriticalSectionAttributes: private
Source: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 119, column 16)
std::vector<PipelineRenderGroup> m_PipelineRenderGroups
std::vector<PipelineRenderGroup> m_PipelineRenderGroupsAttributes: private
Source: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 136, column 28)
Source: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 55, column 1)