Class BaseParticleSystem
Hierarchy (View Summary)
- BaseParticleSystem
Implements
- IClipPlanesHolder
Index
Constructors
Properties
Accessors
Methods
Constructors
constructor
-
Instantiates 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
Returns BaseParticleSystem
- name: string
Properties
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
dispose On Stop
Specifies whether the particle system will be disposed once it reaches the end of the animation.
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
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.
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.
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.
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)
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)
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
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 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
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)
Accessors
_ is Animation Sheet Enabled
-
set _isAnimationSheetEnabled(value: boolean): void
Parameters
- value: boolean
Returns void
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
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
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 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>
-
Parameters
- value: Nullable<ProceduralTexture>
Returns void
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
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
Methods
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 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
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
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 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 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 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
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 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
This represents the base class for 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