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

.. _class_MeshInstance:

MeshInstance
============

**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
-----------------

Node that instances meshes into a scenario.

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

+----------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void                             | :ref:`create_convex_collision<class_MeshInstance_create_convex_collision>`  **(** **)**                                                                    |
+----------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void                             | :ref:`create_debug_tangents<class_MeshInstance_create_debug_tangents>`  **(** **)**                                                                        |
+----------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void                             | :ref:`create_trimesh_collision<class_MeshInstance_create_trimesh_collision>`  **(** **)**                                                                  |
+----------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Mesh<class_mesh>`          | :ref:`get_mesh<class_MeshInstance_get_mesh>`  **(** **)** const                                                                                            |
+----------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`NodePath<class_nodepath>`  | :ref:`get_skeleton_path<class_MeshInstance_get_skeleton_path>`  **(** **)**                                                                                |
+----------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Material<class_material>`  | :ref:`get_surface_material<class_MeshInstance_get_surface_material>`  **(** :ref:`int<class_int>` surface  **)** const                                     |
+----------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void                             | :ref:`set_mesh<class_MeshInstance_set_mesh>`  **(** :ref:`Mesh<class_mesh>` mesh  **)**                                                                    |
+----------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void                             | :ref:`set_skeleton_path<class_MeshInstance_set_skeleton_path>`  **(** :ref:`NodePath<class_nodepath>` skeleton_path  **)**                                 |
+----------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void                             | :ref:`set_surface_material<class_MeshInstance_set_surface_material>`  **(** :ref:`int<class_int>` surface, :ref:`Material<class_material>` material  **)** |
+----------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+

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

- :ref:`Mesh<class_mesh>` **mesh** - The [Mesh] resource for the instance.
- :ref:`NodePath<class_nodepath>` **skeleton** - [NodePath] to the [Skeleton] associated with the instance.

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

MeshInstance is a :ref:`Node<class_node>` that takes a :ref:`Mesh<class_mesh>` resource and adds it to the current scenario by creating an instance of it. This is the class most often used to get 3D geometry rendered and can be used to instance a single :ref:`Mesh<class_mesh>` in many places. This allows to reuse geometry and save on resources. When a :ref:`Mesh<class_mesh>` has to be instanced more than thousands of times at close proximity, consider using a :ref:`MultiMesh<class_multimesh>` in a :ref:`MultiMeshInstance<class_multimeshinstance>` instead.

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

.. _class_MeshInstance_create_convex_collision:

- void  **create_convex_collision**  **(** **)**

This helper creates a :ref:`StaticBody<class_staticbody>` child :ref:`Node<class_node>` with a :ref:`ConvexPolygonShape<class_convexpolygonshape>` :ref:`CollisionShape<class_collisionshape>` calculated from the mesh geometry. It's mainly used for testing.

.. _class_MeshInstance_create_debug_tangents:

- void  **create_debug_tangents**  **(** **)**

.. _class_MeshInstance_create_trimesh_collision:

- void  **create_trimesh_collision**  **(** **)**

This helper creates a :ref:`StaticBody<class_staticbody>` child :ref:`Node<class_node>` with a :ref:`ConcavePolygonShape<class_concavepolygonshape>` :ref:`CollisionShape<class_collisionshape>` calculated from the mesh geometry. It's mainly used for testing.

.. _class_MeshInstance_get_mesh:

- :ref:`Mesh<class_mesh>`  **get_mesh**  **(** **)** const

Returns the current :ref:`Mesh<class_mesh>` resource for the instance.

.. _class_MeshInstance_get_skeleton_path:

- :ref:`NodePath<class_nodepath>`  **get_skeleton_path**  **(** **)**

.. _class_MeshInstance_get_surface_material:

- :ref:`Material<class_material>`  **get_surface_material**  **(** :ref:`int<class_int>` surface  **)** const

Returns the :ref:`Material<class_material>` for a surface of the :ref:`Mesh<class_mesh>` resource.

.. _class_MeshInstance_set_mesh:

- void  **set_mesh**  **(** :ref:`Mesh<class_mesh>` mesh  **)**

.. _class_MeshInstance_set_skeleton_path:

- void  **set_skeleton_path**  **(** :ref:`NodePath<class_nodepath>` skeleton_path  **)**

.. _class_MeshInstance_set_surface_material:

- void  **set_surface_material**  **(** :ref:`int<class_int>` surface, :ref:`Material<class_material>` material  **)**

Sets the :ref:`Material<class_material>` for a surface of the :ref:`Mesh<class_mesh>` resource.


