XII Release 0.1.0
Loading...
Searching...
No Matches
xiiParticleRenderData Class Reference

Renderer-facing packet for GPU particle systems. More...

#include <ParticleSystem.h>

Inheritance diagram for xiiParticleRenderData:
[legend]

Public Attributes

xiiParticleSystemDescriptor m_Descriptor
 The descriptor for the particle system, which contains all the necessary information about the particle graph, simulation space, features, and other parameters needed for rendering. This is filled by the xiiParticleSystemComponent when submitting render data, and is used by the renderer to set up the appropriate resources and shader parameters for rendering the particles.
xiiUInt32 m_uiUniqueID = 0U
 A unique identifier for this render data instance, which can be used for various purposes such as sorting, batching, or debugging. The exact semantics of this ID (e.g., how it's generated and whether it needs to be unique across frames) are defined by the renderer and may depend on the enabled features of the particle system.
xiiSharedPtr< xiiGALBuffer > m_pParticleStateBuffer
 A buffer containing the current state of all particles in the system, which is updated by the GPU during simulation passes and read by the renderer for rendering. The exact layout of this buffer is defined by the particle graph and should be compatible with the shader code used for rendering.
xiiSharedPtr< xiiGALBuffer > m_pAliveIndexBuffer
 A buffer containing the indices of currently alive particles, which is updated by the GPU during simulation passes and read by the renderer for rendering. This allows for efficient rendering of only the active particles without needing to process the entire state buffer.
xiiSharedPtr< xiiGALBuffer > m_pCountersBuffer
 A buffer containing various counters related to the particle system (e.g., alive count, dead count, spawn request count, event count), which is updated by the GPU during simulation passes and can be read by the renderer for rendering or debugging purposes.
xiiSharedPtr< xiiGALBuffer > m_pDrawIndirectBuffer
 A buffer containing the arguments for indirect draw calls, which is updated by the GPU during simulation passes (e.g., based on the alive count) and read by the renderer for rendering. This allows for efficient rendering of a variable number of particles without needing to read back counts to the CPU.
xiiParticleSystemRuntimeHandle m_hRuntime
 Stable subsystem handle for the runtime that owns the simulation resources.
Public Attributes inherited from xiiRenderData
xiiTransform m_GlobalTransform = xiiTransform::MakeIdentity()
xiiBoundingBoxSphere m_GlobalBounds = xiiBoundingBoxSphere::MakeZero()
xiiGameObjectHandle m_hOwnerObject
xiiComponentHandle m_hOwnerComponent
xiiUInt64 m_uiSortingKey = 0

Additional Inherited Members

Public Member Functions inherited from xiiReflectedClass
virtual const xiiRTTI * GetDynamicRTTI () const
bool IsInstanceOf (const xiiRTTI *pType) const
 Returns whether the type of this instance is of the given type or derived from it.
template<typename T>
XII_ALWAYS_INLINE bool IsInstanceOf () const
 Returns whether the type of this instance is of the given type or derived from it.
Static Public Member Functions inherited from xiiNoBase
static const xiiRTTI * GetStaticRTTI ()

Detailed Description

Renderer-facing packet for GPU particle systems.


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