跳转至

Mesh

继承

Resource

简要描述

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

描述

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

成员

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

方法

返回值类型 方法名称
Shape create_convex_shape() const
Mesh create_outline(margin: float) const
Shape create_trimesh_shape() const
TriangleMesh generate_triangle_mesh() const
AABB get_aabb() const
PoolVector3Array get_faces() const
int get_surface_count() const
Array surface_get_arrays(surf_idx: int) const
Array surface_get_blend_shape_arrays(surf_idx: int) const
Material surface_get_material(surf_idx: int) const
void surface_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
Default Vector2( 0, 0 )
setter set_lightmap_size_hint(value)
getter get_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。表面将利用材质进行渲染。