![]() |
XII Release 0.1.0
|
Renderer-facing packet for GPU particle systems. More...
#include <ParticleSystem.h>
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 () |
Renderer-facing packet for GPU particle systems.