XII Release 0.1.0
Loading...
Searching...
No Matches
xiiParticleSimulationPassData Struct Reference

Render graph pass data used by xiiParticleSystemRuntime::AddSimulationPasses(). More...

#include <ParticleSystem.h>

Public Attributes

xiiRenderGraphBufferHandle m_hParticleStateRead
 Buffer handle for reading the current particle state. This is bound as a read-only resource in simulation passes and contains the state of all particles at the start of the pass. The exact layout of this buffer is defined by the particle graph and should be compatible with the shader code used for simulation.
xiiRenderGraphBufferHandle m_hParticleStateWrite
 Buffer handle for writing the next particle state. This is bound as a write-only resource in simulation passes and contains the updated state of all particles at the end of the pass. The exact layout of this buffer is defined by the particle graph and should be compatible with the shader code used for simulation.
xiiRenderGraphBufferHandle m_hAliveIndexBuffer
 Buffer handle for the alive index buffer, which contains the indices of currently alive particles. This is bound as a read-write resource in simulation passes and is updated by the GPU based on particle births and deaths during the pass.
xiiRenderGraphBufferHandle m_hDeadIndexBuffer
 Buffer handle for the dead index buffer, which contains the indices of currently dead particles. This is bound as a read-write resource in simulation passes and is updated by the GPU based on particle births and deaths during the pass.
xiiRenderGraphBufferHandle m_hCountersBuffer
 Buffer handle for the counters buffer, which contains various counters related to the particle system (e.g., alive count, dead count, spawn request count, event count). This is bound as a read-write resource in simulation passes and is updated by the GPU based on particle behavior during the pass.
xiiRenderGraphBufferHandle m_hEventBuffer
 Buffer handle for the event buffer, which contains events emitted by particles during simulation passes. This is bound as a read-write resource in simulation passes when event support is enabled, and is updated by the GPU based on particle behavior during the pass.
xiiRenderGraphBufferHandle m_hSortKeyBuffer
 Buffer handle for the sort key buffer, which contains keys used for sorting particles (e.g., by depth or by ID). This is bound as a read-write resource in simulation passes when sorting is enabled, and is updated by the GPU based on particle behavior during the pass.
xiiRenderGraphBufferHandle m_hNeighborPairBuffer
 Buffer handle for the neighbor pair buffer, which contains pairs of neighboring particles when GPU-based neighbor searching is enabled. This is bound as a read-write resource in simulation passes when neighbor searching is enabled, and is updated by the GPU based on particle positions during the pass.
xiiRenderGraphBufferHandle m_hDrawIndirectBuffer
 Buffer handle for the draw indirect buffer, which contains the arguments for indirect draw calls. This is bound as a read-write resource in simulation passes when indirect drawing is enabled, and is updated by the GPU based on the alive count and other factors during the pass.
xiiRenderGraphBufferHandle m_hDispatchIndirectBuffer
 Buffer handle for the dispatch indirect buffer, which contains the arguments for indirect dispatch calls (e.g., for culling or sorting). This is bound as a read-write resource in simulation passes when async compute or GPU culling is enabled, and is updated by the GPU based on the alive count and other factors during the pass.
xiiParticleGraphResourceHandle m_hGraph
 Handle to the particle graph resource that defines the behavior of the simulation pass. This is used by the node executor to determine which nodes to execute and how to set up shader parameters for the pass.
xiiUInt32 m_uiParticleCapacity = 0U
 The maximum number of particles that can be processed in this simulation pass, which is used for determining thread group counts and for validating buffer sizes. This should be set based on the descriptor of the particle system and the enabled features, and should be consistent with the actual capacity of the buffers bound to the pass.
xiiUInt32 m_uiDispatchGroups = 0U
 The number of thread groups to dispatch for this simulation pass, which is calculated based on the particle capacity and the thread group size defined in the particle graph. This should be set to ensure that all particles are processed in the pass, and may be adjusted based on performance considerations or specific requirements of the simulation logic.

Detailed Description

Render graph pass data used by xiiParticleSystemRuntime::AddSimulationPasses().


The documentation for this struct was generated from the following file:
  • /home/runner/work/XII/XII/Source/Engine/GraphicsCore/Particles/ParticleSystem.h