This documents an old version of bs::framework. Click here to see the latest release.
Particles

Description

Emission, updated and rendering of particles in the particle system.

Classes

struct  ColorDistribution
 Specifies a color as a distribution, which can include a constant color, random color range or a color gradient. More...
 
struct  TDistribution< T >
 Specifies a value as a distribution, which can include a constant value, random range or a curve. More...
 
struct  ParticleEmissionMode
 Controls how are particle positions on a shape chosen. More...
 
class  ParticleEmitterShape
 Base class from all emitter shapes. More...
 
struct  PARTICLE_CONE_SHAPE_DESC
 Information describing a ParticleEmitterConeShape. More...
 
class  ParticleEmitterConeShape
 Particle emitter shape that emits particles from a cone. More...
 
struct  PARTICLE_SPHERE_SHAPE_DESC
 Information describing a ParticleEmitterSphereShape. More...
 
class  ParticleEmitterSphereShape
 Particle emitter shape that emits particles from a sphere. More...
 
struct  PARTICLE_HEMISPHERE_SHAPE_DESC
 Information describing a ParticleEmitterHemisphereShape. More...
 
class  ParticleEmitterHemisphereShape
 Particle emitter shape that emits particles from a hemisphere. More...
 
struct  PARTICLE_BOX_SHAPE_DESC
 Information describing a ParticleEmitterBoxShape. More...
 
class  ParticleEmitterBoxShape
 Particle emitter shape that emits particles from an axis aligned box. More...
 
struct  PARTICLE_LINE_SHAPE_DESC
 Information describing a ParticleEmitterLineShape. More...
 
class  ParticleEmitterLineShape
 Particle emitter shape that emits particles from a line segment. More...
 
struct  PARTICLE_CIRCLE_SHAPE_DESC
 Information describing a ParticleEmitterCircleShape. More...
 
class  ParticleEmitterCircleShape
 Particle emitter shape that emits particles from a circle. More...
 
struct  PARTICLE_RECT_SHAPE_DESC
 Information describing a ParticleEmitterRectShape. More...
 
class  ParticleEmitterRectShape
 Particle emitter shape that emits particles from the surface of a rectangle. More...
 
struct  PARTICLE_STATIC_MESH_SHAPE_DESC
 Information describing a ParticleEmitterStaticMeshShape. More...
 
class  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. More...
 
class  MeshEmissionHelper
 Contains common functionality for particle mesh emitters. More...
 
class  ParticleEmitterStaticMeshShape
 Particle emitter shape that emits particles from a surface of a static (non-animated) mesh. More...
 
struct  PARTICLE_SKINNED_MESH_SHAPE_DESC
 Information describing a ParticleEmitterSkinnedMeshShape. More...
 
class  ParticleEmitterSkinnedMeshShape
 Particle emitter shape that emits particles from a surface of a skinned (animated) mesh. More...
 
struct  ParticleBurst
 Specifies a burst of particles that occurs at a certain time point. More...
 
class  ParticleEmitter
 Handles spawning of new particles using the specified parameters and shape. More...
 
struct  ParticleEvolverProperties
 Properties that describe a specific type of ParticleEvolver. More...
 
class  ParticleEvolver
 Updates properties of all active particles in a particle system in some way. More...
 
struct  PARTICLE_TEXTURE_ANIMATION_DESC
 Structure used for initializing a ParticleTextureAnimation object. More...
 
class  ParticleTextureAnimation
 Provides functionality for particle texture animation. More...
 
struct  PARTICLE_ORBIT_DESC
 Structure used for initializing a ParticleOrbit object. More...
 
class  ParticleOrbit
 Moves particles so that their sprites orbit their center according to the provided offset and rotation values. More...
 
struct  PARTICLE_VELOCITY_DESC
 Structure used for initializing a ParticleVelocity object. More...
 
class  ParticleVelocity
 Applies linear velocity to the particles. More...
 
struct  PARTICLE_FORCE_DESC
 Structure used for initializing a ParticleForce object. More...
 
class  ParticleForce
 Applies an arbitrary force to the particles. More...
 
struct  PARTICLE_GRAVITY_DESC
 Structure used for initializing a ParticleGravity object. More...
 
class  ParticleGravity
 Applies gravity to the particles. More...
 
struct  PARTICLE_COLOR_DESC
 Structure used for initializing a ParticleColor object. More...
 
class  ParticleColor
 Changes the color of the particles over the particle lifetime. More...
 
struct  PARTICLE_SIZE_DESC
 Structure used for initializing a ParticleSize object. More...
 
class  ParticleSize
 Changes the size of the particles over the particle lifetime. More...
 
struct  PARTICLE_ROTATION_DESC
 Structure used for initializing a ParticleRotation object. More...
 
class  ParticleRotation
 Rotates the particles over the particle lifetime. More...
 
