Mesh¶
Inherits: Resource < Reference < Object
Inherited By: ArrayMesh, PrimitiveMesh
A Resource that contains vertex array-based geometry.
Description¶
Mesh is a type of Resource that contains vertex array-based geometry, divided in surfaces. Each surface contains a completely separate array and a material used to draw it. Design wise, a mesh with multiple surfaces is preferred to a single surface, because objects created in 3D editing software commonly contain multiple materials.
Tutorials¶
Properties¶
|
Methods¶
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 ) |
Enumerations¶
enum PrimitiveType:
PrimitiveType PRIMITIVE_POINTS = 0
Render array as points (one vertex equals one point).
PrimitiveType PRIMITIVE_LINES = 1
Render array as lines (every two vertices a line is created).
PrimitiveType PRIMITIVE_LINE_STRIP = 2
Render array as line strip.
PrimitiveType PRIMITIVE_LINE_LOOP = 3
Render array as line loop (like line strip, but closed).
PrimitiveType PRIMITIVE_TRIANGLES = 4
Render array as triangles (every three vertices a triangle is created).
PrimitiveType PRIMITIVE_TRIANGLE_STRIP = 5
Render array as triangle strips.
PrimitiveType PRIMITIVE_TRIANGLE_FAN = 6
Render array as triangle fans.
enum BlendShapeMode:
BlendShapeMode BLEND_SHAPE_MODE_NORMALIZED = 0
Blend shapes are normalized.
BlendShapeMode BLEND_SHAPE_MODE_RELATIVE = 1
Blend shapes are relative to base weight.
enum ArrayFormat:
ArrayFormat ARRAY_FORMAT_VERTEX = 1
Mesh array contains vertices. All meshes require a vertex array so this should always be present.
ArrayFormat ARRAY_FORMAT_NORMAL = 2
Mesh array contains normals.
ArrayFormat ARRAY_FORMAT_TANGENT = 4
Mesh array contains tangents.
ArrayFormat ARRAY_FORMAT_COLOR = 8
Mesh array contains colors.
ArrayFormat ARRAY_FORMAT_TEX_UV = 16
Mesh array contains UVs.
ArrayFormat ARRAY_FORMAT_TEX_UV2 = 32
Mesh array contains second UV.
ArrayFormat ARRAY_FORMAT_BONES = 64
Mesh array contains bones.
ArrayFormat ARRAY_FORMAT_WEIGHTS = 128
Mesh array contains bone weights.
ArrayFormat ARRAY_FORMAT_INDEX = 256
Mesh array uses indices.
ArrayFormat ARRAY_COMPRESS_BASE = 9
Used internally to calculate other ARRAY_COMPRESS_*
enum values. Do not use.
ArrayFormat ARRAY_COMPRESS_VERTEX = 512
Flag used to mark a compressed (half float) vertex array.
ArrayFormat ARRAY_COMPRESS_NORMAL = 1024
Flag used to mark a compressed (half float) normal array.
ArrayFormat ARRAY_COMPRESS_TANGENT = 2048
Flag used to mark a compressed (half float) tangent array.
ArrayFormat ARRAY_COMPRESS_COLOR = 4096
Flag used to mark a compressed (half float) color array.
Note: If this flag is enabled, vertex colors will be stored as 8-bit unsigned integers. This will clamp overbright colors to Color(1, 1, 1, 1)
and reduce colors' precision.
ArrayFormat ARRAY_COMPRESS_TEX_UV = 8192
Flag used to mark a compressed (half float) UV coordinates array.
ArrayFormat ARRAY_COMPRESS_TEX_UV2 = 16384
Flag used to mark a compressed (half float) UV coordinates array for the second UV coordinates.
ArrayFormat ARRAY_COMPRESS_BONES = 32768
Flag used to mark a compressed bone array.
ArrayFormat ARRAY_COMPRESS_WEIGHTS = 65536
Flag used to mark a compressed (half float) weight array.
ArrayFormat ARRAY_COMPRESS_INDEX = 131072
Flag used to mark a compressed index array.
ArrayFormat ARRAY_FLAG_USE_2D_VERTICES = 262144
Flag used to mark that the array contains 2D vertices.
ArrayFormat ARRAY_FLAG_USE_16_BIT_BONES = 524288
Flag used to mark that the array uses 16-bit bones instead of 8-bit.
ArrayFormat ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION = 2097152
Flag used to mark that the array uses an octahedral representation of normal and tangent vectors rather than cartesian.
ArrayFormat ARRAY_FLAG_USE_VERTEX_CACHE_OPTIMIZATION = 4194304
Flag used to request vertex cache optimization.
This re-orders indices in order to make best use of GPU vertex caches, which can improve rendering performance particularly with high poly models.
ArrayFormat ARRAY_COMPRESS_DEFAULT = 2194432
Used to set flags ARRAY_COMPRESS_VERTEX, ARRAY_COMPRESS_NORMAL, ARRAY_COMPRESS_TANGENT, ARRAY_COMPRESS_COLOR, ARRAY_COMPRESS_TEX_UV, ARRAY_COMPRESS_TEX_UV2, ARRAY_COMPRESS_WEIGHTS, and ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION quickly.
Note: Since this flag enables ARRAY_COMPRESS_COLOR, vertex colors will be stored as 8-bit unsigned integers. This will clamp overbright colors to Color(1, 1, 1, 1)
and reduce colors' precision.
enum ArrayType:
ArrayType ARRAY_VERTEX = 0
Array of vertices.
ArrayType ARRAY_NORMAL = 1
Array of normals.
ArrayType ARRAY_TANGENT = 2
Array of tangents as an array of floats, 4 floats per tangent.
ArrayType ARRAY_COLOR = 3
Array of colors.
ArrayType ARRAY_TEX_UV = 4
Array of UV coordinates.
ArrayType ARRAY_TEX_UV2 = 5
Array of second set of UV coordinates.
ArrayType ARRAY_BONES = 6
Array of bone data.
ArrayType ARRAY_WEIGHTS = 7
Array of weights.
ArrayType ARRAY_INDEX = 8
Array of indices.
ArrayType ARRAY_MAX = 9
Represents the size of the ArrayType enum.
Property Descriptions¶
Vector2 lightmap_size_hint = Vector2( 0, 0 )
Sets a hint to be used for lightmap resolution in BakedLightmap. Overrides BakedLightmap.default_texels_per_unit.
Method Descriptions¶
Shape create_convex_shape ( bool clean=true, bool simplify=false ) const
Calculate a ConvexPolygonShape from the mesh.
If clean
is true
(default), duplicate and interior vertices are removed automatically. You can set it to false
to make the process faster if not needed.
If simplify
is true
, the geometry can be further simplified to reduce the amount of vertices. Disabled by default.
Mesh create_outline ( float margin ) const
Calculate an outline mesh at a defined offset (margin) from the original mesh.
Note: This method typically returns the vertices in reverse order (e.g. clockwise to counterclockwise).
Shape create_trimesh_shape ( ) const
Calculate a ConcavePolygonShape from the mesh.
TriangleMesh generate_triangle_mesh ( ) const
Generate a TriangleMesh from the mesh. Considers only surfaces using one of these primitive types: PRIMITIVE_TRIANGLES, PRIMITIVE_TRIANGLE_STRIP, or PRIMITIVE_TRIANGLE_FAN.
AABB get_aabb ( ) const
Returns the smallest AABB enclosing this mesh in local space. Not affected by custom_aabb
. See also VisualInstance.get_transformed_aabb.
Note: This is only implemented for ArrayMesh and PrimitiveMesh.
PoolVector3Array get_faces ( ) const
Returns all the vertices that make up the faces of the mesh. Each three vertices represent one triangle.
int get_surface_count ( ) const
Returns the amount of surfaces that the Mesh holds.
Array surface_get_arrays ( int surf_idx ) const
Returns the arrays for the vertices, normals, uvs, etc. that make up the requested surface (see ArrayMesh.add_surface_from_arrays).
Array surface_get_blend_shape_arrays ( int surf_idx ) const
Returns the blend shape arrays for the requested surface.
Material surface_get_material ( int surf_idx ) const
Returns a Material in a given surface. Surface is rendered using this material.
void surface_set_material ( int surf_idx, Material material )
Sets a Material for a given surface. Surface will be rendered using this material.