3D particle emitter.
    public class Particles : GeometryInstance

3D particle node used to create a variety of particle systems and effects. Particles features an emitter that generates some number of particles at a given rate.

Use the process_material property to add a ParticlesMaterial to configure particle appearance and behavior. Alternatively, you can add a ShaderMaterial which will be applied to all particles.

Inheritance Chain

Static Fields

    public const Int32 MaxDrawPasses = 4


    public Particles()


    public int Amount { get; set; }

Number of particles to emit.

    public DrawOrderEnum DrawOrder { get; set; }

Particle draw order. Uses DRAW_ORDER_* values. Default value: DRAW_ORDER_INDEX.

    public Mesh DrawPass1 { get; set; }

Mesh that is drawn for the first draw pass.

    public Mesh DrawPass2 { get; set; }

Mesh that is drawn for the second draw pass.

    public Mesh DrawPass3 { get; set; }

Mesh that is drawn for the third draw pass.

    public Mesh DrawPass4 { get; set; }

Mesh that is drawn for the fourth draw pass.

    public int DrawPasses { get; set; }

The number of draw passes when rendering particles.

    public bool Emitting { get; set; }

If true, particles are being emitted. Default value: true.

    public float Explosiveness { get; set; }

Time ratio between each emission. If 0 particles are emitted continuously. If 1 all particles are emitted simultaneously. Default value: 0.

    public int FixedFps { get; set; }

    public bool FractDelta { get; set; }

    public float Lifetime { get; set; }

Amount of time each particle will exist. Default value: 1.

    public bool LocalCoords { get; set; }

If true, particles use the parent node’s coordinate space. If false, they use global coordinates. Default value: true.

    public bool OneShot { get; set; }

If true, only amount particles will be emitted. Default value: false.

    public float Preprocess { get; set; }

Amount of time to preprocess the particles before animation starts. Lets you start the animation some time after particles have started emitting.

    public Material ProcessMaterial { get; set; }

Material for processing particles. Can be a ParticlesMaterial or a ShaderMaterial.

    public float Randomness { get; set; }

Emission randomness ratio. Default value: 0.

    public float SpeedScale { get; set; }

Speed scaling ratio. Default value: 1. A value of 0 can be used to pause the particles.

    public AABB VisibilityAabb { get; set; }

The AABB that determines the area of the world part of which needs to be visible on screen for the particle system to be active.


    public AABB CaptureAabb()

    public int GetAmount()

Getter for Amount

    public DrawOrderEnum GetDrawOrder()

Getter for DrawOrder

    public int GetDrawPasses()

Getter for DrawPasses

    public Mesh GetDrawPassMesh(int pass)

    public float GetExplosivenessRatio()

Getter for Explosiveness

    public int GetFixedFps()

Getter for FixedFps

    public bool GetFractionalDelta()

Getter for FractDelta

    public float GetLifetime()

Getter for DrawOrderEnum.Lifetime

    public bool GetOneShot()

Getter for OneShot

    public float GetPreProcessTime()

Getter for Preprocess

    public Material GetProcessMaterial()

Getter for ProcessMaterial

    public float GetRandomnessRatio()

Getter for Randomness

    public float GetSpeedScale()

Getter for SpeedScale

    public bool GetUseLocalCoordinates()

Getter for LocalCoords

    public AABB GetVisibilityAabb()

Getter for VisibilityAabb

    public bool IsEmitting()

Getter for Emitting

    public void Restart()

Restarts the particle emmission, clearing existing particles.

    public void SetAmount(int amount)

Setter for Amount

    public void SetDrawOrder(DrawOrderEnum order)

Setter for DrawOrder

    public void SetDrawPasses(int passes)

Setter for DrawPasses

    public void SetDrawPassMesh(int pass, Mesh mesh)

    public void SetEmitting(bool emitting)

Setter for Emitting

    public void SetExplosivenessRatio(float ratio)

Setter for Explosiveness

    public void SetFixedFps(int fps)

Setter for FixedFps

    public void SetFractionalDelta(bool enable)

Setter for FractDelta

    public void SetLifetime(float secs)

Setter for DrawOrderEnum.Lifetime

    public void SetOneShot(bool enable)

Setter for OneShot

    public void SetPreProcessTime(float secs)

Setter for Preprocess

    public void SetProcessMaterial(Material material)

Setter for ProcessMaterial

    public void SetRandomnessRatio(float ratio)

Setter for Randomness

    public void SetSpeedScale(float scale)

Setter for SpeedScale

    public void SetUseLocalCoordinates(bool enable)

Setter for LocalCoords

    public void SetVisibilityAabb(AABB aabb)

Setter for VisibilityAabb

Inner Types


Name Value Description
Index 0 Particles are drawn in the order emitted.
Lifetime 1 Particles are drawn in order of remaining lifetime.
ViewDepth 2 Particles are drawn in order of depth.