Class ParticleSystem
Hierarchy
- ThinParticleSystem
- ParticleSystem
Index
Constructors
Properties
Accessors
Methods
Constructors
constructor
-
new ParticleSystem(
name: string,
capacity: number,
sceneOrEngine: Scene | AbstractEngine,
customEffect?: Nullable<Effect>,
isAnimationSheetEnabled?: boolean,
epsilon?: number,
noUpdateQueue?: boolean,
): ParticleSystemInstantiates a particle system. Particles are often small sprites used to simulate hard-to-reproduce phenomena like fire, smoke, water, or abstract visual effects like magic glitter and faery dust.
Parameters
- name: string
The name of the particle system
- capacity: number
The max number of particles alive at the same time
- sceneOrEngine: Scene | AbstractEngine
The scene the particle system belongs to or the engine to use if no scene
- customEffect: Nullable<Effect> = null
a custom effect used to change the way particles are rendered by default
- isAnimationSheetEnabled: boolean = false
Must be true if using a spritesheet to animate the particles texture
- epsilon: number = 0.01
Offset used to render the particles
- noUpdateQueue: boolean = false
If true, the particle system will start with an empty update queue
Returns ParticleSystem
- name: string
Properties
active Sub Systems
The current active Sub-systems, this property is used by the root particle system only.
animations
List of animations used by the particle system.
apply Fog
Gets or sets a boolean indicating that this particle system will allow fog to be rendered on it (false by default)
begin Animation From
Gets or sets the frame to start the animation from when beginAnimationOnStart is true
begin Animation Loop
Gets or sets a boolean indicating if animations must loop when beginAnimationOnStart is true
begin Animation On Start
Gets or sets a boolean indicating that hosted animations (in the system.animations array) must be started when system.start() is called
begin Animation To
Gets or sets the frame to end the animation on when beginAnimationOnStart is true
blend Mode
Blend mode use to render the particle For original blend modes which are exposed from ParticleSystem (OneOne, Standard, Add, Multiply, MultiplyAdd, and Subtract), use ParticleSystem.BLENDMODE_FOO For all other blend modes, use Engine Constants.ALPHA_FOO blend modes
clip Plane
Gets or sets the active clipplane 1
clip Plane2
Gets or sets the active clipplane 2
clip Plane3
Gets or sets the active clipplane 3
clip Plane4
Gets or sets the active clipplane 4
clip Plane5
Gets or sets the active clipplane 5
clip Plane6
Gets or sets the active clipplane 6
color1
Random color of each particle after it has been emitted, between color1 and color2 vectors
color2
Random color of each particle after it has been emitted, between color1 and color2 vectors
color Dead
Color the particle will have at the end of its lifetime
custom Shader
This can help using your own shader to render the particle system. The according effect will be created
default Projection Matrix
Gets or sets a matrix to use to compute projection
default View Matrix
Gets or sets a matrix to use to compute view
dispose On Stop
Specifies whether the particle system will be disposed once it reaches the end of the animation.
do Not Serialize
Specifies if the particle system should be serialized
emit Rate
The maximum number of particles to emit per frame
emitter
The emitter represents the Mesh or position we are attaching the particle system to.
end Sprite Cell ID
If using a spritesheet (isAnimationSheetEnabled) defines the last sprite cell to display
flow Map Strength
The strength of the flow map
force Depth Write
Forces the particle to write their depth information to the depth buffer. This can help preventing other draw calls to override the particles.
gravity
You can use gravity if you want to give an orientation to your particles.
id
The id of the Particle system.
Readonlyis GPU
Indicates that the particle system is CPU based
layer Mask
The layer mask we are rendering the particles through.
limit Velocity Damping
Gets or sets a value indicating the damping to apply if the limit velocity factor is reached
manual Emit Count
If you want to launch only a few particles at once, that can be done, as well.
max Angular Speed
Maximum angular speed of emitting particles (Z-axis rotation for each particle).
max Emit Power
Maximum power of emitting particles.
max Initial Rotation
Gets or sets the maximal initial rotation in radians.
max Life Time
Maximum life time of emitting particles.
max Scale X
Maximum scale of emitting particles on X axis.
max Scale Y
Maximum scale of emitting particles on Y axis.
max Size
Maximum Size of emitting particles.
metadata
Gets or sets an object used to store user defined information for the particle system
min Angular Speed
Minimum angular speed of emitting particles (Z-axis rotation for each particle).
min Emit Power
Minimum power of emitting particles.
min Initial Rotation
Gets or sets the minimal initial rotation in radians.
min Life Time
Minimum life time of emitting particles.
min Scale X
Minimum scale of emitting particles on X axis.
min Scale Y
Minimum scale of emitting particles on Y axis.
min Size
Minimum Size of emitting particles.
name
The friendly name of the Particle system.
noise Strength
Gets or sets the strength to apply to the noise value (default is (10, 10, 10))
on Animation End
Callback triggered when the particle animation is ending.
on Dispose Observable
An event triggered when the system is disposed
on Started Observable
An event triggered when the system is started
on Stopped Observable
An event triggered when the system is stopped
particle Emitter Type
The particle emitter type defines the emitter used by the particle system. It can be for example box, sphere, or cone...
particle Texture
The texture used to render each particle. (this can be a spritesheet)
paused
Gets or sets a boolean indicating that the particle system is paused (no animation will be done).
prevent Auto Start
By default particle system starts as soon as they are created. This prevents the automatic start to happen and let you decide when to start emitting particles.
pre Warm Cycles
Gets or sets a value indicating how many cycles (or frames) must be executed before first rendering (this value has to be set before starting the system). Default is 0
pre Warm Step Offset
Gets or sets a value indicating the time step multiplier to use in pre-warm mode (default is 1)
recycle Particle
"Recycles" one of the particle by copying it back to the "stock" of particles and removing it from the active list. Its lifetime will start back at 0.
rendering Group Id
The rendering group used by the Particle system to chose when to render.
snippet Id
Snippet ID if the particle system was created from the snippet server
sprite Cell Change Speed
If using a spritesheet (isAnimationSheetEnabled) defines the speed of the sprite loop (default is 1 meaning the animation will play once during the entire particle lifetime)
sprite Cell Height
If using a spritesheet (isAnimationSheetEnabled), defines the sprite cell height to use
sprite Cell Loop
If using a spritesheet (isAnimationSheetEnabled), defines wether the sprite animation is looping
sprite Cell Width
If using a spritesheet (isAnimationSheetEnabled), defines the sprite cell width to use
sprite Random Start Cell
This allows the system to random pick the start cell ID between startSpriteCellID and endSpriteCellID
start Delay
Defines the delay in milliseconds before starting the system (0 by default)
start Sprite Cell ID
If using a spritesheet (isAnimationSheetEnabled) defines the first sprite cell to display
sub Emitters
The Sub-emitters templates that will be used to generate the sub particle system to be associated with the system, this property is used by the root particle system only. When a particle is spawned, an array will be chosen at random and all the emitters in that array will be attached to the particle. (Default: [])
texture Mask
An optional mask to filter some colors out of the texture, or filter a part of the alpha channel
translation Pivot
Gets or sets a Vector2 used to move the pivot (by default (0,0))
unique Id
Gets or sets the unique id of the particle system
update Function
This function can be defined to provide custom update for active particles. This function will be called instead of regular update (age, position, color, etc.). Do not forget that this function will be called on every frame so try to keep it simple and fast :)
Readonlyupdate In Animate
Indicates that the update of particles is done in the animate function
update Speed
The overall motion speed (0.01 is default update speed, faster updates = faster animation)
world Offset
Gets or sets a world offset applied to all particles
Static ReadonlyBILLBOARDMODE_ ALL
Billboard mode will apply to all axes
Static ReadonlyBILLBOARDMODE_ STRETCHED
Special billboard mode where the particle will be biilboard to the camera but rotated to align with direction
Static ReadonlyBILLBOARDMODE_ STRETCHED_ LOCAL
Special billboard mode where the particle will be billboard to the camera but only around the axis of the direction of particle emission
Static ReadonlyBILLBOARDMODE_ Y
Billboard mode will only apply to Y axis
StaticBLENDMODE_ ADD
Add current color and particle color multiplied by particle’s alpha
StaticBLENDMODE_ MULTIPLY
Multiply current color with particle color
StaticBLENDMODE_ MULTIPLYADD
Multiply current color with particle color then add current color and particle color multiplied by particle’s alpha
StaticBLENDMODE_ ONEONE
Source color is added to the destination color without alpha affecting the result. Great for additive glow effects (fire, magic, lasers)
StaticBLENDMODE_ STANDARD
Blend current color and particle color using particle’s alpha. Same as Constants.ALPHA_COMBINE, the go-to for transparency. 100% alpha means source, 0% alpha means background. Glass, UI fade, smoke
StaticBLENDMODE_ SUBTRACT
Subtracts source (particle) from destination (current color), leading to darker results
- NOTE: Init as -1 so we can properly map all modes to Engine Const's (otherwise ALPHA_SUBTRACT will conflict with BLENDMODE_MULTIPLY since both use 3)
StaticForce GLSL
Force all the particle systems to compile to glsl even on WebGPU engines. False by default. This is mostly meant for backward compatibility.
Accessors
attractors
-
The list of attractors used to change the direction of the particles in the system. Please note that this is a copy of the internal array. If you want to modify it, please use the addAttractor and removeAttractor methods.
Returns Attractor[]
billboard Mode
-
get billboardMode(): number
Gets or sets the billboard mode to use when isBillboardBased = true. Value can be: ParticleSystem.BILLBOARDMODE_ALL, ParticleSystem.BILLBOARDMODE_Y, ParticleSystem.BILLBOARDMODE_STRETCHED, ParticleSystem.PARTICLES_BILLBOARDMODE_STRETCHED_LOCAL
Returns number
-
set billboardMode(value: number): void
Parameters
- value: number
Returns void
direction1
direction2
flow Map
image Processing Configuration
-
Gets the image processing configuration used either in this material.
Returns Nullable<ImageProcessingConfiguration>
-
Sets the Default image processing configuration used either in the this material.
If sets to null, the scene one is in use.
Parameters
- value: Nullable<ImageProcessingConfiguration>
Returns void
index Buffer
-
Gets the index buffer used by the particle system (or null if no index buffer is used (if _useInstancing=true))
Returns Nullable<DataBuffer>
is Animation Sheet Enabled
-
get isAnimationSheetEnabled(): boolean
Gets or sets whether an animation sprite sheet is enabled or not on the particle system
Returns boolean
-
set isAnimationSheetEnabled(value: boolean): void
Parameters
- value: boolean
Returns void
is Billboard Based
-
get isBillboardBased(): boolean
Gets or sets a boolean indicating if the particles must be rendered as billboard or aligned with the direction
Returns boolean
-
set isBillboardBased(value: boolean): void
Parameters
- value: boolean
Returns void
is Disposed
-
get isDisposed(): boolean
Gets a boolean indicating that the particle system was disposed
Returns boolean
is Local
-
get isLocal(): boolean
Specifies if the particles are updated in emitter local space or world space
Returns boolean
-
set isLocal(value: boolean): void
Specifies if the particles are updated in emitter local space or world space
Parameters
- value: boolean
Returns void
is Node Generated
-
get isNodeGenerated(): boolean
Returns true if the particle system was generated by a node particle system set
Returns boolean
max Emit Box
-
Maximum box point around our emitter. Our emitter is the center of particles source, but if you want your particles to emit from more than one point, then you can tell it to do so. This only works when particleEmitterTyps is a BoxParticleEmitter
Returns Vector3
-
Parameters
- value: Vector3
Returns void
min Emit Box
-
Minimum box point around our emitter. Our emitter is the center of particles source, but if you want your particles to emit from more than one point, then you can tell it to do so. This only works when particleEmitterTyps is a BoxParticleEmitter
Returns Vector3
-
Parameters
- value: Vector3
Returns void
noise Texture
-
Gets or sets a texture used to add random noise to particle positions
Returns Nullable<ProceduralTexture>
-
Gets or sets a texture used to add random noise to particle positions
Parameters
- value: Nullable<ProceduralTexture>
Returns void
on Before Draw Particles Observable
-
Observable that will be called just before the particles are drawn
Returns Observable<Nullable<Effect>>
on Dispose
-
set onDispose(callback: () => void): void
Sets a callback that will be triggered when the system is disposed
Parameters
- callback: () => void
Returns void
particles
-
Gets the current list of active particles
Returns Particle[]
shader Language
-
get shaderLanguage(): ShaderLanguage
Gets the shader language used in this material.
Returns ShaderLanguage
source
-
Gets the NodeParticleSystemSet that this particle system belongs to.
Returns Nullable<NodeParticleSystemSet>
start Direction Function
start Position Function
target Stop Duration
-
get targetStopDuration(): number
The amount of time the particle system is running (depends of the overall update speed).
Returns number
-
set targetStopDuration(value: number): void
The amount of time the particle system is running (depends of the overall update speed).
Parameters
- value: number
Returns void
use Logarithmic Depth
-
get useLogarithmicDepth(): boolean
Gets or sets a boolean enabling the use of logarithmic depth buffers, which is good for wide depth buffers.
Returns boolean
-
set useLogarithmicDepth(value: boolean): void
Parameters
- value: boolean
Returns void
use Ramp Gradients
-
get useRampGradients(): boolean
Gets or sets a boolean indicating that ramp gradients must be used
Returns boolean
-
set useRampGradients(value: boolean): void
Gets or sets a boolean indicating that ramp gradients must be used
Parameters
- value: boolean
Returns void
vertex Buffers
-
Gets the vertex buffers used by the particle system
Returns Immutable<{ [key: string]: VertexBuffer }>
vertex Shader Name
-
get vertexShaderName(): string
Gets the name of the particle vertex shader
Returns string
Methods
add Alpha Remap Gradient
-
Adds a new alpha remap gradient
Parameters
- gradient: number
defines the gradient to use (between 0 and 1)
- min: number
defines the alpha remap minimal range
- max: number
defines the alpha remap maximal range
Returns IParticleSystem
the current particle system
- gradient: number
add Angular Speed Gradient
-
Adds a new angular speed gradient
Parameters
- gradient: number
defines the gradient to use (between 0 and 1)
- factor: number
defines the angular speed to affect to the specified gradient
Optionalfactor2: numberdefines an additional factor used to define a range ([factor, factor2]) with main value to pick the final value from
Returns IParticleSystem
the current particle system
- gradient: number
add Attractor
-
Add an attractor to the particle system. Attractors are used to change the direction of the particles in the system.
Parameters
- attractor: Attractor
The attractor to add to the particle system
Returns void
- attractor: Attractor
add Color Gradient
add Color Remap Gradient
-
Adds a new color remap gradient
Parameters
- gradient: number
defines the gradient to use (between 0 and 1)
- min: number
defines the color remap minimal range
- max: number
defines the color remap maximal range
Returns IParticleSystem
the current particle system
- gradient: number
add Drag Gradient
-
Adds a new drag gradient
Parameters
- gradient: number
defines the gradient to use (between 0 and 1)
- factor: number
defines the drag value to affect to the specified gradient
Optionalfactor2: numberdefines an additional factor used to define a range ([factor, factor2]) with main value to pick the final value from
Returns IParticleSystem
the current particle system
- gradient: number
add Emit Rate Gradient
-
Adds a new emit rate gradient (please note that this will only work if you set the targetStopDuration property)
Parameters
- gradient: number
defines the gradient to use (between 0 and 1)
- factor: number
defines the emit rate value to affect to the specified gradient
Optionalfactor2: numberdefines an additional factor used to define a range ([factor, factor2]) with main value to pick the final value from
Returns this
the current particle system
- gradient: number
add Life Time Gradient
-
Adds a new life time gradient
Parameters
- gradient: number
defines the gradient to use (between 0 and 1)
- factor: number
defines the life time factor to affect to the specified gradient
Optionalfactor2: numberdefines an additional factor used to define a range ([factor, factor2]) with main value to pick the final value from
Returns IParticleSystem
the current particle system
- gradient: number
add Limit Velocity Gradient
-
Adds a new limit velocity gradient
Parameters
- gradient: number
defines the gradient to use (between 0 and 1)
- factor: number
defines the limit velocity value to affect to the specified gradient
Optionalfactor2: numberdefines an additional factor used to define a range ([factor, factor2]) with main value to pick the final value from
Returns IParticleSystem
the current particle system
- gradient: number
add Ramp Gradient
-
Adds a new ramp gradient used to remap particle colors
Parameters
- gradient: number
defines the gradient to use (between 0 and 1)
- color: Color3
defines the color to affect to the specified gradient
Returns ThinParticleSystem
the current particle system
- gradient: number
add Size Gradient
-
Adds a new size gradient
Parameters
- gradient: number
defines the gradient to use (between 0 and 1)
- factor: number
defines the size factor to affect to the specified gradient
Optionalfactor2: numberdefines an additional factor used to define a range ([factor, factor2]) with main value to pick the final value from
Returns IParticleSystem
the current particle system
- gradient: number
add Start Size Gradient
-
Adds a new start size gradient (please note that this will only work if you set the targetStopDuration property)
Parameters
- gradient: number
defines the gradient to use (between 0 and 1)
- factor: number
defines the start size value to affect to the specified gradient
Optionalfactor2: numberdefines an additional factor used to define a range ([factor, factor2]) with main value to pick the final value from
Returns IParticleSystem
the current particle system
- gradient: number
add Velocity Gradient
-
Adds a new velocity gradient
Parameters
- gradient: number
defines the gradient to use (between 0 and 1)
- factor: number
defines the velocity to affect to the specified gradient
Optionalfactor2: numberdefines an additional factor used to define a range ([factor, factor2]) with main value to pick the final value from
Returns IParticleSystem
the current particle system
- gradient: number
animate
-
Animates the particle system for the current frame by emitting new particles and or animating the living ones.
Parameters
- preWarmOnly: boolean = false
will prevent the system from updating the vertex buffer (default is false)
Returns void
- preWarmOnly: boolean = false
can Start
-
Gets or sets a function indicating if the particle system can start.
Returns boolean
true if the particle system can start, false otherwise.
clone
-
Clones the particle system.
Parameters
- name: string
The name of the cloned object
- newEmitter: any
The new emitter to use
- cloneTexture: boolean = false
Also clone the textures if true
Returns ParticleSystem
the cloned particle system
- name: string
create Box Emitter
-
createBoxEmitter(
direction1: Vector3,
direction2: Vector3,
minEmitBox: Vector3,
maxEmitBox: Vector3,
): BoxParticleEmitterCreates a Box Emitter for the particle system. (emits between direction1 and direction2 from within the box defined by minEmitBox and maxEmitBox)
Parameters
- direction1: Vector3
Particles are emitted between the direction1 and direction2 from within the box
- direction2: Vector3
Particles are emitted between the direction1 and direction2 from within the box
- minEmitBox: Vector3
Particles are emitted from the box between minEmitBox and maxEmitBox
- maxEmitBox: Vector3
Particles are emitted from the box between minEmitBox and maxEmitBox
Returns BoxParticleEmitter
the emitter
- direction1: Vector3
create Cone Emitter
-
Creates a Cone Emitter for the particle system (emits from the cone to the particle position)
Parameters
- radius: number = 1
The radius of the cone to emit from
- angle: number = ...
The base angle of the cone
Returns ConeParticleEmitter
the emitter
- radius: number = 1
create Cylinder Emitter
-
createCylinderEmitter(
radius?: number,
height?: number,
radiusRange?: number,
directionRandomizer?: number,
): CylinderParticleEmitterCreates a Cylinder Emitter for the particle system (emits from the cylinder to the particle position)
Parameters
- radius: number = 1
The radius of the emission cylinder
- height: number = 1
The height of the emission cylinder
- radiusRange: number = 1
The range of emission [0-1] 0 Surface only, 1 Entire Radius
- directionRandomizer: number = 0
How much to randomize the particle direction [0-1]
Returns CylinderParticleEmitter
the emitter
- radius: number = 1
create Directed Cone Emitter
-
createDirectedConeEmitter(
radius?: number,
angle?: number,
direction1?: Vector3,
direction2?: Vector3,
): ConeDirectedParticleEmitterCreates a Directed Cone Emitter for the particle system (emits between direction1 and direction2)
Parameters
- radius: number = 1
The radius of the cone to emit from
- angle: number = ...
The base angle of the cone
- direction1: Vector3 = ...
Particles are emitted between the direction1 and direction2 from within the cone
- direction2: Vector3 = ...
Particles are emitted between the direction1 and direction2 from within the cone
Returns ConeDirectedParticleEmitter
the emitter
- radius: number = 1
create Directed Cylinder Emitter
-
createDirectedCylinderEmitter(
radius?: number,
height?: number,
radiusRange?: number,
direction1?: Vector3,
direction2?: Vector3,
): CylinderDirectedParticleEmitterCreates a Directed Cylinder Emitter for the particle system (emits between direction1 and direction2)
Parameters
- radius: number = 1
The radius of the cylinder to emit from
- height: number = 1
The height of the emission cylinder
- radiusRange: number = 1
the range of the emission cylinder [0-1] 0 Surface only, 1 Entire Radius (1 by default)
- direction1: Vector3 = ...
Particles are emitted between the direction1 and direction2 from within the cylinder
- direction2: Vector3 = ...
Particles are emitted between the direction1 and direction2 from within the cylinder
Returns CylinderDirectedParticleEmitter
the emitter
- radius: number = 1
create Directed Sphere Emitter
-
createDirectedSphereEmitter(
radius?: number,
direction1?: Vector3,
direction2?: Vector3,
): SphereDirectedParticleEmitterCreates a Directed Sphere Emitter for the particle system (emits between direction1 and direction2)
Parameters
Returns SphereDirectedParticleEmitter
the emitter
create Hemispheric Emitter
-
Creates a Hemisphere Emitter for the particle system (emits along the hemisphere radius)
Parameters
- radius: number = 1
The radius of the hemisphere to emit from
- radiusRange: number = 1
The range of the hemisphere to emit from [0-1] 0 Surface Only, 1 Entire Radius
Returns HemisphericParticleEmitter
the emitter
- radius: number = 1
create Mesh Emitter
-
Creates a Mesh Emitter for the particle system (emits from the surface of a mesh)
Parameters
- mesh: Nullable<AbstractMesh> = null
The mesh to use as the emitter source
Returns MeshParticleEmitter
the emitter
- mesh: Nullable<AbstractMesh> = null
create Point Emitter
-
Creates a Point Emitter for the particle system (emits directly from the emitter position)
Parameters
Returns PointParticleEmitter
the emitter
create Sphere Emitter
-
Creates a Sphere Emitter for the particle system (emits along the sphere radius)
Parameters
- radius: number = 1
The radius of the sphere to emit from
- radiusRange: number = 1
The range of the sphere to emit from [0-1] 0 Surface Only, 1 Entire Radius
Returns SphereParticleEmitter
the emitter
- radius: number = 1
dispose
-
dispose(
disposeTexture?: boolean,
disposeAttachedSubEmitters?: boolean,
disposeEndSubEmitters?: boolean,
): voidDisposes the particle system and free the associated resources
Parameters
- disposeTexture: boolean = true
defines if the particle texture must be disposed as well (true by default)
- disposeAttachedSubEmitters: boolean = false
defines if the attached sub-emitters must be disposed as well (false by default)
- disposeEndSubEmitters: boolean = false
defines if the end type sub-emitters must be disposed as well (false by default)
Returns void
- disposeTexture: boolean = true
fill Defines
-
Fill the defines array according to the current settings of the particle system
Parameters
- defines: string[]
Array to be updated
- blendMode: number
blend mode to take into account when updating the array
- fillImageProcessing: boolean = true
fills the image processing defines
Returns void
- defines: string[]
fill Uniforms Attributes And Sampler Names
-
fillUniformsAttributesAndSamplerNames(
uniforms: string[],
attributes: string[],
samplers: string[],
): voidFill the uniforms, attributes and samplers arrays according to the current settings of the particle system
Parameters
- uniforms: string[]
Uniforms array to fill
- attributes: string[]
Attributes array to fill
- samplers: string[]
Samplers array to fill
Returns void
- uniforms: string[]
force Refresh Gradients
-
Force the system to rebuild all gradients that need to be resync
Returns void
get Active Count
-
Gets the number of particles active at the same time.
Returns number
The number of active particles.
get Alpha Remap Gradients
-
Gets the current list of alpha remap gradients. You must use addAlphaRemapGradient and removeAlphaRemapGradient to update this list
Returns Nullable<FactorGradient[]>
the list of alpha remap gradients
get Angular Speed Gradients
-
Gets the current list of angular speed gradients. You must use addAngularSpeedGradient and removeAngularSpeedGradient to update this list
Returns Nullable<FactorGradient[]>
the list of angular speed gradients
get Capacity
-
Gets the maximum number of particles active at the same time.
Returns number
The max number of active particles.
get Class Name
-
Returns the string "ParticleSystem"
Returns string
a string containing the class name
get Color Gradients
-
Gets the current list of color gradients. You must use addColorGradient and removeColorGradient to update this list
Returns Nullable<ColorGradient[]>
the list of color gradients
get Color Remap Gradients
-
Gets the current list of color remap gradients. You must use addColorRemapGradient and removeColorRemapGradient to update this list
Returns Nullable<FactorGradient[]>
the list of color remap gradients
get Custom Effect
get Drag Gradients
-
Gets the current list of drag gradients. You must use addDragGradient and removeDragGradient to update this list
Returns Nullable<FactorGradient[]>
the list of drag gradients
get Emit Rate Gradients
-
Gets the current list of emit rate gradients. You must use addEmitRateGradient and removeEmitRateGradient to update this list
Returns Nullable<FactorGradient[]>
the list of emit rate gradients
get Life Time Gradients
-
Gets the current list of life time gradients. You must use addLifeTimeGradient and removeLifeTimeGradient to update this list
Returns Nullable<FactorGradient[]>
the list of life time gradients
get Limit Velocity Gradients
-
Gets the current list of limit velocity gradients. You must use addLimitVelocityGradient and removeLimitVelocityGradient to update this list
Returns Nullable<FactorGradient[]>
the list of limit velocity gradients
get Ramp Gradients
-
Gets the current list of ramp gradients. You must use addRampGradient and removeRampGradient to update this list
Returns Nullable<Color3Gradient[]>
the list of ramp gradients
get Scene
get Size Gradients
-
Gets the current list of size gradients. You must use addSizeGradient and removeSizeGradient to update this list
Returns Nullable<FactorGradient[]>
the list of size gradients
get Start Size Gradients
-
Gets the current list of start size gradients. You must use addStartSizeGradient and removeStartSizeGradient to update this list
Returns Nullable<FactorGradient[]>
the list of start size gradients
get Velocity Gradients
-
Gets the current list of velocity gradients. You must use addVelocityGradient and removeVelocityGradient to update this list
Returns Nullable<FactorGradient[]>
the list of velocity gradients
is Alive
-
Gets whether there are still active particles in the system.
Returns boolean
True if it is alive, otherwise false.
is Ready
-
Is this system ready to be used/rendered
Returns boolean
true if the system is ready
is Started
-
Gets if the system has been started. (Note: this will still be true after stop is called)
Returns boolean
True if it has been started, otherwise false.
is Stopping
-
Gets a boolean indicating that the system is stopping
Returns boolean
true if the system is currently stopping
rebuild
-
Rebuilds the particle system.
Returns void
remove Alpha Remap Gradient
-
Remove a specific alpha remap gradient
Parameters
- gradient: number
defines the gradient to remove
Returns IParticleSystem
the current particle system
- gradient: number
remove Angular Speed Gradient
-
Remove a specific angular speed gradient
Parameters
- gradient: number
defines the gradient to remove
Returns IParticleSystem
the current particle system
- gradient: number
remove Attractor
-
Removes an attractor from the particle system. Attractors are used to change the direction of the particles in the system.
Parameters
- attractor: Attractor
The attractor to remove from the particle system
Returns void
- attractor: Attractor
remove Color Gradient
-
Remove a specific color gradient
Parameters
- gradient: number
defines the gradient to remove
Returns IParticleSystem
this particle system
- gradient: number
remove Color Remap Gradient
-
Remove a specific color remap gradient
Parameters
- gradient: number
defines the gradient to remove
Returns IParticleSystem
the current particle system
- gradient: number
remove Drag Gradient
-
Remove a specific drag gradient
Parameters
- gradient: number
defines the gradient to remove
Returns IParticleSystem
the current particle system
- gradient: number
remove Emit Rate Gradient
-
Remove a specific emit rate gradient
Parameters
- gradient: number
defines the gradient to remove
Returns this
the current particle system
- gradient: number
remove Life Time Gradient
-
Remove a specific life time gradient
Parameters
- gradient: number
defines the gradient to remove
Returns IParticleSystem
the current particle system
- gradient: number
remove Limit Velocity Gradient
-
Remove a specific limit velocity gradient
Parameters
- gradient: number
defines the gradient to remove
Returns IParticleSystem
the current particle system
- gradient: number
remove Ramp Gradient
-
Remove a specific ramp gradient
Parameters
- gradient: number
defines the gradient to remove
Returns ThinParticleSystem
the current particle system
- gradient: number
remove Size Gradient
-
Remove a specific size gradient
Parameters
- gradient: number
defines the gradient to remove
Returns IParticleSystem
the current particle system
- gradient: number
remove Start Size Gradient
-
Remove a specific start size gradient
Parameters
- gradient: number
defines the gradient to remove
Returns IParticleSystem
the current particle system
- gradient: number
remove Velocity Gradient
-
Remove a specific velocity gradient
Parameters
- gradient: number
defines the gradient to remove
Returns IParticleSystem
the current particle system
- gradient: number
render
-
Renders the particle system in its current state.
Returns number
the current number of particles
reset
-
Remove all active particles
Returns void
reset Draw Cache
-
Resets the draw wrappers cache
Returns void
serialize
-
Serializes the particle system to a JSON object
Parameters
- serializeTexture: boolean = false
defines if the texture must be serialized as well
Returns any
the JSON object
- serializeTexture: boolean = false
set Custom Effect
start
-
Starts the particle system and begins to emit
Parameters
- delay: number = ...
defines the delay in milliseconds before starting the system (this.startDelay by default)
Returns void
- delay: number = ...
stop
-
Stops the particle system.
Parameters
- stopSubEmitters: boolean = true
if true it will stop the current system and all created sub-Systems if false it will stop the current root system only, this param is used by the root particle system only. The default value is true.
Returns void
- stopSubEmitters: boolean = true
StaticParse
-
Parse(
parsedParticleSystem: any,
sceneOrEngine: Scene | AbstractEngine,
rootUrl: string,
doNotStart?: boolean,
capacity?: number,
): ParticleSystemParses a JSON object to create a particle system.
Parameters
- parsedParticleSystem: any
The JSON object to parse
- sceneOrEngine: Scene | AbstractEngine
The scene or the engine to create the particle system in
- rootUrl: string
The root url to use to load external dependencies like texture
- doNotStart: boolean = false
Ignore the preventAutoStart attribute and does not start
Optionalcapacity: numberdefines the system capacity (if null or undefined the sotred capacity will be used)
Returns ParticleSystem
the Parsed particle system
- parsedParticleSystem: any
This represents a particle system in Babylon. Particles are often small sprites used to simulate hard-to-reproduce phenomena like fire, smoke, water, or abstract visual effects like magic glitter and faery dust. Particles can take different shapes while emitted like box, sphere, cone or you can write your custom function.
Example