Particles
Emission, updates and rendering of particles in the particle system.
Classes
-
ParticleSystem— Controls spawning, evolution and rendering of particles. -
ParticleEmitterShape— Base class from all emitter shapes. -
ParticleEmitterConeShape— Particle emitter shape that emits particles from a cone. -
ParticleEmitterSphereShape— Particle emitter shape that emits particles from a sphere. -
ParticleEmitterHemisphereShape— Particle emitter shape that emits particles from a hemisphere. -
ParticleEmitterBoxShape— Particle emitter shape that emits particles from an axis aligned box. -
ParticleEmitterLineShape— Particle emitter shape that emits particles from a line segment. -
ParticleEmitterCircleShape— Particle emitter shape that emits particles from a circle. -
ParticleEmitterRectShape— Particle emitter shape that emits particles from the surface of a rectangle. -
ParticleEmitterStaticMeshShape— Particle emitter shape that emits particles from a surface of a static (non-animated) mesh. -
ParticleEmitterSkinnedMeshShape— Particle emitter shape that emits particles from a surface of a skinned (animated) mesh. -
ParticleEmitter— Handles spawning of new particles using the specified parameters and shape. -
ParticleEvolver— Updates properties of all active particles in a particle system in some way. -
ParticleTextureAnimation— Provides functionality for particle texture animation. -
ParticleOrbit— Moves particles so that their sprites orbit their center according to the provided offset and rotation values. -
ParticleVelocity— Applies linear velocity to the particles. -
ParticleForce— Applies an arbitrary force to the particles. -
ParticleGravity— Applies gravity to the particles. -
ParticleColor— Changes the color of the particles over the particle lifetime. -
ParticleSize— Changes the size of the particles over the particle lifetime. -
ParticleRotation— Rotates the particles over the particle lifetime. -
ParticleCollisions— Particle evolver that allows particles to collide with the world. -
VectorField— Represents a three dimensional field of vectors.
Structs
-
ParticleDepthCollisionSettings— Controls depth buffer collisions for GPU simulated particles. -
ParticleVectorFieldSettings— Settings used for controlling a vector field in a GPU simulated particle system. -
ParticleSystemSettings— Generic settings used for controlling a ParticleSystem. -
ParticleGpuSimulationSettings— Settings used for controlling particle system GPU simulation. -
ParticleEmissionMode— Controls how are particle positions on a shape chosen. -
ParticleConeShapeSettings— Information describing a ParticleEmitterConeShape. -
ParticleSphereShapeSettings— Information describing a ParticleEmitterSphereShape. -
ParticleHemisphereShapeSettings— Information describing a ParticleEmitterHemisphereShape. -
ParticleBoxShapeSettings— Information describing a ParticleEmitterBoxShape. -
ParticleLineShapeSettings— Information describing a ParticleEmitterLineShape. -
ParticleCircleShapeSettings— Information describing a ParticleEmitterCircleShape. -
ParticleRectangleShapeSettings— Information describing a ParticleEmitterRectShape. -
ParticleStaticMeshShapeSettings— Information describing a ParticleEmitterStaticMeshShape. -
ParticleSkinnedMeshShapeSettings— Information describing a ParticleEmitterSkinnedMeshShape. -
ParticleBurst— Specifies a burst of particles that occurs at a certain time point. -
ParticleEvolverProperties— Properties that describe a specific type of ParticleEvolver. -
ParticleTextureAnimationSettings— Structure used for initializing a ParticleTextureAnimation object. -
ParticleOrbitSettings— Structure used for initializing a ParticleOrbit object. -
ParticleVelocitySettings— Structure used for initializing a ParticleVelocity object. -
ParticleForceSettings— Structure used for initializing a ParticleForce object. -
ParticleGravitySettings— Structure used for initializing a ParticleGravity object. -
ParticleColorSettings— Structure used for initializing a ParticleColor object. -
ParticleSizeSettings— Structure used for initializing a ParticleSize object. -
ParticleRotationSettings— Structure used for initializing a ParticleRotation object. -
ParticleCollisionSettings— Structure used for initializing a ParticleCollisions object. -
VECTOR_FIELD_DESC— Descriptor structure used for initialization of a VectorField.
Enums
-
ParticleOrientation— Possible orientations when rendering billboard particles. -
ParticleSimulationSpace— Space in which to spawn/transform particles. -
ParticleSortMode— Determines how to sort particles before rendering. -
ParticleRenderMode— Determines how are particles represented on the screen. -
ParticleEmissionModeType— Types of emission modes. -
ParticleEmitterConeType— Determines the emission type for the cone particle emitter shape. -
ParticleEmitterBoxType— Determines the emission type for the cone particle emitter shape. -
ParticleEmitterMeshType— Determines the emission type for the mesh particle emitter shape. -
ParticleCollisionMode— Types of collision modes that ParticleCollisions evolver can operate in.
Internal
Symbols intended for engine-internal use. Not part of the public API.
Classes
-
MeshWeightedTriangles— Calculates and stores per-triangle weights that can be used for easily picking a random triangle on a mesh, ensuring larger triangles are picked more likely. -
MeshEmissionHelper— Contains common functionality for particle mesh emitters. -
ParticleModule— Module that in some way modified or effects a ParticleSystem. -
TParticleSystemGetters— CRTP getter interface providing shared read access for particle system data to both ParticleSystem and render::ParticleSystemProxy. -
ParticleScene— Keeps track of all active ParticleSystems in a particular scene and performs per-frame updates. -
TVectorField— Common functionality for both the main and render thread variants of VectorField. -
render::VectorField— Render thread version of a VectorField. -
FGAImporter— Imports vector fields from Fluid Grid ASCII (.fga) files.
Structs
-
TColorDistribution— Specifies a color as a distribution, which can include a constant color, random color range or a color gradient. -
TDistribution— Specifies a value as a distribution, which can include a constant value, random range or a curve. -
MeshWeightedTriangles::TriangleWeight— Contains the cumulative, normalized weight of the triangle and its vertex indices. -
ParticleSystemState— Contains particle system state that varies from frame to frame. -
ParticleSystemSettingsBase— Common base for both main and render thread variants of ParticleSystemSettings. -
TParticleSystemSettings— Templated common base for both main and render thread variants of ParticleSystemSettings. -
ParticleVectorFieldSettingsBase— Common base for both main and render thread variants of ParticleVectorFieldSettings. -
TParticleVectorFieldSettings— Templated common base for both main and render thread variants of ParticleVectorFieldSettings. -
render::ParticleVectorFieldSettings— Render thread counterpart of ParticleVectorFieldSettings. -
ParticleGpuSimulationSettingsBase— Common base for both main and render thread variants of ParticleGpuSimulationSettings. -
TParticleGpuSimulationSettings— Templated common base for both main and render thread variants of ParticleGpuSimulationSettings. -
render::ParticleSystemSettings— Render thread counterpart of ParticleSystemSettings. -
render::ParticleGpuSimulationSettings— Render thread counterpart of ParticleVectorFieldSettings. -
TParticleSystemData— Shared particle system property data used by both main and render thread variants. -
ecs::ParticleSystem— ECS fragment storing particle system configuration data (settings, gpu simulation settings, layer, emitters, evolvers). -
ecs::ParticleSimulation— ECS fragment storing particle simulation runtime state. -
ecs::ParticleSystemId— ECS fragment storing the persistent render object ID for a particle system. -
ecs::ParticleSystemDirty— Tag indicating a ParticleSystem needs to sync all of its properties to its render proxy. -
ecs::ParticleSystemTransformDirty— Tag indicating a ParticleSystem needs to sync transform to its render proxy. -
ParticleRenderData— Contains data resulting from a single frame of CPU particle simulation of a single particle system, used by all rendering modes. -
ParticleBillboardRenderData— Contains data used for rendering particles as billboards. -
ParticleMeshRenderData— Contains data used for rendering particles as meshes. -
GpuParticleVertex— Contains information about a single particle about to be inserted into the GPU simulation. -
GpuParticle— Extension of GpuParticle that contains data not required by the injection vertex buffer. -
ParticleGPUSimulationData— Contains inputs to the GPU particle simulation as provided by the particle system manager. -
EvaluatedParticleData— Contains simulation data resulting from all particle systems, for a single frame.
Enums
-
PropertyDistributionType— Determines type of distribution used by distribution properties. -
ecs::ParticleSimulationState— Determines current state of the particle system simulation.
Free functions
CreateParticleSystem
ParticleSystem &CreateParticleSystem(Registry ®istry, Entity entity, const SPtr<RendererScene> &rendererScene, const Transform &transform = Transform::kIdentity)
Creates all ParticleSystem data fragments, a world transform, and allocates a renderer ID.
Entity is ready for rendering after this call. Returns the ParticleSystem data fragment.
DestroyParticleSystem
void DestroyParticleSystem(Registry ®istry, Entity entity)
Removes all ParticleSystem fragments.
Cleanup (ID deallocation, dirty tags) is handled by the associated RendererScene when it is notified the fragment has been removed.