A non-instanced renderer that builds the particle vertex buffer on the CPU every frame.
More...
|
| virtual void | getParticleBuffer (IMeshBuffer *buffer) |
| | Prepares the mesh buffer for CPU updates.
|
|
virtual void | updateParticleBuffer (IMeshBuffer *buffer, CParticle *particles, int num) |
| | Rebuilds the entire vertex buffer on the CPU based on current particle positions.
|
| virtual CObjectSerializable * | createSerializable () |
| | Creates a serializable object for property editing or saving.
|
| virtual void | loadSerializable (CObjectSerializable *object) |
| | Loads properties from a serializable object.
|
|
EBillboardType | getBillboardType () |
| | Gets current billboarding mode.
|
|
void | setBillboardType (EBillboardType type) |
| | Sets current billboarding mode.
|
| Public Member Functions inherited from Skylicht::Particle::IRenderer |
|
| IRenderer (ERenderer type) |
|
ERenderer | getType () |
| | Gets renderer type enum.
|
|
CMaterial * | getMaterial () |
| | Gets active material (custom or default).
|
|
CMaterial * | getDefaultMaterial () |
| | Gets default internal material.
|
|
CMaterial * | getCustomMaterial () |
| | Gets custom material if set.
|
|
void | setTexturePath (const char *path) |
| | Loads and sets the main texture.
|
|
void | setTexture (int slot, ITexture *texture) |
| | Sets texture for a specific slot.
|
|
void | setEmission (bool b) |
| | Enables/disables emission.
|
|
bool | isEmission () |
| | Checks emission status.
|
|
bool | useInstancing () |
| | Checks instancing support.
|
|
void | setEmissionIntensity (float b) |
| | Sets emission intensity.
|
|
float | getEmissionIntensity () |
| | Gets emission intensity.
|
|
bool | needUpdateMesh () |
| | Checks if internal mesh requires rebuilding.
|
|
const wchar_t * | getName () |
| | Gets display name.
|
|
void | setAtlas (u32 x, u32 y) |
| | Configures texture atlas dimensions.
|
|
u32 | getAtlasX () |
| | Gets atlas column count.
|
|
u32 | getAtlasY () |
| | Gets atlas row count.
|
|
u32 | getTotalFrames () |
| | Gets total frames in atlas.
|
|
float | getFrameWidth () |
| | Gets UV width of a single frame.
|
|
float | getFrameHeight () |
| | Gets UV height of a single frame.
|
|
|
EBillboardType | m_billboardType |
|
ETransparentType | m_transparentType |
| Protected Attributes inherited from Skylicht::Particle::IRenderer |
|
ERenderer | m_type |
| | Type of the renderer.
|
|
CMaterial * | m_material |
| | Default material for the particles.
|
|
CMaterial * | m_customMaterial |
| | Optional custom material.
|
|
bool | m_useCustomMaterial |
| | Whether custom material is enabled.
|
|
bool | m_useInstancing |
| | Whether this renderer uses hardware instancing.
|
|
bool | m_emission |
| | Whether the particles have emission.
|
|
bool | m_ztest |
| | Depth test flag.
|
|
float | m_emissionIntensity |
| | Emission intensity multiplier.
|
|
std::string | m_texturePath |
| | Primary texture path.
|
|
u32 | m_atlasNx |
| | Atlas horizontal frame count.
|
|
u32 | m_atlasNy |
| | Atlas vertical frame count.
|
|
std::string | m_materialPath |
| | Path to custom material file.
|
|
bool | m_needUpdateMesh |
| | Internal: flag to trigger mesh buffer updates.
|
A non-instanced renderer that builds the particle vertex buffer on the CPU every frame.
Used for compatibility or when instancing is not supported.