Mesh
Inherits: Resource < Reference < Object
Inherited By: ArrayMesh, PrimitiveMesh
一种包含基于顶点数组的几何资源。
描述
网格是一种包含了基于顶点数组的几何资源。网格被分为各种平面,每一个平面包含了一个完整的、单独的顶点数组和材质用来绘制它。通过明智的设计,一个由多个面组成的网格胜过单个面的,这是因为在3D编辑软件中,一个物体通常包含多种材质。
教程
属性
|
方法
create_convex_shape ( bool clean=true, bool simplify=false ) const | |
create_outline ( float margin ) const | |
create_trimesh_shape ( ) const | |
generate_triangle_mesh ( ) const | |
get_aabb ( ) const | |
get_faces ( ) const | |
get_surface_count ( ) const | |
surface_get_arrays ( int surf_idx ) const | |
surface_get_blend_shape_arrays ( int surf_idx ) const | |
surface_get_material ( int surf_idx ) const | |
void | surface_set_material ( int surf_idx, 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 —- 曾经用于标记压缩(半精度浮点)法向数组的 Flag。
ARRAY_COMPRESS_TANGENT = 2048 —- 曾经用于标记压缩(半精度浮点)切向数组的Flag。
ARRAY_COMPRESS_COLOR = 4096 —- 曾用于标记压缩(半精度浮点)颜色数组的Flag。
ARRAY_COMPRESS_TEX_UV = 8192 —- 曾用于标记压缩(半精度浮点)UV 坐标数组的 Flag。
ARRAY_COMPRESS_TEX_UV2 = 16384 —- 曾用于标记第二套UV坐标的压缩(半精度浮点)UV坐标数组的Flag。
ARRAY_COMPRESS_BONES = 32768 —- 用于标记压缩骨骼数组的标志。
ARRAY_COMPRESS_WEIGHTS = 65536 —- 用于标记压缩(半精度浮点)权重数组的标志。
ARRAY_COMPRESS_INDEX = 131072 —- 曾用于标记压缩索引数组的Flag。
ARRAY_FLAG_USE_2D_VERTICES = 262144 —- 曾用于标记包含2D顶点的数组的Flag。
ARRAY_FLAG_USE_16_BIT_BONES = 524288 —- 用于标记数组使用16位骨骼而不是8位的标志。
ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION = 2097152 —- 标志用于标记数组使用法线和切线向量的八面表示法,而不是笛卡尔式。
ARRAY_COMPRESS_DEFAULT = 2194432 —- 用于快速设置标志ARRAY_COMPRESS_VERTEX, ARRAY_COMPRESS_NORMAL, ARRAY_COMPRESS_TANGENT, ARRAY_COMPRESS_COLOR, ARRAY_COMPRESS_TEX_UV, ARRAY_COMPRESS_TEX_UV2 , ARRAY_COMPRESS_WEIGHTS, 和ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION 。
enum ArrayType:
ARRAY_VERTEX = 0 —- 顶点数组。
ARRAY_NORMAL = 1 —- 法线数组。
ARRAY_TANGENT = 2 —- 切向数组。每一个切向数据由四个float变量描述。
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 |
|
Setter | set_lightmap_size_hint(value) |
Getter | get_lightmap_size_hint() |
设置提示,用于BakedLightmap中的光照贴图分辨率。重写BakedLightmap.default_texels_per_unit。
方法说明
从网格中计算出 ConvexPolygonShape 。
如果 clean
是 true
(默认),重复的和内部的顶点会被自动移除。你可以把它设为 false
来使这个过程更快,如果不需要的话。
如果simplify
是true
,可以进一步简化几何体以减少顶点的数量。默认情况下是禁用的。
以一定的offset(边距),计算出该网格的外轮廓。
Note: 这个方法实际上反序返回顶点(例如输入顺时针,返回逆时针)。
- Shape create_trimesh_shape ( ) const
从网格中计算出ConcavePolygonShape。
- TriangleMesh generate_triangle_mesh ( ) const
从网格生成TriangleMesh。
- AABB get_aabb ( ) const
返回局部空间中包围这个网格的最小的AABB。不受custom_aabb
的影响。参阅 VisualInstance.get_transformed_aabb。
注意:这只对ArrayMesh和PrimitiveMesh实现。
- PoolVector3Array get_faces ( ) const
返回所有在这个网格中,构成面的顶点。每三个顶点代表一个三角形。
- int get_surface_count ( ) const
返回该网格的面数。
返回所有组成面所需的东西构成的数组的数组,例如顶点,法向,UV等。(参阅ArrayMesh.add_surface_from_arrays)。
返回所需面的混合形状数组。
返回给定面的Material材质。面将由该材质来渲染。
设置给定面的Material材质。该面将会使用此材质渲染。