IParticleSystem

Interface representing a particle system in Babylon.js. This groups the common functionalities that needs to be implemented in order to create a particle system. A particle system represents a way to manage particles from their emission to their animation and rendering.

Hierarchy

  • IParticleSystem

Implemented by

Index

Properties

Methods

Properties

animations

animations: Animation[]

List of animations used by the particle system.

billboardMode

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

blendMode

blendMode: number

Blend mode use to render the particle, it can be either ParticleSystem.BLENDMODE_ONEONE, ParticleSystem.BLENDMODE_STANDARD or ParticleSystem.BLENDMODE_ADD.

color1

color1: Color4

Random color of each particle after it has been emitted, between color1 and color2 vectors.

color2

color2: Color4

Random color of each particle after it has been emitted, between color1 and color2 vectors.

colorDead

colorDead: Color4

Color the particle will have at the end of its lifetime.

emitRate

emitRate: number

The maximum number of particles to emit per frame until we reach the activeParticleCount value

emitter

The emitter represents the Mesh or position we are attaching the particle system to.

endSpriteCellID

endSpriteCellID: number

If using a spritesheet (isAnimationSheetEnabled) defines the last sprite cell to display

gravity

gravity: Vector3

You can use gravity if you want to give an orientation to your particles.

id

id: string

The id of the Particle system.

isAnimationSheetEnabled

isAnimationSheetEnabled: boolean

Gets or sets a boolean indicating if a spritesheet is used to animate the particles texture

isBillboardBased

isBillboardBased: boolean

Gets or sets a boolean indicating if the particles must be rendered as billboard or aligned with the direction

layerMask

layerMask: number

The layer mask we are rendering the particles through.

limitVelocityDamping

limitVelocityDamping: number

Gets or sets a value indicating the damping to apply if the limit velocity factor is reached

maxAngularSpeed

maxAngularSpeed: number

Maximum angular speed of emitting particles (Z-axis rotation for each particle).

maxEmitPower

maxEmitPower: number

Maximum power of emitting particles.

maxInitialRotation

maxInitialRotation: number

Gets or sets the maximal initial rotation in radians.

maxLifeTime

maxLifeTime: number

Maximum life time of emitting particles.

maxScaleX

maxScaleX: number

Maximum scale of emitting particles on X axis.

maxScaleY

maxScaleY: number

Maximum scale of emitting particles on Y axis.

maxSize

maxSize: number

Maximum Size of emitting particles.

minAngularSpeed

minAngularSpeed: number

Minimum angular speed of emitting particles (Z-axis rotation for each particle).

minEmitPower

minEmitPower: number

Minimum power of emitting particles.

minInitialRotation

minInitialRotation: number

Gets or sets the minimal initial rotation in radians.

minLifeTime

minLifeTime: number

Minimum life time of emitting particles.

minScaleX

minScaleX: number

Minimum scale of emitting particles on X axis.

minScaleY

minScaleY: number

Minimum scale of emitting particles on Y axis.

minSize

minSize: number

Minimum Size of emitting particles.

name

name: string

The name of the Particle system.

noiseStrength

noiseStrength: Vector3

Gets or sets the strength to apply to the noise value (default is (10, 10, 10))

noiseTexture

noiseTexture: Nullable<BaseTexture>

Gets or sets a texture used to add random noise to particle positions

particleEmitterType

particleEmitterType: Nullable<IParticleEmitterType>

The particle emitter type defines the emitter used by the particle system. It can be for example box, sphere, or cone...

particleTexture

particleTexture: Nullable<Texture>

The texture used to render each particle. (this can be a spritesheet)

preWarmCycles

preWarmCycles: number

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

preWarmStepOffset

preWarmStepOffset: number

Gets or sets a value indicating the time step multiplier to use in pre-warm mode (default is 1)

renderingGroupId

renderingGroupId: number

The rendering group used by the Particle system to chose when to render.

