跳到主要内容

Mesh

继承

Resource

简要描述

一个Resource,它包含基于顶点数组的几何。

描述

网格是Resource的一种,它包含基于顶点阵列的几何图形,并划分为 surfaces 。每个表面都包含一个完全独立的数组和用于绘制它的材质。一个具有多个表面的网格优于一个单一的表面,因为在3D编辑软件中创建的对象通常包含多个材质。

成员

类型属性名默认值
Vector2lightmap_size_hintVector2( 0, 0 )

方法

返回值类型方法名称
Shapecreate_convex_shape() const
Meshcreate_outline(margin: float) const
Shapecreate_trimesh_shape() const
TriangleMeshgenerate_triangle_mesh() const
AABBget_aabb() const
PoolVector3Arrayget_faces() const
intget_surface_count() const
Arraysurface_get_arrays(surf_idx: int) const
Arraysurface_get_blend_shape_arrays(surf_idx: int) const
Materialsurface_get_material(surf_idx: int) const
voidsurface_set_material(surf_idx: int, material: Material)

枚举

enum PrimitiveType:

  • **PRIMITIVE_POINTS = 0**

将数组渲染为点(一个顶点等于一个点)。

  • **PRIMITIVE_LINES = 1**

将数组渲染为线(每隔两个顶点创建一条线)。

  • **PRIMITIVE_LINE_STRIP = 2**

将数组渲染为线条。

  • **PRIMITIVE_LINE_LOOP = 3**

将数组渲染为线循环(类似于线带,但处于闭合状态)。

  • **PRIMITIVE_TRIANGLES = 4**

将数组渲染为三角形(每三个顶点创建一个三角形)。

  • **PRIMITIVE_TRIANGLE_STRIP = 5**

将数组渲染为三角形条。

  • **PRIMITIVE_TRIANGLE_FAN = 6**

将阵列渲染为三角形风扇。


enum BlendShapeMode:

  • **BLEND_SHAPE_MODE_NORMALIZED = 0**

混合形状已标准化。

  • **BLEND_SHAPE_MODE_RELATIVE = 1**

混合形状是相对于基本重量的。


enum ArrayFormat:

  • **ARRAY_FORMAT_VERTEX = 1**

网格阵列包含顶点。需要设定初始值,因为所有的网格都需要顶点数组。

  • **ARRAY_FORMAT_NORMAL = 2**

网格阵列包含法线。

  • **ARRAY_FORMAT_TANGENT = 4**

网格阵列包含切线。

  • **ARRAY_FORMAT_COLOR = 8**

网格阵列包含颜色。

  • **ARRAY_FORMAT_TEX_UV = 16**

网格阵列包含UV。

  • **ARRAY_FORMAT_TEX_UV2 = 32**

网格阵列包含第二个UV。

  • **ARRAY_FORMAT_BONES = 64**

网格阵列包含骨骼。

  • **ARRAY_FORMAT_WEIGHTS = 128**

网格阵列包含骨骼权重。

  • **ARRAY_FORMAT_INDEX = 256**

网格阵列使用索引。

  • **ARRAY_COMPRESS_BASE = 9**

在内部用于计算其他ARRAY_COMPRESS _ *枚举值。

  • **ARRAY_COMPRESS_VERTEX = 512**

用于标记压缩(半浮点)顶点数组的标志。

  • **ARRAY_COMPRESS_NORMAL = 1024**

用于标记压缩(半浮点)常规数组的标志。

  • **ARRAY_COMPRESS_TANGENT = 2048**

用于标记压缩(半浮点)切线数组的标志。

  • **ARRAY_COMPRESS_COLOR = 4096**

用于标记压缩(半浮点)颜色数组的标志。

  • **ARRAY_COMPRESS_TEX_UV = 8192**

用于标记压缩(半浮点)UV坐标数组的标志。

  • **ARRAY_COMPRESS_TEX_UV2 = 16384**

用于将压缩的(半浮点)UV坐标数组标记为第二个UV坐标的标志。

  • **ARRAY_COMPRESS_BONES = 32768**

用于标记压缩的骨骼阵列的标志。

  • **ARRAY_COMPRESS_WEIGHTS = 65536**

用于标记压缩(半浮点)权重数组的标志。

  • **ARRAY_COMPRESS_INDEX = 131072**

用于标记压缩索引数组的标志。

  • **ARRAY_FLAG_USE_2D_VERTICES = 262144**

用于标记数组包含2D顶点的标志。

  • **ARRAY_FLAG_USE_16_BIT_BONES = 524288**

用于标记数组使用16位骨骼而不是8位骨骼的标志。

  • **ARRAY_COMPRESS_DEFAULT = 97280**

用于设置标志ARRAY_COMPRESS_VERTEXARRAY_COMPRESS_NORMALARRAY_COMPRESS_TANGENTARRAY_COMPRESS_COLORARRAY_COMPRESS_TEX_UVARRAY_COMPRESS_TEX_UV2ARRAY_COMPRESS_WEPRESS


enum ArrayType:

  • **ARRAY_VERTEX = 0**

顶点数组。

  • **ARRAY_NORMAL = 1**

法线数组。

  • **ARRAY_TANGENT = 2**

切线数组作为浮点数组,每个切线4个浮点。

  • **ARRAY_COLOR = 3**

颜色数组。

  • **ARRAY_TEX_UV = 4**

UV坐标数组。

  • **ARRAY_TEX_UV2 = 5**

第二组UV坐标的数组。

  • **ARRAY_BONES = 6**

骨骼数据数组。

  • **ARRAY_WEIGHTS = 7**

权重数组。

  • **ARRAY_INDEX = 8**

索引数组。

  • **ARRAY_MAX = 9**

表示ArrayType枚举的大小。


常量

成员说明

  • Vector2 lightmap_size_hint
DefaultVector2( 0, 0 )
setterset_lightmap_size_hint(value)
getterget_lightmap_size_hint

方法说明

  • create_convex_shape create_convex_shape() const

从网格中计算ConvexPolygonShape


  • create_outline create_outline(margin: float) const

以原始网格的定义偏移(边距)计算轮廓网格。

注意:此方法通常以相反的顺序返回顶点(例如,顺时针旋转到逆时针旋转)。


  • create_trimesh_shape create_trimesh_shape() const

从网格计算ConcavePolygonShape


  • generate_triangle_mesh generate_triangle_mesh() const

从网格生成一个TriangleMesh


  • get_aabb get_aabb() const

返回包围此网格的最小AABB。不受custom_aabb影响

注意:仅对ArrayMeshPrimitiveMesh实现。


  • get_faces get_faces() const

返回组成网格面的所有顶点。


  • get_surface_count get_surface_count() const

返回Mesh保留的曲面数量。


  • surface_get_arrays surface_get_arrays(surf_idx: int) const

返回组成请求曲面的顶点,法线,uvs等的数组(请参见ArrayMesh.add_surface_from_arrays)。


  • surface_get_blend_shape_arrays surface_get_blend_shape_arrays(surf_idx: int) const

返回所需曲面的混合形状数组。


  • surface_get_material surface_get_material(surf_idx: int) const

返回给定曲面中的Material


  • surface_set_material surface_set_material(surf_idx: int, material: Material)

设置给定表面的Material。表面将利用材质进行渲染。