Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Mesh
Hérite de : Resource < RefCounted < Object
Hérité par : ArrayMesh, ImmediateMesh, PlaceholderMesh, PrimitiveMesh
Une Resource qui contient une géométrie à base d'un tableau de sommets.
Description
Mesh (litt. "Maillage") est un type de Resource qui contient de la géométrie à base de tableaux de sommets, divisé en surfaces. Chaque surface contient un tableau complètement séparé et un matériau utilisé pour le dessiner. Au niveau du design, un maillage avec plusieurs surfaces est préféré à une seule surface, car les objets créés dans des logiciels d'édition 3D contiennent généralement plusieurs matériaux. Le nombre maximal de surfaces par maillage vaut RenderingServer.MAX_MESH_SURFACES.
Tutoriels
Propriétés
|
Méthodes
_get_aabb() virtual required const |
|
_get_blend_shape_count() virtual required const |
|
_get_blend_shape_name(index: int) virtual required const |
|
_get_surface_count() virtual required const |
|
void |
_set_blend_shape_name(index: int, name: StringName) virtual required |
_surface_get_array_index_len(index: int) virtual required const |
|
_surface_get_array_len(index: int) virtual required const |
|
_surface_get_arrays(index: int) virtual required const |
|
_surface_get_blend_shape_arrays(index: int) virtual required const |
|
_surface_get_format(index: int) virtual required const |
|
_surface_get_lods(index: int) virtual required const |
|
_surface_get_material(index: int) virtual required const |
|
_surface_get_primitive_type(index: int) virtual required const |
|
void |
_surface_set_material(index: int, material: Material) virtual required |
create_convex_shape(clean: bool = true, simplify: bool = false) const |
|
create_outline(margin: float) const |
|
create_placeholder() const |
|
create_trimesh_shape() const |
|
generate_triangle_mesh() const |
|
get_aabb() const |
|
get_faces() const |
|
get_surface_count() const |
|
surface_get_arrays(surf_idx: int) const |
|
surface_get_blend_shape_arrays(surf_idx: int) const |
|
surface_get_material(surf_idx: int) const |
|
void |
surface_set_material(surf_idx: int, material: Material) |
Énumérations
enum PrimitiveType: 🔗
PrimitiveType PRIMITIVE_POINTS = 0
Rend le tableau avec des points (un sommet affiche un point).
PrimitiveType PRIMITIVE_LINES = 1
Rend le tableau en ligne (une ligne est créée tous les deux sommets).
PrimitiveType PRIMITIVE_LINE_STRIP = 2
Fait le rendu du tableau comme une suite de lignes.
PrimitiveType PRIMITIVE_TRIANGLES = 3
Rend le tableau en triangle (un triangle est créée tous les trois sommets).
PrimitiveType PRIMITIVE_TRIANGLE_STRIP = 4
Fait le rendu du tableau comme une suite de triangles.
enum ArrayType: 🔗
ArrayType ARRAY_VERTEX = 0
Un PackedVector3Array, PackedVector2Array ou Array avec la position des sommets.
ArrayType ARRAY_NORMAL = 1
PackedVector3Array des normales des sommets.
Note : Le tableau doit être composé de vecteurs normaux, sinon ils seront normalisés par le moteur, causant potentiellement des divergences visuels.
ArrayType ARRAY_TANGENT = 2
PackedFloat32Array des tangentes des sommets. Chaque élément est un groupe de 4 flottants, les 3 premiers déterminent la tangente, et le dernier la direction binormale valant -1 ou 1.
ArrayType ARRAY_COLOR = 3
Le PackedColorArray des couleurs des sommets.
ArrayType ARRAY_TEX_UV = 4
Le PackedVector2Array pour les coordonnées UV.
ArrayType ARRAY_TEX_UV2 = 5
PackedVector2Array pour les secondes coordonnées UV.
ArrayType ARRAY_CUSTOM0 = 6
Contient le canal de couleur personnalisé 0. PackedByteArray si (format >> Mesh.ARRAY_FORMAT_CUSTOM0_SHIFT) & Mesh.ARRAY_FORMAT_CUSTOM_MASK vaut ARRAY_CUSTOM_RGBA8_UNORM, ARRAY_CUSTOM_RGBA8_SNORM, ARRAY_CUSTOM_RG_HALF, ou ARRAY_CUSTOM_RGBA_HALF. PackedFloat32Array sinon.
ArrayType ARRAY_CUSTOM1 = 7
Contient le canal de couleur personnalisé 1. PackedByteArray si (format >> Mesh.ARRAY_FORMAT_CUSTOM0_SHIFT) & Mesh.ARRAY_FORMAT_CUSTOM_MASK vaut ARRAY_CUSTOM_RGBA8_UNORM, ARRAY_CUSTOM_RGBA8_SNORM, ARRAY_CUSTOM_RG_HALF, ou ARRAY_CUSTOM_RGBA_HALF. PackedFloat32Array sinon.
ArrayType ARRAY_CUSTOM2 = 8
Contient le canal de couleur personnalisé 2. PackedByteArray si (format >> Mesh.ARRAY_FORMAT_CUSTOM0_SHIFT) & Mesh.ARRAY_FORMAT_CUSTOM_MASK vaut ARRAY_CUSTOM_RGBA8_UNORM, ARRAY_CUSTOM_RGBA8_SNORM, ARRAY_CUSTOM_RG_HALF, ou ARRAY_CUSTOM_RGBA_HALF. PackedFloat32Array sinon.
ArrayType ARRAY_CUSTOM3 = 9
Contient le canal de couleur personnalisé 3. PackedByteArray si (format >> Mesh.ARRAY_FORMAT_CUSTOM0_SHIFT) & Mesh.ARRAY_FORMAT_CUSTOM_MASK vaut ARRAY_CUSTOM_RGBA8_UNORM, ARRAY_CUSTOM_RGBA8_SNORM, ARRAY_CUSTOM_RG_HALF, ou ARRAY_CUSTOM_RGBA_HALF. PackedFloat32Array sinon.
ArrayType ARRAY_BONES = 10
PackedFloat32Array ou PackedInt32Array des indices d'os. Contient soit 4 soit 8 nombres par sommet selon la présence du drapeau ARRAY_FLAG_USE_8_BONE_WEIGHTS.
ArrayType ARRAY_WEIGHTS = 11
PackedFloat32Array ou PackedFloat64Array de poids d'os dans l'intervalle 0.0 à 1.0 (inclusifs). Contient soit 4 soit 8 nombres par sommet selon la présence du drapeau ARRAY_FLAG_USE_8_BONE_WEIGHTS.
ArrayType ARRAY_INDEX = 12
PackedInt32Array d'entiers utilisés comme indices référençant des sommets, des couleurs, des normales, des tangentes et des textures. Tous ces tableaux doivent avoir le même nombre d'éléments que le tableau des sommets. Aucun index ne peut dépasser la taille du tableau des sommets. Lorsque ce tableau d'index est présent, il met la fonction en "mode index", où l'index sélectionne le i-ième sommet, normale, tangente, couleur, UV, etc. Cela signifie que si vous voulez avoir des normales ou des couleurs différentes le long d'une arête, vous devez dupliquer les sommets.
Pour les triangles, le tableau d'index est interprété comme des triplets, référençant les sommets de chaque triangle. Pour les lignes, le tableau d'index contient des paires indiquant le point de début et de fin de chaque ligne.
ArrayType ARRAY_MAX = 13
Représente la taille de l’enum ArrayType.
enum ArrayCustomFormat: 🔗
ArrayCustomFormat ARRAY_CUSTOM_RGBA8_UNORM = 0
Indique que ce canal personnalisé contient des couleurs sur des octets normalisés non signés de 0 à 1, encodés en tant que PackedByteArray.
ArrayCustomFormat ARRAY_CUSTOM_RGBA8_SNORM = 1
Indique que ce canal personnalisé contient des couleurs sur des octets normalisés de -1 à 1, encodés en tant que PackedByteArray.
ArrayCustomFormat ARRAY_CUSTOM_RG_HALF = 2
Indique que ce canal personnalisé contient des couleurs sur des flottants en demi-précision, encodés en tant que PackedByteArray. Seuls les canaux rouge et vert sont utilisés.
ArrayCustomFormat ARRAY_CUSTOM_RGBA_HALF = 3
Indique que ce canal personnalisé contient des couleurs sur des flottants en demi-précision, encodés en tant que PackedByteArray.
ArrayCustomFormat ARRAY_CUSTOM_R_FLOAT = 4
Indique que ce canal personnalisé contient des couleurs sur des flottants complets, dans un PackedFloat32Array. Seul le canal rouge est utilisé.
ArrayCustomFormat ARRAY_CUSTOM_RG_FLOAT = 5
Indique que ce canal personnalisé contient des couleurs sur des flottants complets, dans un PackedFloat32Array. Seul les canaux rouge et vert sont utilisés.
ArrayCustomFormat ARRAY_CUSTOM_RGB_FLOAT = 6
Indique que ce canal personnalisé contient des couleurs sur des flottants complets, dans un PackedFloat32Array. Seul les canaux rouge, vert et bleu sont utilisés.
ArrayCustomFormat ARRAY_CUSTOM_RGBA_FLOAT = 7
Indique que ce canal personnalisé contient des couleurs sur des flottants complets, dans un PackedFloat32Array.
ArrayCustomFormat ARRAY_CUSTOM_MAX = 8
Représente la taille de l'énumération ArrayCustomFormat.
flags ArrayFormat: 🔗
ArrayFormat ARRAY_FORMAT_VERTEX = 1
Le tableau du maillage contient des sommets. Tous les maillages nécessitent un tableau de sommets donc ce tableau devrait toujours être présent.
ArrayFormat ARRAY_FORMAT_NORMAL = 2
Le tableau du maillage contient des normales.
ArrayFormat ARRAY_FORMAT_TANGENT = 4
Le tableau du maillage contient des tangentes.
ArrayFormat ARRAY_FORMAT_COLOR = 8
Le tableau du maillage contient des couleurs.
ArrayFormat ARRAY_FORMAT_TEX_UV = 16
Le tableau du maillage contient des UVs.
ArrayFormat ARRAY_FORMAT_TEX_UV2 = 32
Le tableau du maillage contient des UV secondaires.
ArrayFormat ARRAY_FORMAT_CUSTOM0 = 64
Le tableau du maillage contient un canal personnalisé d'index 0.
ArrayFormat ARRAY_FORMAT_CUSTOM1 = 128
Le tableau du maillage contient un canal personnalisé d'index 1.
ArrayFormat ARRAY_FORMAT_CUSTOM2 = 256
Le tableau du maillage contient un canal personnalisé d'index 2.
ArrayFormat ARRAY_FORMAT_CUSTOM3 = 512
Le tableau du maillage contient un canal personnalisé d'index 3.
ArrayFormat ARRAY_FORMAT_BONES = 1024
Un maillage de points contient des os.
ArrayFormat ARRAY_FORMAT_WEIGHTS = 2048
Un maillage de points contient des poids d'os.
ArrayFormat ARRAY_FORMAT_INDEX = 4096
Le tableau de maillage utilise des indices.
ArrayFormat ARRAY_FORMAT_BLEND_SHAPE_MASK = 7
Mask of mesh channels permitted in blend shapes.
ArrayFormat ARRAY_FORMAT_CUSTOM_BASE = 13
Shift of first custom channel.
ArrayFormat ARRAY_FORMAT_CUSTOM_BITS = 3
Nombre de bits de format par canal personnalisé. Voir ArrayCustomFormat.
ArrayFormat ARRAY_FORMAT_CUSTOM0_SHIFT = 13
Amount to shift ArrayCustomFormat for custom channel index 0.
ArrayFormat ARRAY_FORMAT_CUSTOM1_SHIFT = 16
Amount to shift ArrayCustomFormat for custom channel index 1.
ArrayFormat ARRAY_FORMAT_CUSTOM2_SHIFT = 19
Amount to shift ArrayCustomFormat for custom channel index 2.
ArrayFormat ARRAY_FORMAT_CUSTOM3_SHIFT = 22
Amount to shift ArrayCustomFormat for custom channel index 3.
ArrayFormat ARRAY_FORMAT_CUSTOM_MASK = 7
Mask of custom format bits per custom channel. Must be shifted by one of the SHIFT constants. See ArrayCustomFormat.
ArrayFormat ARRAY_COMPRESS_FLAGS_BASE = 25
Shift of first compress flag. Compress flags should be passed to ArrayMesh.add_surface_from_arrays() and SurfaceTool.commit().
ArrayFormat ARRAY_FLAG_USE_2D_VERTICES = 33554432
Un marqueur pour spécifier que ce tableau contient des sommets 2D.
ArrayFormat ARRAY_FLAG_USE_DYNAMIC_UPDATE = 67108864
Drapeau utilisé pour marquer que les données du maillage utiliseront GL_DYNAMIC_DRAW sur GLES. Inutilisé sur Vulkan.
ArrayFormat ARRAY_FLAG_USE_8_BONE_WEIGHTS = 134217728
Flag used to mark that the mesh contains up to 8 bone influences per vertex. This flag indicates that ARRAY_BONES and ARRAY_WEIGHTS elements will have double length.
ArrayFormat ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY = 268435456
Drapeau utilisé pour marquer que le maillage ne contient intentionnellement aucun tableau de sommets.
ArrayFormat ARRAY_FLAG_COMPRESS_ATTRIBUTES = 536870912
Flag used to mark that a mesh is using compressed attributes (vertices, normals, tangents, UVs). When this form of compression is enabled, vertex positions will be packed into an RGBA16UNORM attribute and scaled in the vertex shader. The normal and tangent will be packed into an RG16UNORM representing an axis, and a 16-bit float stored in the A-channel of the vertex. UVs will use 16-bit normalized floats instead of full 32-bit signed floats. When using this compression mode you must use either vertices, normals, and tangents or only vertices. You cannot use normals without tangents. Importers will automatically enable this compression if they can.
enum BlendShapeMode: 🔗
BlendShapeMode BLEND_SHAPE_MODE_NORMALIZED = 0
Les blend shapes sont normalisées.
BlendShapeMode BLEND_SHAPE_MODE_RELATIVE = 1
Les blend shapes sont relatives au poids de base.
Descriptions des propriétés
Vector2i lightmap_size_hint = Vector2i(0, 0) 🔗
Définit un indice à utiliser pour la résolution de la lightmap.
Descriptions des méthodes
AABB _get_aabb() virtual required const 🔗
Méthode virtuelle pour redéfinir la AABB pour une classe personnalisée étendant Mesh.
int _get_blend_shape_count() virtual required const 🔗
Méthode virtuelle pour redéfinir le nombre de blend shapes pour une classe personnalisée étendant Mesh.
StringName _get_blend_shape_name(index: int) virtual required const 🔗
Méthode virtuelle pour redéfinir la récupération du nom des blend shapes pour une classe personnalisée étendant Mesh.
int _get_surface_count() virtual required const 🔗
Méthode virtuelle pour redéfinir le nombre de surfaces pour une classe personnalisée étendant Mesh.
void _set_blend_shape_name(index: int, name: StringName) virtual required 🔗
Méthode virtuelle pour redéfinir les noms des blend shapes pour une classe personnalisée étendant Mesh.
int _surface_get_array_index_len(index: int) virtual required const 🔗
Virtual method to override the surface array index length for a custom class extending Mesh.
int _surface_get_array_len(index: int) virtual required const 🔗
Méthode virtuelle pour redéfinir la longueur du tableau d'une surface pour une classe personnalisée étendant Mesh.
Array _surface_get_arrays(index: int) virtual required const 🔗
Méthode virtuelle pour redéfinir le tableau des surfaces pour une classe personnalisée étendant Mesh.
Array[Array] _surface_get_blend_shape_arrays(index: int) virtual required const 🔗
Méthode virtuelle pour redéfinir les tableaux des blend shapes pour une classe personnalisée étendant Mesh.
int _surface_get_format(index: int) virtual required const 🔗
Méthode virtuelle pour redéfinir le format d'une surface pour une classe personnalisée étendant Mesh.
Dictionary _surface_get_lods(index: int) virtual required const 🔗
Méthode virtuelle pour redéfinir les LODs d'une surface pour une classe personnalisée étendant Mesh.
Material _surface_get_material(index: int) virtual required const 🔗
Méthode virtuelle pour redéfinir le matériau d'une surface pour une classe personnalisée étendant Mesh.
int _surface_get_primitive_type(index: int) virtual required const 🔗
Méthode virtuelle pour redéfinir le type de primitive d'une surface pour une classe personnalisée étendant Mesh.
void _surface_set_material(index: int, material: Material) virtual required 🔗
Méthode virtuelle pour redéfinir le paramètre d'un matériau material à l'index donné pour une classe personnalisée étendant Mesh.
ConvexPolygonShape3D create_convex_shape(clean: bool = true, simplify: bool = false) const 🔗
Calcule un ConvexPolygonShape3D depuis le maillage.
Si clean vaut true (par défaut), les sommets intérieurs et en double sont automatiquement supprimés. Vous pouvez le définir à false pour rendre le processus plus rapide si ce n'est pas nécessaire.
Si simplify vaut true, la géométrie peut être encore plus simplifiée pour réduire la quantité de sommets. Désactivé par défaut.
Mesh create_outline(margin: float) const 🔗
Calcule un maillage de contour avec un décalage défini (marge) du maillage d'origine.
Note : Cette méthode renvoie généralement les sommets en ordre inverse (par ex., du sens horaire au sens anti-horaire).
Resource create_placeholder() const 🔗
Crée une version placeholder de cette ressource (PlaceholderMesh).
ConcavePolygonShape3D create_trimesh_shape() const 🔗
Calcule une ConcavePolygonShape3D à partir du maillage.
TriangleMesh generate_triangle_mesh() const 🔗
Génère un TriangleMesh depuis le maillage. Considère seulement les surfaces utilisant un de ces types primitifs : PRIMITIVE_TRIANGLES, PRIMITIVE_TRIANGLE_STRIP.
Renvoie la plus petite AABB englobant ce maillage dans l'espace local. Non affecté par custom_aabb.
Note : Ceci n'est implémenté que pour ArrayMesh et PrimitiveMesh.
PackedVector3Array get_faces() const 🔗
Renvoie tous les sommets qui composent les faces du maillage. Chaque triplet de sommets représente un triangle.
int get_surface_count() const 🔗
Renvoie le nombre de surfaces que le Mesh contient. Ceci est équivalent à MeshInstance3D.get_surface_override_material_count().
Array surface_get_arrays(surf_idx: int) const 🔗
Renvoie les tableaux pour les sommets, les normales, les UVs, etc. qui composent la surface demandée (voir ArrayMesh.add_surface_from_arrays()).
Array[Array] surface_get_blend_shape_arrays(surf_idx: int) const 🔗
Renvoie les tableaux de blend shape pour la surface demandée.
Material surface_get_material(surf_idx: int) const 🔗
Renvoie un Material dans une surface donnée. La surface est rendue en utilisant ce matériau.
Note : Cela renvoie le matériau dans la ressource Mesh, pas le Material associé aux propriétés de redéfinition du matériau de surface du MeshInstance3D. Pour obtenir le Material associé aux propriétés de redéfinition du matériau de surface du MeshInstance3D, utilisez plutôt MeshInstance3D.get_surface_override_material().
void surface_set_material(surf_idx: int, material: Material) 🔗
Définit un Material pour une surface donnée. La surface sera rendue en utilisant ce matériel.
Note : Cela attribue le matériau dans la ressource Mesh, pas le Material associé aux propriétés de redéfinition du matériau de surface du MeshInstance3D. Pour définir le Material associé aux propriétés de redéfinition du matériau de surface du MeshInstance3D, utilisez plutôt MeshInstance3D.set_surface_override_material().