MeshInstance
Inherits: GeometryInstance < VisualInstance < CullInstance < Spatial < Node < Object Inherited By: SoftBody Node that instances meshes into a scenario.
Description
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 Mesh in many places. This allows to reuse geometry and save on resources. When a Mesh has to be instanced more than thousands of times at close proximity, consider using a MultiMesh in a MultiMeshInstance instead.
Tutorials
- 3D Material Testers Demo
- 3D Kinematic Character Demo
- 3D Platformer Demo
- Third Person Shooter Demo
Properties
Methods
Property Descriptions
- Mesh mesh Mesh resource for the instance.
- NodePath skeleton NodePath to the Skeleton associated with the instance.
- Skin skin Sets the skin to be used by this instance.
- bool software_skinning_transform_normals
true, normals are transformed when software skinning is used. Set tofalsewhen normals are not needed for better performance. ProjectSettings.rendering/quality/skinning/software_skinning_fallback for details about how software skinning is enabled.Method Descriptions
- create_convex_collision ( bool clean=true, bool simplify=false )
StaticBody child node with a ConvexPolygonShape collision shape calculated from the mesh geometry. It’s mainly used for testing.
cleanistrue(default), duplicate and interior vertices are removed automatically. You can set it tofalseto make the process faster if not needed.simplifyistrue, the geometry can be further simplified to reduce the amount of vertices. Disabled by default.
- create_debug_tangents ( )
MeshInstancechild node with gizmos at every vertex calculated from the mesh geometry. It’s mainly used for testing.
- create_multiple_convex_collisions ( ) StaticBody child node with multiple ConvexPolygonShape collision shapes calculated from the mesh geometry via convex decomposition. It’s mainly used for testing.
- create_trimesh_collision ( ) StaticBody child node with a ConcavePolygonShape collision shape calculated from the mesh geometry. It’s mainly used for testing.
- Material get_active_material ( int surface ) const
Material that will be used by the Mesh when drawing. This can return the GeometryInstance.material_override, the surface override Material defined in this
MeshInstance, or the surface Material defined in the Mesh. For example, if GeometryInstance.material_override is used, all surfaces will return the override material.
- Material get_surface_material ( int surface ) const
Material for a surface of the Mesh resource.
Note: This function only returns override materials associated with this
MeshInstance. Consider using get_active_material or Mesh.surface_get_material to get materials associated with the Mesh resource.
- int get_surface_material_count ( ) const Returns the number of surface override materials.
- bool is_mergeable_with ( Node other_mesh_instance ) const
trueif thisMeshInstancecan be merged with the specifiedother_mesh_instance, using the merge_meshes function.MeshInstancemust match, and each surface must match, in terms of material, attributes and vertex format.
- bool merge_meshes ( Array mesh_instances=[ ], bool use_global_space=false, bool check_compatibility=true )
MeshInstances into a single destinationMeshInstance(the MeshInstance the function is called from). This is primarily useful for improving performance by reducing the number of drawcalls and Nodes. Merging should only be attempted for simple meshes that do not contain animation.MeshInstanceglobal transform (the destination Node must be inside the SceneTree for local space to work).MeshInstances by default, this should always be used unless you have previously checked for compatibility using is_mergeable_with. If the compatibility check is omitted and the meshes are merged, you may see rendering errors. Note: The requirements for similarity between meshes are quite stringent. They can be checked using the is_mergeable_with function prior to calling merge_meshes.MeshInstancedata will be discarded.
- set_surface_material ( int surface, Material material )
Material for the specified surface of the Mesh resource. This material is associated with this
MeshInstancerather than with the Mesh resource.
