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_VERTEX,ARRAY_COMPRESS_NORMAL,ARRAY_COMPRESS_TANGENT,ARRAY_COMPRESS_COLOR,ARRAY_COMPRESS_TEX_UV,ARRAY_COMPRESS_TEX_UV2和ARRAY_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
影响
**注意:**仅对ArrayMesh和PrimitiveMesh实现。
- 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。表面将利用材质进行渲染。