:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/4.1/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/4.1/doc/classes/GPUParticles3D.xml. .. _class_GPUParticles3D: GPUParticles3D ============== **Inherits:** :ref:`GeometryInstance3D` **<** :ref:`VisualInstance3D` **<** :ref:`Node3D` **<** :ref:`Node` **<** :ref:`Object` 3D particle emitter. .. rst-class:: classref-introduction-group Description ----------- 3D particle node used to create a variety of particle systems and effects. **GPUParticles3D** features an emitter that generates some number of particles at a given rate. Use the ``process_material`` property to add a :ref:`ParticleProcessMaterial` to configure particle appearance and behavior. Alternatively, you can add a :ref:`ShaderMaterial` which will be applied to all particles. .. rst-class:: classref-introduction-group Tutorials --------- - :doc:`Particle systems (3D) <../tutorials/3d/particles/index>` - :doc:`Controlling thousands of fish with Particles <../tutorials/performance/vertex_animation/controlling_thousands_of_fish>` - `Third Person Shooter Demo `__ .. rst-class:: classref-reftable-group Properties ---------- .. table:: :widths: auto +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`int` | :ref:`amount` | ``8`` | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`float` | :ref:`collision_base_size` | ``0.01`` | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`DrawOrder` | :ref:`draw_order` | ``0`` | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`Mesh` | :ref:`draw_pass_1` | | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`Mesh` | :ref:`draw_pass_2` | | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`Mesh` | :ref:`draw_pass_3` | | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`Mesh` | :ref:`draw_pass_4` | | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`int` | :ref:`draw_passes` | ``1`` | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`Skin` | :ref:`draw_skin` | | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`bool` | :ref:`emitting` | ``true`` | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`float` | :ref:`explosiveness` | ``0.0`` | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`int` | :ref:`fixed_fps` | ``30`` | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`bool` | :ref:`fract_delta` | ``true`` | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`bool` | :ref:`interpolate` | ``true`` | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`float` | :ref:`lifetime` | ``1.0`` | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`bool` | :ref:`local_coords` | ``false`` | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`bool` | :ref:`one_shot` | ``false`` | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`float` | :ref:`preprocess` | ``0.0`` | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`Material` | :ref:`process_material` | | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`float` | :ref:`randomness` | ``0.0`` | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`float` | :ref:`speed_scale` | ``1.0`` | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`NodePath` | :ref:`sub_emitter` | ``NodePath("")`` | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`bool` | :ref:`trail_enabled` | ``false`` | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`float` | :ref:`trail_lifetime` | ``0.3`` | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`TransformAlign` | :ref:`transform_align` | ``0`` | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ | :ref:`AABB` | :ref:`visibility_aabb` | ``AABB(-4, -4, -4, 8, 8, 8)`` | +-----------------------------------------------------------+-------------------------------------------------------------------------------+-------------------------------+ .. rst-class:: classref-reftable-group Methods ------- .. table:: :widths: auto +-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`AABB` | :ref:`capture_aabb` **(** **)** |const| | +-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`emit_particle` **(** :ref:`Transform3D` xform, :ref:`Vector3` velocity, :ref:`Color` color, :ref:`Color` custom, :ref:`int` flags **)** | +-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Mesh` | :ref:`get_draw_pass_mesh` **(** :ref:`int` pass **)** |const| | +-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`restart` **(** **)** | +-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_draw_pass_mesh` **(** :ref:`int` pass, :ref:`Mesh` mesh **)** | +-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Enumerations ------------ .. _enum_GPUParticles3D_DrawOrder: .. rst-class:: classref-enumeration enum **DrawOrder**: .. _class_GPUParticles3D_constant_DRAW_ORDER_INDEX: .. rst-class:: classref-enumeration-constant :ref:`DrawOrder` **DRAW_ORDER_INDEX** = ``0`` Particles are drawn in the order emitted. .. _class_GPUParticles3D_constant_DRAW_ORDER_LIFETIME: .. rst-class:: classref-enumeration-constant :ref:`DrawOrder` **DRAW_ORDER_LIFETIME** = ``1`` Particles are drawn in order of remaining lifetime. In other words, the particle with the highest lifetime is drawn at the front. .. _class_GPUParticles3D_constant_DRAW_ORDER_REVERSE_LIFETIME: .. rst-class:: classref-enumeration-constant :ref:`DrawOrder` **DRAW_ORDER_REVERSE_LIFETIME** = ``2`` Particles are drawn in reverse order of remaining lifetime. In other words, the particle with the lowest lifetime is drawn at the front. .. _class_GPUParticles3D_constant_DRAW_ORDER_VIEW_DEPTH: .. rst-class:: classref-enumeration-constant :ref:`DrawOrder` **DRAW_ORDER_VIEW_DEPTH** = ``3`` Particles are drawn in order of depth. .. rst-class:: classref-item-separator ---- .. _enum_GPUParticles3D_EmitFlags: .. rst-class:: classref-enumeration enum **EmitFlags**: .. _class_GPUParticles3D_constant_EMIT_FLAG_POSITION: .. rst-class:: classref-enumeration-constant :ref:`EmitFlags` **EMIT_FLAG_POSITION** = ``1`` Particle starts at the specified position. .. _class_GPUParticles3D_constant_EMIT_FLAG_ROTATION_SCALE: .. rst-class:: classref-enumeration-constant :ref:`EmitFlags` **EMIT_FLAG_ROTATION_SCALE** = ``2`` Particle starts with specified rotation and scale. .. _class_GPUParticles3D_constant_EMIT_FLAG_VELOCITY: .. rst-class:: classref-enumeration-constant :ref:`EmitFlags` **EMIT_FLAG_VELOCITY** = ``4`` Particle starts with the specified velocity vector, which defines the emission direction and speed. .. _class_GPUParticles3D_constant_EMIT_FLAG_COLOR: .. rst-class:: classref-enumeration-constant :ref:`EmitFlags` **EMIT_FLAG_COLOR** = ``8`` Particle starts with specified color. .. _class_GPUParticles3D_constant_EMIT_FLAG_CUSTOM: .. rst-class:: classref-enumeration-constant :ref:`EmitFlags` **EMIT_FLAG_CUSTOM** = ``16`` Particle starts with specified ``CUSTOM`` data. .. rst-class:: classref-item-separator ---- .. _enum_GPUParticles3D_TransformAlign: .. rst-class:: classref-enumeration enum **TransformAlign**: .. _class_GPUParticles3D_constant_TRANSFORM_ALIGN_DISABLED: .. rst-class:: classref-enumeration-constant :ref:`TransformAlign` **TRANSFORM_ALIGN_DISABLED** = ``0`` .. _class_GPUParticles3D_constant_TRANSFORM_ALIGN_Z_BILLBOARD: .. rst-class:: classref-enumeration-constant :ref:`TransformAlign` **TRANSFORM_ALIGN_Z_BILLBOARD** = ``1`` .. _class_GPUParticles3D_constant_TRANSFORM_ALIGN_Y_TO_VELOCITY: .. rst-class:: classref-enumeration-constant :ref:`TransformAlign` **TRANSFORM_ALIGN_Y_TO_VELOCITY** = ``2`` .. _class_GPUParticles3D_constant_TRANSFORM_ALIGN_Z_BILLBOARD_Y_TO_VELOCITY: .. rst-class:: classref-enumeration-constant :ref:`TransformAlign` **TRANSFORM_ALIGN_Z_BILLBOARD_Y_TO_VELOCITY** = ``3`` .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Constants --------- .. _class_GPUParticles3D_constant_MAX_DRAW_PASSES: .. rst-class:: classref-constant **MAX_DRAW_PASSES** = ``4`` Maximum number of draw passes supported. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Property Descriptions --------------------- .. _class_GPUParticles3D_property_amount: .. rst-class:: classref-property :ref:`int` **amount** = ``8`` .. rst-class:: classref-property-setget - void **set_amount** **(** :ref:`int` value **)** - :ref:`int` **get_amount** **(** **)** Number of particles to emit. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_collision_base_size: .. rst-class:: classref-property :ref:`float` **collision_base_size** = ``0.01`` .. rst-class:: classref-property-setget - void **set_collision_base_size** **(** :ref:`float` value **)** - :ref:`float` **get_collision_base_size** **(** **)** .. container:: contribute There is currently no description for this property. Please help us by :ref:`contributing one `! .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_draw_order: .. rst-class:: classref-property :ref:`DrawOrder` **draw_order** = ``0`` .. rst-class:: classref-property-setget - void **set_draw_order** **(** :ref:`DrawOrder` value **)** - :ref:`DrawOrder` **get_draw_order** **(** **)** Particle draw order. Uses :ref:`DrawOrder` values. \ **Note:** :ref:`DRAW_ORDER_INDEX` is the only option that supports motion vectors for effects like TAA. It is suggested to use this draw order if the particles are opaque to fix ghosting artifacts. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_draw_pass_1: .. rst-class:: classref-property :ref:`Mesh` **draw_pass_1** .. rst-class:: classref-property-setget - void **set_draw_pass_mesh** **(** :ref:`int` pass, :ref:`Mesh` mesh **)** - :ref:`Mesh` **get_draw_pass_mesh** **(** :ref:`int` pass **)** |const| :ref:`Mesh` that is drawn for the first draw pass. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_draw_pass_2: .. rst-class:: classref-property :ref:`Mesh` **draw_pass_2** .. rst-class:: classref-property-setget - void **set_draw_pass_mesh** **(** :ref:`int` pass, :ref:`Mesh` mesh **)** - :ref:`Mesh` **get_draw_pass_mesh** **(** :ref:`int` pass **)** |const| :ref:`Mesh` that is drawn for the second draw pass. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_draw_pass_3: .. rst-class:: classref-property :ref:`Mesh` **draw_pass_3** .. rst-class:: classref-property-setget - void **set_draw_pass_mesh** **(** :ref:`int` pass, :ref:`Mesh` mesh **)** - :ref:`Mesh` **get_draw_pass_mesh** **(** :ref:`int` pass **)** |const| :ref:`Mesh` that is drawn for the third draw pass. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_draw_pass_4: .. rst-class:: classref-property :ref:`Mesh` **draw_pass_4** .. rst-class:: classref-property-setget - void **set_draw_pass_mesh** **(** :ref:`int` pass, :ref:`Mesh` mesh **)** - :ref:`Mesh` **get_draw_pass_mesh** **(** :ref:`int` pass **)** |const| :ref:`Mesh` that is drawn for the fourth draw pass. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_draw_passes: .. rst-class:: classref-property :ref:`int` **draw_passes** = ``1`` .. rst-class:: classref-property-setget - void **set_draw_passes** **(** :ref:`int` value **)** - :ref:`int` **get_draw_passes** **(** **)** The number of draw passes when rendering particles. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_draw_skin: .. rst-class:: classref-property :ref:`Skin` **draw_skin** .. rst-class:: classref-property-setget - void **set_skin** **(** :ref:`Skin` value **)** - :ref:`Skin` **get_skin** **(** **)** .. container:: contribute There is currently no description for this property. Please help us by :ref:`contributing one `! .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_emitting: .. rst-class:: classref-property :ref:`bool` **emitting** = ``true`` .. rst-class:: classref-property-setget - void **set_emitting** **(** :ref:`bool` value **)** - :ref:`bool` **is_emitting** **(** **)** If ``true``, particles are being emitted. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_explosiveness: .. rst-class:: classref-property :ref:`float` **explosiveness** = ``0.0`` .. rst-class:: classref-property-setget - void **set_explosiveness_ratio** **(** :ref:`float` value **)** - :ref:`float` **get_explosiveness_ratio** **(** **)** Time ratio between each emission. If ``0``, particles are emitted continuously. If ``1``, all particles are emitted simultaneously. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_fixed_fps: .. rst-class:: classref-property :ref:`int` **fixed_fps** = ``30`` .. rst-class:: classref-property-setget - void **set_fixed_fps** **(** :ref:`int` value **)** - :ref:`int` **get_fixed_fps** **(** **)** The particle system's frame rate is fixed to a value. For example, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_fract_delta: .. rst-class:: classref-property :ref:`bool` **fract_delta** = ``true`` .. rst-class:: classref-property-setget - void **set_fractional_delta** **(** :ref:`bool` value **)** - :ref:`bool` **get_fractional_delta** **(** **)** If ``true``, results in fractional delta calculation which has a smoother particles display effect. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_interpolate: .. rst-class:: classref-property :ref:`bool` **interpolate** = ``true`` .. rst-class:: classref-property-setget - void **set_interpolate** **(** :ref:`bool` value **)** - :ref:`bool` **get_interpolate** **(** **)** Enables particle interpolation, which makes the particle movement smoother when their :ref:`fixed_fps` is lower than the screen refresh rate. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_lifetime: .. rst-class:: classref-property :ref:`float` **lifetime** = ``1.0`` .. rst-class:: classref-property-setget - void **set_lifetime** **(** :ref:`float` value **)** - :ref:`float` **get_lifetime** **(** **)** Amount of time each particle will exist. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_local_coords: .. rst-class:: classref-property :ref:`bool` **local_coords** = ``false`` .. rst-class:: classref-property-setget - void **set_use_local_coordinates** **(** :ref:`bool` value **)** - :ref:`bool` **get_use_local_coordinates** **(** **)** If ``true``, particles use the parent node's coordinate space (known as local coordinates). This will cause particles to move and rotate along the **GPUParticles3D** node (and its parents) when it is moved or rotated. If ``false``, particles use global coordinates; they will not move or rotate along the **GPUParticles3D** node (and its parents) when it is moved or rotated. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_one_shot: .. rst-class:: classref-property :ref:`bool` **one_shot** = ``false`` .. rst-class:: classref-property-setget - void **set_one_shot** **(** :ref:`bool` value **)** - :ref:`bool` **get_one_shot** **(** **)** If ``true``, only ``amount`` particles will be emitted. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_preprocess: .. rst-class:: classref-property :ref:`float` **preprocess** = ``0.0`` .. rst-class:: classref-property-setget - void **set_pre_process_time** **(** :ref:`float` value **)** - :ref:`float` **get_pre_process_time** **(** **)** Amount of time to preprocess the particles before animation starts. Lets you start the animation some time after particles have started emitting. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_process_material: .. rst-class:: classref-property :ref:`Material` **process_material** .. rst-class:: classref-property-setget - void **set_process_material** **(** :ref:`Material` value **)** - :ref:`Material` **get_process_material** **(** **)** :ref:`Material` for processing particles. Can be a :ref:`ParticleProcessMaterial` or a :ref:`ShaderMaterial`. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_randomness: .. rst-class:: classref-property :ref:`float` **randomness** = ``0.0`` .. rst-class:: classref-property-setget - void **set_randomness_ratio** **(** :ref:`float` value **)** - :ref:`float` **get_randomness_ratio** **(** **)** Emission randomness ratio. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_speed_scale: .. rst-class:: classref-property :ref:`float` **speed_scale** = ``1.0`` .. rst-class:: classref-property-setget - void **set_speed_scale** **(** :ref:`float` value **)** - :ref:`float` **get_speed_scale** **(** **)** Speed scaling ratio. A value of ``0`` can be used to pause the particles. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_sub_emitter: .. rst-class:: classref-property :ref:`NodePath` **sub_emitter** = ``NodePath("")`` .. rst-class:: classref-property-setget - void **set_sub_emitter** **(** :ref:`NodePath` value **)** - :ref:`NodePath` **get_sub_emitter** **(** **)** .. container:: contribute There is currently no description for this property. Please help us by :ref:`contributing one `! .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_trail_enabled: .. rst-class:: classref-property :ref:`bool` **trail_enabled** = ``false`` .. rst-class:: classref-property-setget - void **set_trail_enabled** **(** :ref:`bool` value **)** - :ref:`bool` **is_trail_enabled** **(** **)** If ``true``, enables particle trails using a mesh skinning system. Designed to work with :ref:`RibbonTrailMesh` and :ref:`TubeTrailMesh`. \ **Note:** :ref:`BaseMaterial3D.use_particle_trails` must also be enabled on the particle mesh's material. Otherwise, setting :ref:`trail_enabled` to ``true`` will have no effect. \ **Note:** Unlike :ref:`GPUParticles2D`, the number of trail sections and subdivisions is set in the :ref:`RibbonTrailMesh` or the :ref:`TubeTrailMesh`'s properties. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_trail_lifetime: .. rst-class:: classref-property :ref:`float` **trail_lifetime** = ``0.3`` .. rst-class:: classref-property-setget - void **set_trail_lifetime** **(** :ref:`float` value **)** - :ref:`float` **get_trail_lifetime** **(** **)** The amount of time the particle's trail should represent (in seconds). Only effective if :ref:`trail_enabled` is ``true``. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_transform_align: .. rst-class:: classref-property :ref:`TransformAlign` **transform_align** = ``0`` .. rst-class:: classref-property-setget - void **set_transform_align** **(** :ref:`TransformAlign` value **)** - :ref:`TransformAlign` **get_transform_align** **(** **)** .. container:: contribute There is currently no description for this property. Please help us by :ref:`contributing one `! .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_property_visibility_aabb: .. rst-class:: classref-property :ref:`AABB` **visibility_aabb** = ``AABB(-4, -4, -4, 8, 8, 8)`` .. rst-class:: classref-property-setget - void **set_visibility_aabb** **(** :ref:`AABB` value **)** - :ref:`AABB` **get_visibility_aabb** **(** **)** The :ref:`AABB` that determines the node's region which needs to be visible on screen for the particle system to be active. Grow the box if particles suddenly appear/disappear when the node enters/exits the screen. The :ref:`AABB` can be grown via code or with the **Particles → Generate AABB** editor tool. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Method Descriptions ------------------- .. _class_GPUParticles3D_method_capture_aabb: .. rst-class:: classref-method :ref:`AABB` **capture_aabb** **(** **)** |const| Returns the axis-aligned bounding box that contains all the particles that are active in the current frame. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_method_emit_particle: .. rst-class:: classref-method void **emit_particle** **(** :ref:`Transform3D` xform, :ref:`Vector3` velocity, :ref:`Color` color, :ref:`Color` custom, :ref:`int` flags **)** Emits a single particle. Whether ``xform``, ``velocity``, ``color`` and ``custom`` are applied depends on the value of ``flags``. See :ref:`EmitFlags`. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_method_get_draw_pass_mesh: .. rst-class:: classref-method :ref:`Mesh` **get_draw_pass_mesh** **(** :ref:`int` pass **)** |const| Returns the :ref:`Mesh` that is drawn at index ``pass``. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_method_restart: .. rst-class:: classref-method void **restart** **(** **)** Restarts the particle emission, clearing existing particles. .. rst-class:: classref-item-separator ---- .. _class_GPUParticles3D_method_set_draw_pass_mesh: .. rst-class:: classref-method void **set_draw_pass_mesh** **(** :ref:`int` pass, :ref:`Mesh` mesh **)** Sets the :ref:`Mesh` that is drawn at index ``pass``. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)` .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)` .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`