Mesh
继承
简要描述
一个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。表面将利用材质进行渲染。