struct  PARTICLE_COLLISIONS_DESC
 Structure used for initializing a ParticleCollisions object. More...
 
class  ParticleCollisions
 Particle evolver that allows particles to collide with the world. More...
 
struct  ParticleDepthCollisionSettings
 Controls depth buffer collisions for GPU simulated particles. More...
 
struct  ParticleVectorFieldSettings
 Settings used for controlling a vector field in a GPU simulated particle system. More...
 
struct  ParticleSystemSettings
 Generic settings used for controlling a ParticleSystem. More...
 
struct  ParticleGpuSimulationSettings
 Settings used for controlling particle system GPU simulation. More...
 
class  ParticleSystem
 Controls spawning, evolution and rendering of particles. More...
 
struct  VECTOR_FIELD_DESC
 Descriptor structure used for initialization of a VectorField. More...
 
class  VectorField
 Represents a three dimensional field of vectors. More...
 

Typedefs

using FloatDistribution = TDistribution< float >
 
using Vector3Distribution = TDistribution< Vector3 >
 
using Vector2Distribution = TDistribution< Vector2 >
 

Enumerations

enum  ParticleEmissionModeType { Random, Loop, PingPong, Spread }
 Types of emission modes. More...
 
enum  ParticleEmitterConeType { Base, Volume }
 Determines the emission type for the cone particle emitter shape. More...
 
enum  ParticleEmitterBoxType { Volume, Surface, Edge }
 Determines the emission type for the cone particle emitter shape. More...
 
enum  ParticleEmitterMeshType { Vertex, Edge, Triangle }
 Determines the emission type for the mesh particle emitter shape. More...
 
enum  ParticleCollisionMode { Plane, World }
 Types of collision modes that ParticleCollisions evolver can operate in. More...
 
enum  ParticleOrientation { ViewPlane, ViewPosition, Plane }
 Possible orientations when rendering billboard particles. More...
 
enum  ParticleSimulationSpace { Local, World }
 Space in which to spawn/transform particles. More...
 
enum  ParticleSortMode { None, Distance, OldToYoung, YoungToOld }
 Determines how to sort particles before rendering. More...
 
enum  ParticleRenderMode { Billboard, Mesh }
 Determines how are particles represented on the screen. More...
 

Enumeration Type Documentation

◆ ParticleCollisionMode

enum ParticleCollisionMode
strong

Types of collision modes that ParticleCollisions evolver can operate in.

Enumerator
Plane 

Particles will collide with a user-provided set of planes.

World 

Particles will collide with physics colliders in the scene.

◆ ParticleEmissionModeType

Types of emission modes.

Enumerator
Random 

Position will be picked randomly on a shape.

Loop 

Positions will loop around the shape in a predictable fashion.

PingPong 

Similar to Loop, except the order will be reversed when one loop iteration finishes.

Spread 

All particles spawned on the shape at some instant (usually a frame) will be spread around the shape equally.

◆ ParticleEmitterBoxType

Determines the emission type for the cone particle emitter shape.

Enumerator
Volume 

Particles will be emitted from the entire volume.

Surface 

Particles will be emitted only from box surface.

Edge 

Particles will be emitted only from box edge.

◆ ParticleEmitterConeType

Determines the emission type for the cone particle emitter shape.

Enumerator
Base 

Emit particles only from the cone base.

Volume 

Emit particles from the entire cone volume.

◆ ParticleEmitterMeshType

Determines the emission type for the mesh particle emitter shape.

Enumerator
Vertex 

Particles will be emitted from mesh vertices.

Edge 

Particles will be emitted from mesh edges.

Triangle 

Particles will be emitted from mesh triangles.

◆ ParticleOrientation

enum ParticleOrientation
strong

Possible orientations when rendering billboard particles.

Enumerator
ViewPlane 

Orient towards view (camera) plane.

ViewPosition 

Orient towards view (camera) position.

Plane 

Orient with a user-provided axis.

◆ ParticleRenderMode

enum ParticleRenderMode
strong

Determines how are particles represented on the screen.

Enumerator
Billboard 

Particle is represented using a 2D quad.

Mesh 

Particle is represented using a 3D mesh.

◆ ParticleSimulationSpace

Space in which to spawn/transform particles.

Enumerator
Local 

Particles will always remain local to their transform parent.

This means if the transform parent moves so will all the particles.

World 

Particles will be placed in world space.

This means they will spawn at the location of the transform parent, but are no longer affected by its transform after spawn (e.g. smoke rising from a moving train).

◆ ParticleSortMode

enum ParticleSortMode
strong

Determines how to sort particles before rendering.

Enumerator
None 

Do not sort the particles.

Distance 

Sort by distance from the camera, furthest to nearest.

OldToYoung 

Sort by age, oldest to youngest.

YoungToOld 

Sort by age, youngest to oldest.