GPUParticleRenderModule
class GPUParticleRenderModule : public cauldron::RenderModule
The GPUParticlesRenderModule is responsible for spawning and simulating all entities with ParticleSpawnerComponents. Actual rendering will be handled by the translucency render module (on which GPUParticles is dependent) so they can be sorted with other translucent instances.
Dependencies: ParallelSort
Inherits from: public cauldron::RenderModule
Public Interface
Constructor:
GPUParticleRenderModule
inline GPUParticleRenderModule()
Construction.
Attributes: inline
Source: framework/rendermodules/gpuparticle/gpuparticlerendermodule.h
(line 57, column 5)
Destructor:
~GPUParticleRenderModule
virtual ~GPUParticleRenderModule()
Destruction.
Attributes: virtual
Source: framework/rendermodules/gpuparticle/gpuparticlerendermodule.h
(line 62, 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:
Name | Type | Default |
---|---|---|
initData | const json & | “ |
Attributes: virtual
Source: framework/rendermodules/gpuparticle/gpuparticlerendermodule.h
(line 67, column 18)
Execute
virtual void Execute(double deltaTime, cauldron::CommandList *pCmdList) override
Performs GPUParticle simulation if enabled.
Parameters:
Name | Type | Default |
---|---|---|
deltaTime | double | “ |
pCmdList | cauldron::CommandList * | “ |
Attributes: virtual
Source: framework/rendermodules/gpuparticle/gpuparticlerendermodule.h
(line 72, column 18)
PreTransCallback
void PreTransCallback(double deltaTime, cauldron::CommandList *pCmdList)
Pre-translucent pass callback to sort particles before rendering in the translucency pass if needed.
Parameters:
Name | Type | Default |
---|---|---|
deltaTime | double | “ |
pCmdList | cauldron::CommandList * | “ |
Source: framework/rendermodules/gpuparticle/gpuparticlerendermodule.h
(line 77, column 10)
Private Interface
Private Functions:
Execute
void Execute(double deltaTime, cauldron::CommandList *pCmdList, cauldron::ParticleSystem *pParticleSystem)
Parameters:
Name | Type | Default |
---|---|---|
deltaTime | double | “ |
pCmdList | cauldron::CommandList * | “ |
pParticleSystem | cauldron::ParticleSystem * | “ |
Source: framework/rendermodules/gpuparticle/gpuparticlerendermodule.h
(line 85, column 10)
Emit
void Emit(cauldron::CommandList *pCmdList, cauldron::ParticleSystem *pParticleSystem)
Parameters:
Name | Type | Default |
---|---|---|
pCmdList | cauldron::CommandList * | “ |
pParticleSystem | cauldron::ParticleSystem * | “ |
Source: framework/rendermodules/gpuparticle/gpuparticlerendermodule.h
(line 86, column 10)
Simulate
void Simulate(cauldron::CommandList *pCmdList, cauldron::ParticleSystem *pParticleSystem)
Parameters:
Name | Type | Default |
---|---|---|
pCmdList | cauldron::CommandList * | “ |
pParticleSystem | cauldron::ParticleSystem * | “ |
Source: framework/rendermodules/gpuparticle/gpuparticlerendermodule.h
(line 87, column 10)
Private Members:
cauldron::ParameterSet * m_pParameters
cauldron::ParameterSet * m_pParameters = = nullptr
Attributes: private
Source: framework/rendermodules/gpuparticle/gpuparticlerendermodule.h
(line 91, column 28)
cauldron::PipelineObject * m_pSimulatePipelineObj
cauldron::PipelineObject * m_pSimulatePipelineObj = = nullptr
Attributes: private
Source: framework/rendermodules/gpuparticle/gpuparticlerendermodule.h
(line 92, column 30)
cauldron::PipelineObject * m_pEmitPipelineObj
cauldron::PipelineObject * m_pEmitPipelineObj = = nullptr
Attributes: private
Source: framework/rendermodules/gpuparticle/gpuparticlerendermodule.h
(line 93, column 30)
cauldron::PipelineObject * m_pResetParticlesPipelineObj
cauldron::PipelineObject * m_pResetParticlesPipelineObj = = nullptr
Attributes: private
Source: framework/rendermodules/gpuparticle/gpuparticlerendermodule.h
(line 94, column 30)
cauldron::PipelineObject * m_pClearAliveCountPipelineObj
cauldron::PipelineObject * m_pClearAliveCountPipelineObj = = nullptr
Attributes: private
Source: framework/rendermodules/gpuparticle/gpuparticlerendermodule.h
(line 95, column 30)
cauldron::RootSignature * m_pRootSignature
cauldron::RootSignature * m_pRootSignature = = nullptr
Attributes: private
Source: framework/rendermodules/gpuparticle/gpuparticlerendermodule.h
(line 96, column 30)
const cauldron::Texture * m_pDepthBuffer
const cauldron::Texture * m_pDepthBuffer = = nullptr
Attributes: private
Source: framework/rendermodules/gpuparticle/gpuparticlerendermodule.h
(line 98, column 29)
std::mutex m_CriticalSection
std::mutex m_CriticalSection
Attributes: private
Source: framework/rendermodules/gpuparticle/gpuparticlerendermodule.h
(line 100, column 16)
float m_ElapsedTime
float m_ElapsedTime = = 0.0f
Attributes: private
Source: framework/rendermodules/gpuparticle/gpuparticlerendermodule.h
(line 102, column 11)
bool m_bResetSystem
bool m_bResetSystem = = true
Attributes: private
Source: framework/rendermodules/gpuparticle/gpuparticlerendermodule.h
(line 103, column 11)
bool m_bPlayAnimations
bool m_bPlayAnimations = = true
Attributes: private
Source: framework/rendermodules/gpuparticle/gpuparticlerendermodule.h
(line 105, column 10)
bool m_bSort
bool m_bSort = = true
Attributes: private
Source: framework/rendermodules/gpuparticle/gpuparticlerendermodule.h
(line 106, column 10)
ParallelSort m_ParallelSort
ParallelSort m_ParallelSort
Attributes: private
Source: framework/rendermodules/gpuparticle/gpuparticlerendermodule.h
(line 108, column 18)
Source: framework/rendermodules/gpuparticle/gpuparticlerendermodule.h
(line 50, column 1)