MeshInstance

Inherits: GeometryInstance < VisualInstance < CullInstance < Spatial < Node < Object

Inherited By: SoftBody

网格实例与场景相结合的节点。

描述

MeshInstance是一个节点,它获取Mesh资源并创建一个实例,将其添加到当前场景中。这是最常被用来渲染3D几何体的类,这可以在很多地方使用Mesh实例,它允许重复使用几何体并节省资源。当Mesh必须在很近的地方被实例化超过数千次时,可以考虑在MultiMeshInstance中使用MultiMesh来代替。

教程

属性

Mesh

mesh

NodePath

skeleton

NodePath(“..”)

Skin

skin

bool

software_skinning_transform_normals

true

方法

void

create_convex_collision ( bool clean=true, bool simplify=false )

void

create_debug_tangents ( )

void

create_multiple_convex_collisions ( )

void

create_trimesh_collision ( )

Material

get_active_material ( int surface ) const

Material

get_surface_material ( int surface ) const

int

get_surface_material_count ( ) const

void

set_surface_material ( int surface, Material material )

属性说明

Setter

set_mesh(value)

Getter

get_mesh()

该实例的Mesh资源。


Default

NodePath(“..”)

Setter

set_skeleton_path(value)

Getter

get_skeleton_path()

与实例相关联NodePathSkeleton


Setter

set_skin(value)

Getter

get_skin()

设置此实例要使用的蒙皮。


  • bool software_skinning_transform_normals

Default

true

Setter

set_software_skinning_transform_normals(value)

Getter

is_software_skinning_transform_normals_enabled()

如果true,当使用软件蒙皮时,法线会被转换。当不需要法线时,设置为false以获得更好的性能。

关于如何启用软件蒙皮的细节,参阅ProjectSettings.rendering/quality/skinning/software_skinning_fallback

方法说明

  • void create_convex_collision ( bool clean=true, bool simplify=false )

这个助手创建StaticBody子节点,该节点具有从网格几何形状计算的ConvexPolygonShape碰撞形状。其主要用于测试。

如果cleantrue(默认),重复的顶点和内部顶点会被自动移除。可以把它设置为false,以便在不需要的情况下使这个过程更快。

如果simplifytrue,可以进一步简化几何体以减少顶点的数量。默认情况下是禁用的。


  • void create_debug_tangents ( )

这个辅助工具创建MeshInstance子节点,在每个顶点都有根据网格几何形状计算的辅助线框。其主要用于测试。


  • void create_multiple_convex_collisions ( )

这个助手创建StaticBody子节点,该节点具有多个ConvexPolygonShape碰撞形状,这些碰撞形状是通过凸面分解从网格几何形状计算出来的。其主要用于测试。


  • void create_trimesh_collision ( )

这个助手创建StaticBody子节点,其碰撞形状是由网格的几何形状计算出来的ConcavePolygonShape,其主要用于测试。


返回Mesh绘制时使用的Material。这可以返回GeometryInstance.material_override,这个MeshInstance中定义的表面覆盖Material,或者Mesh中定义的表面Material。例如,如果使用GeometryInstance.material_override,所有的表面都会返回覆盖的材质。


返回Mesh资源表面的Material


  • int get_surface_material_count ( ) const

返回表面材质的数量。


  • void set_surface_material ( int surface, Material material )

Mesh资源的表面设置Material