.. Generated automatically by doc/tools/makerst.py in Godot's source tree.
.. DO NOT EDIT THIS FILE, but the Particles.xml source instead.
.. The source is found in doc/classes or modules/<name>/doc_classes.

.. _class_Particles:

Particles
=========

**Inherits:** :ref:`GeometryInstance<class_geometryinstance>` **<** :ref:`VisualInstance<class_visualinstance>` **<** :ref:`Spatial<class_spatial>` **<** :ref:`Node<class_node>` **<** :ref:`Object<class_object>`

**Category:** Core

Brief Description
-----------------

3D particle emitter.

Member Functions
----------------

+--------------------------+---------------------------------------------------------------------+
| :ref:`AABB<class_aabb>`  | :ref:`capture_aabb<class_Particles_capture_aabb>` **(** **)** const |
+--------------------------+---------------------------------------------------------------------+
| void                     | :ref:`restart<class_Particles_restart>` **(** **)**                 |
+--------------------------+---------------------------------------------------------------------+

Member Variables
----------------

  .. _class_Particles_amount:

- :ref:`int<class_int>` **amount** - Number of particles to emit.

  .. _class_Particles_draw_order:

- :ref:`DrawOrder<enum_particles_draworder>` **draw_order** - Particle draw order. Uses ``DRAW_ORDER_*`` values. Default value: ``DRAW_ORDER_INDEX``.

  .. _class_Particles_draw_pass_1:

- :ref:`Mesh<class_mesh>` **draw_pass_1**

  .. _class_Particles_draw_pass_2:

- :ref:`Mesh<class_mesh>` **draw_pass_2**

  .. _class_Particles_draw_pass_3:

- :ref:`Mesh<class_mesh>` **draw_pass_3**

  .. _class_Particles_draw_pass_4:

- :ref:`Mesh<class_mesh>` **draw_pass_4**

  .. _class_Particles_draw_passes:

- :ref:`int<class_int>` **draw_passes**

  .. _class_Particles_emitting:

- :ref:`bool<class_bool>` **emitting** - If ``true`` particles are being emitted. Default value: ``true``.

  .. _class_Particles_explosiveness:

- :ref:`float<class_float>` **explosiveness** - Time ratio between each emission. If ``0`` particles are emitted continuously. If ``1`` all particles are emitted simultaneously. Default value: ``0``.

  .. _class_Particles_fixed_fps:

- :ref:`int<class_int>` **fixed_fps**

  .. _class_Particles_fract_delta:

- :ref:`bool<class_bool>` **fract_delta**

  .. _class_Particles_lifetime:

- :ref:`float<class_float>` **lifetime** - Amount of time each particle will exist. Default value: ``1``.

  .. _class_Particles_local_coords:

- :ref:`bool<class_bool>` **local_coords** - If ``true`` particles use the parent node's coordinate space. If ``false`` they use global coordinates. Default value: ``true``.

  .. _class_Particles_one_shot:

- :ref:`bool<class_bool>` **one_shot** - If ``true`` only ``amount`` particles will be emitted. Default value: ``false``.

  .. _class_Particles_preprocess:

- :ref:`float<class_float>` **preprocess**

  .. _class_Particles_process_material:

- :ref:`Material<class_material>` **process_material** - :ref:`Material<class_material>` for processing particles. Can be a :ref:`ParticlesMaterial<class_particlesmaterial>` or a :ref:`ShaderMaterial<class_shadermaterial>`.

  .. _class_Particles_randomness:

- :ref:`float<class_float>` **randomness** - Emission randomness ratio. Default value: ``0``.

  .. _class_Particles_speed_scale:

- :ref:`float<class_float>` **speed_scale** - Speed scaling ratio. Default value: ``1``.

  .. _class_Particles_visibility_aabb:

- :ref:`AABB<class_aabb>` **visibility_aabb**


Numeric Constants
-----------------

- **MAX_DRAW_PASSES** = **4**

Enums
-----

  .. _enum_Particles_DrawOrder:

enum **DrawOrder**

- **DRAW_ORDER_INDEX** = **0** --- Particles are drawn in the order emitted.
- **DRAW_ORDER_LIFETIME** = **1** --- Particles are drawn in order of remaining lifetime.
- **DRAW_ORDER_VIEW_DEPTH** = **2** --- Particles are drawn in order of depth.


Description
-----------

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 :ref:`ParticlesMaterial<class_particlesmaterial>` to configure particle appearance and behavior. Alternatively, you can add a :ref:`ShaderMaterial<class_shadermaterial>` which will be applied to all particles.

Member Function Description
---------------------------

.. _class_Particles_capture_aabb:

- :ref:`AABB<class_aabb>` **capture_aabb** **(** **)** const

.. _class_Particles_restart:

- void **restart** **(** **)**


