Up to date
This page is up to date for Godot 4.0
. If you still find outdated information, please open an issue.
MeshInstance3D
Inherits: GeometryInstance3D < VisualInstance3D < Node3D < Node < Object
Inherited By: SoftBody3D
Node that instances meshes into a scenario.
Description
MeshInstance3D is a node that takes a Mesh resource and adds it to the current scenario by creating an instance of it. This is the class most often used render 3D geometry and can be used to instance a single Mesh in many places. This allows reusing geometry, which can save on resources. When a Mesh has to be instantiated more than thousands of times at close proximity, consider using a MultiMesh in a MultiMeshInstance3D instead.
Tutorials
Properties
| ||
Methods
void | create_convex_collision ( bool clean=true, bool simplify=false ) |
void | |
void | |
void | |
find_blend_shape_by_name ( StringName name ) | |
get_active_material ( int surface ) const | |
get_blend_shape_count ( ) const | |
get_blend_shape_value ( int blend_shape_idx ) const | |
get_surface_override_material ( int surface ) const | |
get_surface_override_material_count ( ) const | |
void | set_blend_shape_value ( int blend_shape_idx, float value ) |
void | set_surface_override_material ( int surface, Material material ) |
Property Descriptions
Mesh mesh
The Mesh resource for the instance.
NodePath skeleton = NodePath("..")
NodePath to the Skeleton3D associated with the instance.
Skin skin
The Skin to be used by this instance.
Method Descriptions
void create_convex_collision ( bool clean=true, bool simplify=false )
This helper creates a StaticBody3D child node with a ConvexPolygonShape3D collision shape calculated from the mesh geometry. It’s mainly used for testing.
If clean
is true
(default), duplicate and interior vertices are removed automatically. You can set it to false
to make the process faster if not needed.
If simplify
is true
, the geometry can be further simplified to reduce the number of vertices. Disabled by default.
void create_debug_tangents ( )
This helper creates a MeshInstance3D child node with gizmos at every vertex calculated from the mesh geometry. It’s mainly used for testing.
void create_multiple_convex_collisions ( )
This helper creates a StaticBody3D child node with multiple ConvexPolygonShape3D collision shapes calculated from the mesh geometry via convex decomposition. It’s mainly used for testing.
void create_trimesh_collision ( )
This helper creates a StaticBody3D child node with a ConcavePolygonShape3D collision shape calculated from the mesh geometry. It’s mainly used for testing.
int find_blend_shape_by_name ( StringName name )
Returns the index of the blend shape with the given name
. Returns -1
if no blend shape with this name exists, including when mesh is null
.
Material get_active_material ( int surface ) const
Returns the Material that will be used by the Mesh when drawing. This can return the GeometryInstance3D.material_override, the surface override Material defined in this MeshInstance3D, or the surface Material defined in the mesh. For example, if GeometryInstance3D.material_override is used, all surfaces will return the override material.
Returns null
if no material is active, including when mesh is null
.
int get_blend_shape_count ( ) const
Returns the number of blend shapes available. Produces an error if mesh is null
.
float get_blend_shape_value ( int blend_shape_idx ) const
Returns the value of the blend shape at the given blend_shape_idx
. Returns 0.0
and produces an error if mesh is null
or doesn’t have a blend shape at that index.
Material get_surface_override_material ( int surface ) const
Returns the override Material for the specified surface
of the Mesh resource.
int get_surface_override_material_count ( ) const
Returns the number of surface override materials. This is equivalent to Mesh.get_surface_count.
void set_blend_shape_value ( int blend_shape_idx, float value )
Sets the value of the blend shape at blend_shape_idx
to value
. Produces an error if mesh is null
or doesn’t have a blend shape at that index.
void set_surface_override_material ( int surface, Material material )
Sets the override material
for the specified surface
of the Mesh resource. This material is associated with this MeshInstance3D rather than with mesh.