spriteCellChangeSpeed

spriteCellChangeSpeed: number

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)

spriteCellHeight

spriteCellHeight: number

If using a spritesheet (isAnimationSheetEnabled), defines the sprite cell height to use

spriteCellWidth

spriteCellWidth: number

If using a spritesheet (isAnimationSheetEnabled), defines the sprite cell width to use

spriteRandomStartCell

spriteRandomStartCell: boolean

This allows the system to random pick the start cell ID between startSpriteCellID and endSpriteCellID

startDelay

startDelay: number

Defines the delay in milliseconds before starting the system (0 by default)

startSpriteCellID

startSpriteCellID: number

If using a spritesheet (isAnimationSheetEnabled) defines the first sprite cell to display

targetStopDuration

targetStopDuration: number

The amount of time the particle system is running (depends of the overall update speed).

translationPivot

translationPivot: Vector2

Gets or sets a Vector2 used to move the pivot (by default (0,0))

updateSpeed

updateSpeed: number

The overall motion speed (0.01 is default update speed, faster updates = faster animation)

useRampGradients

useRampGradients: boolean

Gets or sets a boolean indicating that ramp gradients must be used

see

http://doc.babylonjs.com/babylon101/particles#ramp-gradients

Methods

addAlphaRemapGradient

  • addAlphaRemapGradient(gradient: number, min: number, max: number): IParticleSystem
  • 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

addAngularSpeedGradient

  • addAngularSpeedGradient(gradient: number, factor: number, factor2?: number): IParticleSystem
  • 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

    • Optional factor2: number

      defines 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

addColorGradient

  • Adds a new color gradient

    Parameters

    • gradient: number

      defines the gradient to use (between 0 and 1)

    • color1: Color4

      defines the color to affect to the specified gradient

    • Optional color2: Color4

      defines an additional color used to define a range ([color, color2]) with main color to pick the final color from

    Returns IParticleSystem

    the current particle system

addColorRemapGradient

  • addColorRemapGradient(gradient: number, min: number, max: number): IParticleSystem
  • 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

addDragGradient

  • addDragGradient(gradient: number, factor: number, factor2?: number): IParticleSystem
  • Adds a new drag gradient

    Parameters

    • gradient: number

      defines the gradient to use (between 0 and 1)

    • factor: number

      defines the drag to affect to the specified gradient

    • Optional factor2: number

      defines 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

addEmitRateGradient

  • addEmitRateGradient(gradient: number, factor: number, factor2?: number): IParticleSystem
  • 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 to affect to the specified gradient

    • Optional factor2: number

      defines 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

addLimitVelocityGradient

  • addLimitVelocityGradient(gradient: number, factor: number, factor2?: number): IParticleSystem
  • Adds a new limit velocity gradient

    Parameters

    • gradient: number

      defines the gradient to use (between 0 and 1)

    • factor: number

      defines the limit velocity to affect to the specified gradient

    • Optional factor2: number

      defines 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

addRampGradient

  • 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 IParticleSystem

    the current particle system

addSizeGradient

  • addSizeGradient(gradient: number, factor: number, factor2?: number): IParticleSystem
  • 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

    • Optional factor2: number

      defines 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

addStartSizeGradient

  • addStartSizeGradient(gradient: number, factor: number, factor2?: number): IParticleSystem
  • 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 to affect to the specified gradient

    • Optional factor2: number

      defines 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

addVelocityGradient

  • addVelocityGradient(gradient: number, factor: number, factor2?: number): IParticleSystem
  • 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

    • Optional factor2: number

      defines 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

animate

  • animate(): void
  • Animates the particle system for this frame.

    Returns void

clone

  • Clones the particle system.

    Parameters

    • name: string

      The name of the cloned object

    • newEmitter: any

      The new emitter to use

    Returns Nullable<IParticleSystem>

    the cloned particle system

