:github_url: hide .. _class_Mesh: Mesh ==== **Eredita:** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` **Ereditato da:** :ref:`ArrayMesh`, :ref:`ImmediateMesh`, :ref:`PlaceholderMesh`, :ref:`PrimitiveMesh` Una :ref:`Resource` che contiene una geometria basata su array di vertici. .. rst-class:: classref-introduction-group Descrizione ---------------------- La mesh è un tipo di :ref:`Resource` che contiene una geometria basata su array di vertici, divisa in *superfici*. Ogni superficie contiene un array completamente separato e un materiale utilizzato per disegnarlo. In termini di design, una mesh con più superfici è preferita a una singola superficie, perché gli oggetti creati nel software di editing 3D contengono spesso più materiali. Il numero massimo di superfici per mesh è :ref:`RenderingServer.MAX_MESH_SURFACES`. .. rst-class:: classref-introduction-group Tutorial ---------------- - `Demo di tester di materiali 3D `__ - `Demo di personaggio cinematico 3D `__ - `Demo di gioco piattaforme 3D `__ - `Demo di sparatutto in terza persona (TPS) `__ .. rst-class:: classref-reftable-group Proprietà ------------------ .. table:: :widths: auto +---------------------------------+-------------------------------------------------------------------+--------------------+ | :ref:`Vector2i` | :ref:`lightmap_size_hint` | ``Vector2i(0, 0)`` | +---------------------------------+-------------------------------------------------------------------+--------------------+ .. rst-class:: classref-reftable-group Metodi ------------ .. table:: :widths: auto +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`AABB` | :ref:`_get_aabb`\ (\ ) |virtual| |required| |const| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`_get_blend_shape_count`\ (\ ) |virtual| |required| |const| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`StringName` | :ref:`_get_blend_shape_name`\ (\ index\: :ref:`int`\ ) |virtual| |required| |const| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`_get_surface_count`\ (\ ) |virtual| |required| |const| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`_set_blend_shape_name`\ (\ index\: :ref:`int`, name\: :ref:`StringName`\ ) |virtual| |required| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`_surface_get_array_index_len`\ (\ index\: :ref:`int`\ ) |virtual| |required| |const| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`_surface_get_array_len`\ (\ index\: :ref:`int`\ ) |virtual| |required| |const| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array` | :ref:`_surface_get_arrays`\ (\ index\: :ref:`int`\ ) |virtual| |required| |const| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array`\[:ref:`Array`\] | :ref:`_surface_get_blend_shape_arrays`\ (\ index\: :ref:`int`\ ) |virtual| |required| |const| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`_surface_get_format`\ (\ index\: :ref:`int`\ ) |virtual| |required| |const| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Dictionary` | :ref:`_surface_get_lods`\ (\ index\: :ref:`int`\ ) |virtual| |required| |const| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Material` | :ref:`_surface_get_material`\ (\ index\: :ref:`int`\ ) |virtual| |required| |const| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`_surface_get_primitive_type`\ (\ index\: :ref:`int`\ ) |virtual| |required| |const| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`_surface_set_material`\ (\ index\: :ref:`int`, material\: :ref:`Material`\ ) |virtual| |required| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`ConvexPolygonShape3D` | :ref:`create_convex_shape`\ (\ clean\: :ref:`bool` = true, simplify\: :ref:`bool` = false\ ) |const| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Mesh` | :ref:`create_outline`\ (\ margin\: :ref:`float`\ ) |const| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Resource` | :ref:`create_placeholder`\ (\ ) |const| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`ConcavePolygonShape3D` | :ref:`create_trimesh_shape`\ (\ ) |const| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`TriangleMesh` | :ref:`generate_triangle_mesh`\ (\ ) |const| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`AABB` | :ref:`get_aabb`\ (\ ) |const| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedVector3Array` | :ref:`get_faces`\ (\ ) |const| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_surface_count`\ (\ ) |const| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array` | :ref:`surface_get_arrays`\ (\ surf_idx\: :ref:`int`\ ) |const| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array`\[:ref:`Array`\] | :ref:`surface_get_blend_shape_arrays`\ (\ surf_idx\: :ref:`int`\ ) |const| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Material` | :ref:`surface_get_material`\ (\ surf_idx\: :ref:`int`\ ) |const| | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`surface_set_material`\ (\ surf_idx\: :ref:`int`, material\: :ref:`Material`\ ) | +-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Enumerazioni ------------------------ .. _enum_Mesh_PrimitiveType: .. rst-class:: classref-enumeration enum **PrimitiveType**: :ref:`🔗` .. _class_Mesh_constant_PRIMITIVE_POINTS: .. rst-class:: classref-enumeration-constant :ref:`PrimitiveType` **PRIMITIVE_POINTS** = ``0`` Renderizza l'array come punti (un vertice equivale a un punto). .. _class_Mesh_constant_PRIMITIVE_LINES: .. rst-class:: classref-enumeration-constant :ref:`PrimitiveType` **PRIMITIVE_LINES** = ``1`` Renderizza l'array come linee (ogni due vertici viene creata una linea). .. _class_Mesh_constant_PRIMITIVE_LINE_STRIP: .. rst-class:: classref-enumeration-constant :ref:`PrimitiveType` **PRIMITIVE_LINE_STRIP** = ``2`` Renderizza l'array come una striscia di linee. .. _class_Mesh_constant_PRIMITIVE_TRIANGLES: .. rst-class:: classref-enumeration-constant :ref:`PrimitiveType` **PRIMITIVE_TRIANGLES** = ``3`` Renderizza l'array come triangoli (ogni tre vertici viene creato un triangolo). .. _class_Mesh_constant_PRIMITIVE_TRIANGLE_STRIP: .. rst-class:: classref-enumeration-constant :ref:`PrimitiveType` **PRIMITIVE_TRIANGLE_STRIP** = ``4`` Renderizza l'array come strisce di triangoli. .. rst-class:: classref-item-separator ---- .. _enum_Mesh_ArrayType: .. rst-class:: classref-enumeration enum **ArrayType**: :ref:`🔗` .. _class_Mesh_constant_ARRAY_VERTEX: .. rst-class:: classref-enumeration-constant :ref:`ArrayType` **ARRAY_VERTEX** = ``0`` Un :ref:`PackedVector3Array`, :ref:`PackedVector2Array` o :ref:`Array` contenente le posizioni dei vertici. .. _class_Mesh_constant_ARRAY_NORMAL: .. rst-class:: classref-enumeration-constant :ref:`ArrayType` **ARRAY_NORMAL** = ``1`` :ref:`PackedVector3Array` di normali dei vertici. \ **Nota:** L'array deve essere costituito da vettori normali, altrimenti saranno normalizzati dal motore, causando eventuali discrepanze visive. .. _class_Mesh_constant_ARRAY_TANGENT: .. rst-class:: classref-enumeration-constant :ref:`ArrayType` **ARRAY_TANGENT** = ``2`` :ref:`PackedFloat32Array` di tangenti di vertici. Ogni elemento in gruppi di 4 float, i primi 3 float determinano la tangente e l'ultimo la direzione binormale come -1 o 1. .. _class_Mesh_constant_ARRAY_COLOR: .. rst-class:: classref-enumeration-constant :ref:`ArrayType` **ARRAY_COLOR** = ``3`` :ref:`PackedColorArray` dei colori dei vertici. .. _class_Mesh_constant_ARRAY_TEX_UV: .. rst-class:: classref-enumeration-constant :ref:`ArrayType` **ARRAY_TEX_UV** = ``4`` :ref:`PackedVector2Array` per le coordinate UV. .. _class_Mesh_constant_ARRAY_TEX_UV2: .. rst-class:: classref-enumeration-constant :ref:`ArrayType` **ARRAY_TEX_UV2** = ``5`` :ref:`PackedVector2Array` per le coordinate UV secondarie. .. _class_Mesh_constant_ARRAY_CUSTOM0: .. rst-class:: classref-enumeration-constant :ref:`ArrayType` **ARRAY_CUSTOM0** = ``6`` Contiene il canale colore personalizzato 0. È un :ref:`PackedByteArray` se ``(format >> Mesh.ARRAY_FORMAT_CUSTOM0_SHIFT) & Mesh.ARRAY_FORMAT_CUSTOM_MASK`` è :ref:`ARRAY_CUSTOM_RGBA8_UNORM`, :ref:`ARRAY_CUSTOM_RGBA8_SNORM`, :ref:`ARRAY_CUSTOM_RG_HALF` o :ref:`ARRAY_CUSTOM_RGBA_HALF`. Altrimenti è un :ref:`PackedFloat32Array`. .. _class_Mesh_constant_ARRAY_CUSTOM1: .. rst-class:: classref-enumeration-constant :ref:`ArrayType` **ARRAY_CUSTOM1** = ``7`` Contiene il canale colore personalizzato 1. È un :ref:`PackedByteArray` se ``(format >> Mesh.ARRAY_FORMAT_CUSTOM1_SHIFT) & Mesh.ARRAY_FORMAT_CUSTOM_MASK`` è :ref:`ARRAY_CUSTOM_RGBA8_UNORM`, :ref:`ARRAY_CUSTOM_RGBA8_SNORM`, :ref:`ARRAY_CUSTOM_RG_HALF` o :ref:`ARRAY_CUSTOM_RGBA_HALF`. Altrimenti è un :ref:`PackedFloat32Array`. .. _class_Mesh_constant_ARRAY_CUSTOM2: .. rst-class:: classref-enumeration-constant :ref:`ArrayType` **ARRAY_CUSTOM2** = ``8`` Contiene il canale colore personalizzato 2. È un :ref:`PackedByteArray` se ``(format >> Mesh.ARRAY_FORMAT_CUSTOM2_SHIFT) & Mesh.ARRAY_FORMAT_CUSTOM_MASK`` è :ref:`ARRAY_CUSTOM_RGBA8_UNORM`, :ref:`ARRAY_CUSTOM_RGBA8_SNORM`, :ref:`ARRAY_CUSTOM_RG_HALF` o :ref:`ARRAY_CUSTOM_RGBA_HALF`. Altrimenti è un :ref:`PackedFloat32Array`. .. _class_Mesh_constant_ARRAY_CUSTOM3: .. rst-class:: classref-enumeration-constant :ref:`ArrayType` **ARRAY_CUSTOM3** = ``9`` Contiene il canale colore personalizzato 3. È un :ref:`PackedByteArray` se ``(format >> Mesh.ARRAY_FORMAT_CUSTOM3_SHIFT) & Mesh.ARRAY_FORMAT_CUSTOM_MASK`` è :ref:`ARRAY_CUSTOM_RGBA8_UNORM`, :ref:`ARRAY_CUSTOM_RGBA8_SNORM`, :ref:`ARRAY_CUSTOM_RG_HALF` o :ref:`ARRAY_CUSTOM_RGBA_HALF`. Altrimenti è un :ref:`PackedFloat32Array`. .. _class_Mesh_constant_ARRAY_BONES: .. rst-class:: classref-enumeration-constant :ref:`ArrayType` **ARRAY_BONES** = ``10`` :ref:`PackedFloat32Array` o :ref:`PackedInt32Array` degli indici delle ossa. Contiene 4 o 8 numeri per vertice a seconda della presenza del flag :ref:`ARRAY_FLAG_USE_8_BONE_WEIGHTS`. .. _class_Mesh_constant_ARRAY_WEIGHTS: .. rst-class:: classref-enumeration-constant :ref:`ArrayType` **ARRAY_WEIGHTS** = ``11`` :ref:`PackedFloat32Array` o :ref:`PackedFloat64Array` di pesi delle ossa nell'intervallo ``0.0`` a ``1.0`` (inclusi). Contiene 4 o 8 numeri per vertice a seconda della presenza del flag :ref:`ARRAY_FLAG_USE_8_BONE_WEIGHTS`. .. _class_Mesh_constant_ARRAY_INDEX: .. rst-class:: classref-enumeration-constant :ref:`ArrayType` **ARRAY_INDEX** = ``12`` :ref:`PackedInt32Array` di numeri interi usati come indici che fanno riferimento a vertici, colori, normali, tangenti e texture. Tutti questi array devono avere lo stesso numero di elementi dell'array dei vertici. Nessun indice può superare la dimensione dell'array dei vertici. Quando questo array di indici è presente, mette la funzione in "modalità indice", dove l'indice seleziona il *i*-esimo vertice, normale, tangente, colore, UV, ecc. Ciò significa che se si desidera avere normali o colori diversi lungo un bordo, è necessario duplicare i vertici. Per i triangoli, l'array di indici viene interpretato come triple, che fanno riferimento ai vertici di ciascun triangolo. Per le linee, l'array di indici è in coppie che indicano l'inizio e la fine di ciascuna linea. .. _class_Mesh_constant_ARRAY_MAX: .. rst-class:: classref-enumeration-constant :ref:`ArrayType` **ARRAY_MAX** = ``13`` Rappresenta la dimensione dell'enumerazione :ref:`ArrayType`. .. rst-class:: classref-item-separator ---- .. _enum_Mesh_ArrayCustomFormat: .. rst-class:: classref-enumeration enum **ArrayCustomFormat**: :ref:`🔗` .. _class_Mesh_constant_ARRAY_CUSTOM_RGBA8_UNORM: .. rst-class:: classref-enumeration-constant :ref:`ArrayCustomFormat` **ARRAY_CUSTOM_RGBA8_UNORM** = ``0`` Indica che questo canale personalizzato contiene byte di colori normalizzati senza segno da 0 a 1, codificati come :ref:`PackedByteArray`. .. _class_Mesh_constant_ARRAY_CUSTOM_RGBA8_SNORM: .. rst-class:: classref-enumeration-constant :ref:`ArrayCustomFormat` **ARRAY_CUSTOM_RGBA8_SNORM** = ``1`` Indica che questo canale personalizzato contiene byte di colori normalizzati con segno da 0 a 1, codificati come :ref:`PackedByteArray`. .. _class_Mesh_constant_ARRAY_CUSTOM_RG_HALF: .. rst-class:: classref-enumeration-constant :ref:`ArrayCustomFormat` **ARRAY_CUSTOM_RG_HALF** = ``2`` Indica che questo canale personalizzato contiene colori in virgola mobile a mezza precisione, codificati come :ref:`PackedByteArray`. Sono utilizzati solo i canali rosso e verde. .. _class_Mesh_constant_ARRAY_CUSTOM_RGBA_HALF: .. rst-class:: classref-enumeration-constant :ref:`ArrayCustomFormat` **ARRAY_CUSTOM_RGBA_HALF** = ``3`` Indica che questo canale personalizzato contiene colori in virgola mobile a mezza precisione, codificati come :ref:`PackedByteArray`. .. _class_Mesh_constant_ARRAY_CUSTOM_R_FLOAT: .. rst-class:: classref-enumeration-constant :ref:`ArrayCustomFormat` **ARRAY_CUSTOM_R_FLOAT** = ``4`` Indica che questo canale personalizzato contiene colori in virgola mobile completi, codificati come :ref:`PackedFloat32Array`. Solo il canale rosso è utilizzato. .. _class_Mesh_constant_ARRAY_CUSTOM_RG_FLOAT: .. rst-class:: classref-enumeration-constant :ref:`ArrayCustomFormat` **ARRAY_CUSTOM_RG_FLOAT** = ``5`` Indica che questo canale personalizzato contiene colori in virgola mobile completi, codificati come :ref:`PackedFloat32Array`. Sono utilizzati solo i canali rosso e verde. .. _class_Mesh_constant_ARRAY_CUSTOM_RGB_FLOAT: .. rst-class:: classref-enumeration-constant :ref:`ArrayCustomFormat` **ARRAY_CUSTOM_RGB_FLOAT** = ``6`` Indica che questo canale personalizzato contiene colori in virgola mobile completi, codificati come :ref:`PackedFloat32Array`. Sono utilizzati solo i canali rosso, verde e blu. .. _class_Mesh_constant_ARRAY_CUSTOM_RGBA_FLOAT: .. rst-class:: classref-enumeration-constant :ref:`ArrayCustomFormat` **ARRAY_CUSTOM_RGBA_FLOAT** = ``7`` Indica che questo canale personalizzato contiene colori in virgola mobile completi, codificati come :ref:`PackedFloat32Array`. .. _class_Mesh_constant_ARRAY_CUSTOM_MAX: .. rst-class:: classref-enumeration-constant :ref:`ArrayCustomFormat` **ARRAY_CUSTOM_MAX** = ``8`` Rappresenta la dimensione dell'enumerazione :ref:`ArrayCustomFormat`. .. rst-class:: classref-item-separator ---- .. _enum_Mesh_ArrayFormat: .. rst-class:: classref-enumeration flags **ArrayFormat**: :ref:`🔗` .. _class_Mesh_constant_ARRAY_FORMAT_VERTEX: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FORMAT_VERTEX** = ``1`` L'array della mesh contiene vertici. Tutte le mesh richiedono un array di vertici, quindi questo dovrebbe essere sempre presente. .. _class_Mesh_constant_ARRAY_FORMAT_NORMAL: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FORMAT_NORMAL** = ``2`` L'array della mesh contiene le normali. .. _class_Mesh_constant_ARRAY_FORMAT_TANGENT: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FORMAT_TANGENT** = ``4`` L'array della mesh contiene le tangenti. .. _class_Mesh_constant_ARRAY_FORMAT_COLOR: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FORMAT_COLOR** = ``8`` L'array della mesh contiene i colori. .. _class_Mesh_constant_ARRAY_FORMAT_TEX_UV: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FORMAT_TEX_UV** = ``16`` L'array della mesh contiene gli UV. .. _class_Mesh_constant_ARRAY_FORMAT_TEX_UV2: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FORMAT_TEX_UV2** = ``32`` L'array della mesh contiene gli UV secondari. .. _class_Mesh_constant_ARRAY_FORMAT_CUSTOM0: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FORMAT_CUSTOM0** = ``64`` L'array della mesh contiene il canale personalizzato di indice 0. .. _class_Mesh_constant_ARRAY_FORMAT_CUSTOM1: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FORMAT_CUSTOM1** = ``128`` L'array della mesh contiene il canale personalizzato di indice 1. .. _class_Mesh_constant_ARRAY_FORMAT_CUSTOM2: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FORMAT_CUSTOM2** = ``256`` L'array della mesh contiene il canale personalizzato di indice 2. .. _class_Mesh_constant_ARRAY_FORMAT_CUSTOM3: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FORMAT_CUSTOM3** = ``512`` L'array della mesh contiene il canale personalizzato di indice 3. .. _class_Mesh_constant_ARRAY_FORMAT_BONES: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FORMAT_BONES** = ``1024`` L'array della mesh contiene le ossa. .. _class_Mesh_constant_ARRAY_FORMAT_WEIGHTS: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FORMAT_WEIGHTS** = ``2048`` L'array della mesh contiene i pesi delle ossa. .. _class_Mesh_constant_ARRAY_FORMAT_INDEX: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FORMAT_INDEX** = ``4096`` L'array della mesh utilizza gli indici. .. _class_Mesh_constant_ARRAY_FORMAT_BLEND_SHAPE_MASK: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FORMAT_BLEND_SHAPE_MASK** = ``7`` Maschera dei canali della mesh consentiti nelle forme di fusione. .. _class_Mesh_constant_ARRAY_FORMAT_CUSTOM_BASE: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FORMAT_CUSTOM_BASE** = ``13`` Spostamento del primo canale personalizzato. .. _class_Mesh_constant_ARRAY_FORMAT_CUSTOM_BITS: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FORMAT_CUSTOM_BITS** = ``3`` Numero di bit di formato per canale personalizzato. Vedi :ref:`ArrayCustomFormat`. .. _class_Mesh_constant_ARRAY_FORMAT_CUSTOM0_SHIFT: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FORMAT_CUSTOM0_SHIFT** = ``13`` Quantità da spostare :ref:`ArrayCustomFormat` per il canale personalizzato di indice 0. .. _class_Mesh_constant_ARRAY_FORMAT_CUSTOM1_SHIFT: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FORMAT_CUSTOM1_SHIFT** = ``16`` Quantità da spostare :ref:`ArrayCustomFormat` per il canale personalizzato di indice 1. .. _class_Mesh_constant_ARRAY_FORMAT_CUSTOM2_SHIFT: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FORMAT_CUSTOM2_SHIFT** = ``19`` Quantità da spostare :ref:`ArrayCustomFormat` per il canale personalizzato di indice 2. .. _class_Mesh_constant_ARRAY_FORMAT_CUSTOM3_SHIFT: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FORMAT_CUSTOM3_SHIFT** = ``22`` Quantità da spostare :ref:`ArrayCustomFormat` per il canale personalizzato di indice 3. .. _class_Mesh_constant_ARRAY_FORMAT_CUSTOM_MASK: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FORMAT_CUSTOM_MASK** = ``7`` Maschera di bit di formato personalizzati per canale personalizzato. Deve essere spostata da una delle costanti SHIFT. Vedi :ref:`ArrayCustomFormat`. .. _class_Mesh_constant_ARRAY_COMPRESS_FLAGS_BASE: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_COMPRESS_FLAGS_BASE** = ``25`` Spostamento di bit del primo flag di compressione. I flag di compressione devono essere passati a :ref:`ArrayMesh.add_surface_from_arrays()` e :ref:`SurfaceTool.commit()`. .. _class_Mesh_constant_ARRAY_FLAG_USE_2D_VERTICES: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FLAG_USE_2D_VERTICES** = ``33554432`` Flag usato per indicare che l'array contiene vertici 2D. .. _class_Mesh_constant_ARRAY_FLAG_USE_DYNAMIC_UPDATE: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FLAG_USE_DYNAMIC_UPDATE** = ``67108864`` Flag usato per indicare che i dati della mesh utilizzeranno ``GL_DYNAMIC_DRAW`` su GLES. Non usato su Vulkan. .. _class_Mesh_constant_ARRAY_FLAG_USE_8_BONE_WEIGHTS: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FLAG_USE_8_BONE_WEIGHTS** = ``134217728`` Flag usato per indicare che la mesh contiene fino a 8 influenze di ossa per vertice. Questo flag indica che gli elementi di :ref:`ARRAY_BONES` e di :ref:`ARRAY_WEIGHTS` avranno una lunghezza doppia. .. _class_Mesh_constant_ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY** = ``268435456`` Flag usato per indicare che la mesh intenzionalmente non contiene alcun array di vertici. .. _class_Mesh_constant_ARRAY_FLAG_COMPRESS_ATTRIBUTES: .. rst-class:: classref-enumeration-constant :ref:`ArrayFormat` **ARRAY_FLAG_COMPRESS_ATTRIBUTES** = ``536870912`` Flag usato per indicare che una mesh sta usando attributi compressi (vertici, normali, tangenti, UV). Quando questa forma di compressione è abilitata, le posizioni dei vertici saranno compresse in un attributo RGBA16UNORM e ridimensionate nello shader dei vertici. La normale e la tangente saranno compresse in un RG16UNORM che rappresenta un asse e un float a 16 bit memorizzato nel canale A del vertice. Gli UV utilizzeranno float normalizzati a 16 bit anziché float con segno a 32 bit completi. Quando si utilizza questa modalità di compressione, è necessario utilizzare vertici, normali e tangenti o solo vertici. Non è possibile utilizzare normali senza tangenti. Gli importatori abiliteranno automaticamente questa compressione se possibile. .. rst-class:: classref-item-separator ---- .. _enum_Mesh_BlendShapeMode: .. rst-class:: classref-enumeration enum **BlendShapeMode**: :ref:`🔗` .. _class_Mesh_constant_BLEND_SHAPE_MODE_NORMALIZED: .. rst-class:: classref-enumeration-constant :ref:`BlendShapeMode` **BLEND_SHAPE_MODE_NORMALIZED** = ``0`` Le forme di fusione sono normalizzate. .. _class_Mesh_constant_BLEND_SHAPE_MODE_RELATIVE: .. rst-class:: classref-enumeration-constant :ref:`BlendShapeMode` **BLEND_SHAPE_MODE_RELATIVE** = ``1`` Le forme di fusione sono relative al peso base. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Descrizioni delle proprietà ------------------------------------------------------ .. _class_Mesh_property_lightmap_size_hint: .. rst-class:: classref-property :ref:`Vector2i` **lightmap_size_hint** = ``Vector2i(0, 0)`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_lightmap_size_hint**\ (\ value\: :ref:`Vector2i`\ ) - :ref:`Vector2i` **get_lightmap_size_hint**\ (\ ) Imposta un suggerimento da usare per la risoluzione della lightmap. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Descrizioni dei metodi -------------------------------------------- .. _class_Mesh_private_method__get_aabb: .. rst-class:: classref-method :ref:`AABB` **_get_aabb**\ (\ ) |virtual| |required| |const| :ref:`🔗` Metodo virtuale per sovrascrivere l':ref:`AABB` per una classe personalizzata che estende **Mesh**. .. rst-class:: classref-item-separator ---- .. _class_Mesh_private_method__get_blend_shape_count: .. rst-class:: classref-method :ref:`int` **_get_blend_shape_count**\ (\ ) |virtual| |required| |const| :ref:`🔗` Metodo virtuale per sovrascrivere il numero di forme di fusione per una classe personalizzata che estende **Mesh**. .. rst-class:: classref-item-separator ---- .. _class_Mesh_private_method__get_blend_shape_name: .. rst-class:: classref-method :ref:`StringName` **_get_blend_shape_name**\ (\ index\: :ref:`int`\ ) |virtual| |required| |const| :ref:`🔗` Metodo virtuale per sovrascrivere il recupero dei nomi delle forme di fusione per una classe personalizzata che estende **Mesh**. .. rst-class:: classref-item-separator ---- .. _class_Mesh_private_method__get_surface_count: .. rst-class:: classref-method :ref:`int` **_get_surface_count**\ (\ ) |virtual| |required| |const| :ref:`🔗` Metodo virtuale per sovrascrivere il numero delle superfici per una classe personalizzata che estende **Mesh**. .. rst-class:: classref-item-separator ---- .. _class_Mesh_private_method__set_blend_shape_name: .. rst-class:: classref-method |void| **_set_blend_shape_name**\ (\ index\: :ref:`int`, name\: :ref:`StringName`\ ) |virtual| |required| :ref:`🔗` Metodo virtuale per sovrascrivere i nomi delle forme di fusione per una classe personalizzata che estende **Mesh**. .. rst-class:: classref-item-separator ---- .. _class_Mesh_private_method__surface_get_array_index_len: .. rst-class:: classref-method :ref:`int` **_surface_get_array_index_len**\ (\ index\: :ref:`int`\ ) |virtual| |required| |const| :ref:`🔗` Metodo virtuale per sovrascrivere la lunghezza di un indice degli array di superfici per una classe personalizzata che estende **Mesh**. .. rst-class:: classref-item-separator ---- .. _class_Mesh_private_method__surface_get_array_len: .. rst-class:: classref-method :ref:`int` **_surface_get_array_len**\ (\ index\: :ref:`int`\ ) |virtual| |required| |const| :ref:`🔗` Metodo virtuale per sovrascrivere la lunghezza degli array di superfici per una classe personalizzata che estende **Mesh**. .. rst-class:: classref-item-separator ---- .. _class_Mesh_private_method__surface_get_arrays: .. rst-class:: classref-method :ref:`Array` **_surface_get_arrays**\ (\ index\: :ref:`int`\ ) |virtual| |required| |const| :ref:`🔗` Metodo virtuale per sovrascrivere gli array di superfici per una classe personalizzata che estende **Mesh**. .. rst-class:: classref-item-separator ---- .. _class_Mesh_private_method__surface_get_blend_shape_arrays: .. rst-class:: classref-method :ref:`Array`\[:ref:`Array`\] **_surface_get_blend_shape_arrays**\ (\ index\: :ref:`int`\ ) |virtual| |required| |const| :ref:`🔗` Metodo virtuale per sovrascrivere gli array di forme di fusione per una classe personalizzata che estende **Mesh**. .. rst-class:: classref-item-separator ---- .. _class_Mesh_private_method__surface_get_format: .. rst-class:: classref-method :ref:`int` **_surface_get_format**\ (\ index\: :ref:`int`\ ) |virtual| |required| |const| :ref:`🔗` Metodo virtuale per sovrascrivere il formato di superficie per una classe personalizzata che estende **Mesh**. .. rst-class:: classref-item-separator ---- .. _class_Mesh_private_method__surface_get_lods: .. rst-class:: classref-method :ref:`Dictionary` **_surface_get_lods**\ (\ index\: :ref:`int`\ ) |virtual| |required| |const| :ref:`🔗` Metodo virtuale per sovrascrivere i LOD di superficie per una classe personalizzata che estende **Mesh**. .. rst-class:: classref-item-separator ---- .. _class_Mesh_private_method__surface_get_material: .. rst-class:: classref-method :ref:`Material` **_surface_get_material**\ (\ index\: :ref:`int`\ ) |virtual| |required| |const| :ref:`🔗` Metodo virtuale per sovrascrivere il materiale di superficie per una classe personalizzata che estende **Mesh**. .. rst-class:: classref-item-separator ---- .. _class_Mesh_private_method__surface_get_primitive_type: .. rst-class:: classref-method :ref:`int` **_surface_get_primitive_type**\ (\ index\: :ref:`int`\ ) |virtual| |required| |const| :ref:`🔗` Metodo virtuale per sovrascrivere il tipo di primitiva di una superficie per una classe personalizzata che estende **Mesh**. .. rst-class:: classref-item-separator ---- .. _class_Mesh_private_method__surface_set_material: .. rst-class:: classref-method |void| **_surface_set_material**\ (\ index\: :ref:`int`, material\: :ref:`Material`\ ) |virtual| |required| :ref:`🔗` Metodo virtuale per sovrascrivere l'impostazione di un ``material`` all'indice ``index`` per una classe personalizzata che estende **Mesh**. .. rst-class:: classref-item-separator ---- .. _class_Mesh_method_create_convex_shape: .. rst-class:: classref-method :ref:`ConvexPolygonShape3D` **create_convex_shape**\ (\ clean\: :ref:`bool` = true, simplify\: :ref:`bool` = false\ ) |const| :ref:`🔗` Calcola un :ref:`ConvexPolygonShape3D` dalla mesh. Se ``clean`` è ``true`` (predefinito), i vertici duplicati e interni sono rimossi automaticamente. Puoi impostarlo su ``false`` per rendere il processo più veloce se non necessario. Se ``simplify`` è ``true``, la geometria può essere ulteriormente semplificata per ridurre il numero di vertici. Disabilitato per impostazione predefinita. .. rst-class:: classref-item-separator ---- .. _class_Mesh_method_create_outline: .. rst-class:: classref-method :ref:`Mesh` **create_outline**\ (\ margin\: :ref:`float`\ ) |const| :ref:`🔗` Calcola una mesh di contorno a un offset (margine) definito dalla mesh originale. \ **Nota:** Questo metodo in genere restituisce i vertici in ordine inverso (ad esempio da senso orario a senso antiorario). .. rst-class:: classref-item-separator ---- .. _class_Mesh_method_create_placeholder: .. rst-class:: classref-method :ref:`Resource` **create_placeholder**\ (\ ) |const| :ref:`🔗` Crea una versione segnaposto di questa risorsa (:ref:`PlaceholderMesh`). .. rst-class:: classref-item-separator ---- .. _class_Mesh_method_create_trimesh_shape: .. rst-class:: classref-method :ref:`ConcavePolygonShape3D` **create_trimesh_shape**\ (\ ) |const| :ref:`🔗` Calcola una :ref:`ConcavePolygonShape3D` dalla mesh. .. rst-class:: classref-item-separator ---- .. _class_Mesh_method_generate_triangle_mesh: .. rst-class:: classref-method :ref:`TriangleMesh` **generate_triangle_mesh**\ (\ ) |const| :ref:`🔗` Genera un :ref:`TriangleMesh` dalla mesh. Considera solo le superfici che utilizzano uno di questi tipi primitivi: :ref:`PRIMITIVE_TRIANGLES`, :ref:`PRIMITIVE_TRIANGLE_STRIP`. .. rst-class:: classref-item-separator ---- .. _class_Mesh_method_get_aabb: .. rst-class:: classref-method :ref:`AABB` **get_aabb**\ (\ ) |const| :ref:`🔗` Restituisce il più piccolo :ref:`AABB` che racchiude questa mesh in spazio locale. Non influenzato da ``custom_aabb``. \ **Nota:** Questo è implementato solo per :ref:`ArrayMesh` e :ref:`PrimitiveMesh`. .. rst-class:: classref-item-separator ---- .. _class_Mesh_method_get_faces: .. rst-class:: classref-method :ref:`PackedVector3Array` **get_faces**\ (\ ) |const| :ref:`🔗` Restituisce tutti i vertici che compongono le facce della mesh. Ogni tre vertici rappresentano un triangolo. .. rst-class:: classref-item-separator ---- .. _class_Mesh_method_get_surface_count: .. rst-class:: classref-method :ref:`int` **get_surface_count**\ (\ ) |const| :ref:`🔗` Restituisce il numero di superfici contenute nella **Mesh**. Equivale a :ref:`MeshInstance3D.get_surface_override_material_count()`. .. rst-class:: classref-item-separator ---- .. _class_Mesh_method_surface_get_arrays: .. rst-class:: classref-method :ref:`Array` **surface_get_arrays**\ (\ surf_idx\: :ref:`int`\ ) |const| :ref:`🔗` Restituisce gli array per i vertici, normali, UV, ecc. che compongono la superficie richiesta (vedi :ref:`ArrayMesh.add_surface_from_arrays()`). .. rst-class:: classref-item-separator ---- .. _class_Mesh_method_surface_get_blend_shape_arrays: .. rst-class:: classref-method :ref:`Array`\[:ref:`Array`\] **surface_get_blend_shape_arrays**\ (\ surf_idx\: :ref:`int`\ ) |const| :ref:`🔗` Restituisce gli array di forme di fusione per la superficie richiesta. .. rst-class:: classref-item-separator ---- .. _class_Mesh_method_surface_get_material: .. rst-class:: classref-method :ref:`Material` **surface_get_material**\ (\ surf_idx\: :ref:`int`\ ) |const| :ref:`🔗` Restituisce un :ref:`Material` in una data superficie. La superficie è renderizzata utilizzando questo materiale. \ **Nota:** Questo restituisce il materiale all'interno della risorsa **Mesh**, non il :ref:`Material` associato alle proprietà di sostituzione del materiale di superficie di un :ref:`MeshInstance3D`. Per ottenere quelli, utilizza invece :ref:`MeshInstance3D.get_surface_override_material()`. .. rst-class:: classref-item-separator ---- .. _class_Mesh_method_surface_set_material: .. rst-class:: classref-method |void| **surface_set_material**\ (\ surf_idx\: :ref:`int`, material\: :ref:`Material`\ ) :ref:`🔗` Imposta un :ref:`Material` per una determinata superficie. La superficie sarà renderizzata utilizzando questo materiale. \ **Nota:** Questo assegna il materiale all'interno della risorsa **Mesh**, non il :ref:`Material` associato alle proprietà di sostituzione del materiale di superficie di un :ref:`MeshInstance3D`. Per impostare quelli, utilizza invece :ref:`MeshInstance3D.set_surface_override_material()`. .. |virtual| replace:: :abbr:`virtual (Questo metodo dovrebbe solitamente essere sovrascritto dall'utente per aver un effetto.)` .. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)` .. |const| replace:: :abbr:`const (Questo metodo non ha effetti collaterali. Non modifica alcuna variabile appartenente all'istanza.)` .. |vararg| replace:: :abbr:`vararg (Questo metodo accetta qualsiasi numero di argomenti oltre a quelli descritti qui.)` .. |constructor| replace:: :abbr:`constructor (Questo metodo è utilizzato per creare un tipo.)` .. |static| replace:: :abbr:`static (Questo metodo non necessita di alcun'istanza per essere chiamato, quindi può essere chiamato direttamente usando il nome della classe.)` .. |operator| replace:: :abbr:`operator (Questo metodo descrive un operatore valido da usare con questo tipo come operando di sinistra.)` .. |bitfield| replace:: :abbr:`BitField (Questo valore è un intero composto da una maschera di bit dei seguenti flag.)` .. |void| replace:: :abbr:`void (Nessun valore restituito.)`