createBoxEmitter

  • Creates a Box Emitter for the particle system. (emits between direction1 and direction2 from withing 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

createConeEmitter

  • Creates a Cone Emitter for the particle system (emits from the cone to the particle position)

    Parameters

    • radius: number

      The radius of the cone to emit from

    • angle: number

      The base angle of the cone

    Returns ConeParticleEmitter

    the emitter

createCylinderEmitter

  • createCylinderEmitter(radius: number, height: number, radiusRange: number, directionRandomizer: number): CylinderParticleEmitter
  • Creates a Cylinder Emitter for the particle system (emits from the cylinder to the particle position)

    Parameters

    • radius: number

      The radius of the emission cylinder

    • height: number

      The height of the emission cylinder

    • radiusRange: number

      The range of emission [0-1] 0 Surface only, 1 Entire Radius

    • directionRandomizer: number

      How much to randomize the particle direction [0-1]

    Returns CylinderParticleEmitter

    the emitter

createDirectedCylinderEmitter

  • Creates a Directed Cylinder Emitter for the particle system (emits between direction1 and direction2)

    Parameters

    • radius: number

      The radius of the cylinder to emit from

    • height: number

      The height of the emission cylinder

    • radiusRange: number

      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 SphereDirectedParticleEmitter

    the emitter

createDirectedSphereEmitter

  • Creates a Directed Sphere Emitter for the particle system (emits between direction1 and direction2)

    Parameters

    • radius: number

      The radius of the sphere to emit from

    • direction1: Vector3

      Particles are emitted between the direction1 and direction2 from within the sphere

    • direction2: Vector3

      Particles are emitted between the direction1 and direction2 from within the sphere

    Returns SphereDirectedParticleEmitter

    the emitter

createHemisphericEmitter

  • Creates a Hemisphere Emitter for the particle system (emits along the hemisphere radius)

    Parameters

    • radius: number

      The radius of the hemisphere to emit from

    • radiusRange: number

      The range of the hemisphere to emit from [0-1] 0 Surface Only, 1 Entire Radius

    Returns HemisphericParticleEmitter

    the emitter

createPointEmitter

  • Creates a Point Emitter for the particle system (emits directly from the emitter position)

    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

    Returns PointParticleEmitter

    the emitter

createSphereEmitter

  • Creates a Sphere Emitter for the particle system (emits along the sphere radius)

    Parameters

    • radius: number

      The radius of the sphere to emit from

    • radiusRange: number

      The range of the sphere to emit from [0-1] 0 Surface Only, 1 Entire Radius

    Returns SphereParticleEmitter

    the emitter

dispose

  • dispose(disposeTexture?: boolean): void
  • Dispose the particle system and frees its associated resources.

    Parameters

    • Optional disposeTexture: boolean

      defines if the particule texture must be disposed as well (true by default)

    Returns void

getAlphaRemapGradients

  • Gets the current list of alpha remap gradients. You must use addAlphaRemapGradient and removeAlphaRemapGradient to udpate this list

    Returns Nullable<Array<FactorGradient>>

    the list of alpha remap gradients

getAngularSpeedGradients

  • Gets the current list of angular speed gradients. You must use addAngularSpeedGradient and removeAngularSpeedGradient to udpate this list

    Returns Nullable<Array<FactorGradient>>

    the list of angular speed gradients

getCapacity

  • getCapacity(): number
  • Gets the maximum number of particles active at the same time.

    Returns number

    The max number of active particles.

getColorGradients

  • Gets the current list of color gradients. You must use addColorGradient and removeColorGradient to udpate this list

    Returns Nullable<Array<ColorGradient>>

    the list of color gradients

  • Gets the current list of color gradients. You must use addColorGradient and removeColorGradient to udpate this list

    Returns Nullable<Array<ColorGradient>>

    the list of color gradients

getColorRemapGradients

  • Gets the current list of color remap gradients. You must use addColorRemapGradient and removeColorRemapGradient to udpate this list

    Returns Nullable<Array<FactorGradient>>

    the list of color remap gradients

getDragGradients

  • Gets the current list of drag gradients. You must use addDragGradient and removeDragGradient to udpate this list

    Returns Nullable<Array<FactorGradient>>

    the list of drag gradients

getEmitRateGradients

  • Gets the current list of emit rate gradients. You must use addEmitRateGradient and removeEmitRateGradient to udpate this list

    Returns Nullable<Array<FactorGradient>>

    the list of emit rate gradients

getLimitVelocityGradients

  • Gets the current list of limit velocity gradients. You must use addLimitVelocityGradient and removeLimitVelocityGradient to udpate this list

    Returns Nullable<Array<FactorGradient>>

    the list of limit velocity gradients

getRampGradients

  • Gets the current list of ramp gradients. You must use addRampGradient and removeRampGradient to udpate this list

    Returns Nullable<Array<Color3Gradient>>

    the list of ramp gradients

getScene

  • Get hosting scene

    Returns Scene

    the scene

getSizeGradients

  • Gets the current list of size gradients. You must use addSizeGradient and removeSizeGradient to udpate this list

    Returns Nullable<Array<FactorGradient>>

    the list of size gradients

getStartSizeGradients

  • Gets the current list of start size gradients. You must use addStartSizeGradient and removeStartSizeGradient to udpate this list

    Returns Nullable<Array<FactorGradient>>

    the list of start size gradients

getVelocityGradients

  • Gets the current list of velocity gradients. You must use addVelocityGradient and removeVelocityGradient to udpate this list

    Returns Nullable<Array<FactorGradient>>

    the list of velocity gradients

isReady

  • isReady(): boolean
  • Is this system ready to be used/rendered

    Returns boolean

    true if the system is ready

isStarted

  • isStarted(): boolean
  • 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.

rebuild

  • rebuild(): void
  • Rebuild the particle system

    Returns void

removeAngularSpeedGradient

  • Remove a specific angular speed gradient

    Parameters

    • gradient: number

      defines the gradient to remove

    Returns IParticleSystem

    the current particle system

removeColorGradient

  • Remove a specific color gradient

    Parameters

    • gradient: number

      defines the gradient to remove

    Returns IParticleSystem

    the current particle system

removeDragGradient

  • Remove a specific drag gradient

    Parameters

    • gradient: number

      defines the gradient to remove

    Returns IParticleSystem

    the current particle system

removeEmitRateGradient

  • Remove a specific emit rate gradient

    Parameters

    • gradient: number

      defines the gradient to remove

    Returns IParticleSystem

    the current particle system

removeLimitVelocityGradient

  • Remove a specific limit velocity gradient

    Parameters

    • gradient: number

      defines the gradient to remove

    Returns IParticleSystem

    the current particle system

removeSizeGradient

  • Remove a specific size gradient

    Parameters

    • gradient: number

      defines the gradient to remove

    Returns IParticleSystem

    the current particle system

removeStartSizeGradient

  • Remove a specific start size gradient

    Parameters

    • gradient: number

      defines the gradient to remove

    Returns IParticleSystem

    the current particle system

removeVelocityGradient

  • Remove a specific velocity gradient

    Parameters

    • gradient: number

      defines the gradient to remove

    Returns IParticleSystem

    the current particle system

render

  • render(): number
  • Renders the particle system in its current state.

    Returns number

    the current number of particles

reset

  • reset(): void
  • Remove all active particles

    Returns void

serialize

  • serialize(): any
  • Serializes the particle system to a JSON object.

    Returns any

    the JSON object

start

  • start(delay?: number): void
  • Starts the particle system and begins to emit

    Parameters

    • Optional delay: number

      defines the delay in milliseconds before starting the system (0 by default)

    Returns void

stop

  • stop(): void
  • Stops the particle system.

    Returns void

Generated using TypeDoc