Files
godot-docs-l10n/classes/es/class_mesh.rst
2025-12-19 14:34:07 +01:00

983 lines
48 KiB
ReStructuredText

:github_url: hide
.. _class_Mesh:
Mesh
====
**Hereda:** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
**Heredado por:** :ref:`ArrayMesh<class_ArrayMesh>`, :ref:`ImmediateMesh<class_ImmediateMesh>`, :ref:`PlaceholderMesh<class_PlaceholderMesh>`, :ref:`PrimitiveMesh<class_PrimitiveMesh>`
Un :ref:`Resource<class_Resource>` que contiene un array de vértices de una geometría.
.. rst-class:: classref-introduction-group
Descripción
----------------------
Mesh is a type of :ref:`Resource<class_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. The maximum number of surfaces per mesh is :ref:`RenderingServer.MAX_MESH_SURFACES<class_RenderingServer_constant_MAX_MESH_SURFACES>`.
.. rst-class:: classref-introduction-group
Tutoriales
--------------------
- `Demo de Prueba de Materiales en 3D <https://godotengine.org/asset-library/asset/2742>`__
- `Demo de Personaje Cinemático en 3D <https://godotengine.org/asset-library/asset/2739>`__
- `Demo de Plataformas en 3D <https://godotengine.org/asset-library/asset/2748>`__
- `Demo de Shooter en Tercera Persona (TPS) <https://godotengine.org/asset-library/asset/2710>`__
.. rst-class:: classref-reftable-group
Propiedades
----------------------
.. table::
:widths: auto
+---------------------------------+-------------------------------------------------------------------+--------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`lightmap_size_hint<class_Mesh_property_lightmap_size_hint>` | ``Vector2i(0, 0)`` |
+---------------------------------+-------------------------------------------------------------------+--------------------+
.. rst-class:: classref-reftable-group
Métodos
--------------
.. table::
:widths: auto
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`AABB<class_AABB>` | :ref:`_get_aabb<class_Mesh_private_method__get_aabb>`\ (\ ) |virtual| |required| |const| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`_get_blend_shape_count<class_Mesh_private_method__get_blend_shape_count>`\ (\ ) |virtual| |required| |const| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`StringName<class_StringName>` | :ref:`_get_blend_shape_name<class_Mesh_private_method__get_blend_shape_name>`\ (\ index\: :ref:`int<class_int>`\ ) |virtual| |required| |const| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`_get_surface_count<class_Mesh_private_method__get_surface_count>`\ (\ ) |virtual| |required| |const| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_set_blend_shape_name<class_Mesh_private_method__set_blend_shape_name>`\ (\ index\: :ref:`int<class_int>`, name\: :ref:`StringName<class_StringName>`\ ) |virtual| |required| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`_surface_get_array_index_len<class_Mesh_private_method__surface_get_array_index_len>`\ (\ index\: :ref:`int<class_int>`\ ) |virtual| |required| |const| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`_surface_get_array_len<class_Mesh_private_method__surface_get_array_len>`\ (\ index\: :ref:`int<class_int>`\ ) |virtual| |required| |const| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Array<class_Array>` | :ref:`_surface_get_arrays<class_Mesh_private_method__surface_get_arrays>`\ (\ index\: :ref:`int<class_int>`\ ) |virtual| |required| |const| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Array<class_Array>`\[:ref:`Array<class_Array>`\] | :ref:`_surface_get_blend_shape_arrays<class_Mesh_private_method__surface_get_blend_shape_arrays>`\ (\ index\: :ref:`int<class_int>`\ ) |virtual| |required| |const| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`_surface_get_format<class_Mesh_private_method__surface_get_format>`\ (\ index\: :ref:`int<class_int>`\ ) |virtual| |required| |const| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dictionary<class_Dictionary>` | :ref:`_surface_get_lods<class_Mesh_private_method__surface_get_lods>`\ (\ index\: :ref:`int<class_int>`\ ) |virtual| |required| |const| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Material<class_Material>` | :ref:`_surface_get_material<class_Mesh_private_method__surface_get_material>`\ (\ index\: :ref:`int<class_int>`\ ) |virtual| |required| |const| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`_surface_get_primitive_type<class_Mesh_private_method__surface_get_primitive_type>`\ (\ index\: :ref:`int<class_int>`\ ) |virtual| |required| |const| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_surface_set_material<class_Mesh_private_method__surface_set_material>`\ (\ index\: :ref:`int<class_int>`, material\: :ref:`Material<class_Material>`\ ) |virtual| |required| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`ConvexPolygonShape3D<class_ConvexPolygonShape3D>` | :ref:`create_convex_shape<class_Mesh_method_create_convex_shape>`\ (\ clean\: :ref:`bool<class_bool>` = true, simplify\: :ref:`bool<class_bool>` = false\ ) |const| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Mesh<class_Mesh>` | :ref:`create_outline<class_Mesh_method_create_outline>`\ (\ margin\: :ref:`float<class_float>`\ ) |const| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Resource<class_Resource>` | :ref:`create_placeholder<class_Mesh_method_create_placeholder>`\ (\ ) |const| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`ConcavePolygonShape3D<class_ConcavePolygonShape3D>` | :ref:`create_trimesh_shape<class_Mesh_method_create_trimesh_shape>`\ (\ ) |const| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`TriangleMesh<class_TriangleMesh>` | :ref:`generate_triangle_mesh<class_Mesh_method_generate_triangle_mesh>`\ (\ ) |const| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`AABB<class_AABB>` | :ref:`get_aabb<class_Mesh_method_get_aabb>`\ (\ ) |const| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedVector3Array<class_PackedVector3Array>` | :ref:`get_faces<class_Mesh_method_get_faces>`\ (\ ) |const| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_surface_count<class_Mesh_method_get_surface_count>`\ (\ ) |const| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Array<class_Array>` | :ref:`surface_get_arrays<class_Mesh_method_surface_get_arrays>`\ (\ surf_idx\: :ref:`int<class_int>`\ ) |const| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Array<class_Array>`\[:ref:`Array<class_Array>`\] | :ref:`surface_get_blend_shape_arrays<class_Mesh_method_surface_get_blend_shape_arrays>`\ (\ surf_idx\: :ref:`int<class_int>`\ ) |const| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Material<class_Material>` | :ref:`surface_get_material<class_Mesh_method_surface_get_material>`\ (\ surf_idx\: :ref:`int<class_int>`\ ) |const| |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`surface_set_material<class_Mesh_method_surface_set_material>`\ (\ surf_idx\: :ref:`int<class_int>`, material\: :ref:`Material<class_Material>`\ ) |
+-----------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Enumeraciones
--------------------------
.. _enum_Mesh_PrimitiveType:
.. rst-class:: classref-enumeration
enum **PrimitiveType**: :ref:`🔗<enum_Mesh_PrimitiveType>`
.. _class_Mesh_constant_PRIMITIVE_POINTS:
.. rst-class:: classref-enumeration-constant
:ref:`PrimitiveType<enum_Mesh_PrimitiveType>` **PRIMITIVE_POINTS** = ``0``
Renderizar un array como puntos (un vértice es igual a un punto).
.. _class_Mesh_constant_PRIMITIVE_LINES:
.. rst-class:: classref-enumeration-constant
:ref:`PrimitiveType<enum_Mesh_PrimitiveType>` **PRIMITIVE_LINES** = ``1``
Renderiza el array como líneas (cada dos vértices se crea una línea).
.. _class_Mesh_constant_PRIMITIVE_LINE_STRIP:
.. rst-class:: classref-enumeration-constant
:ref:`PrimitiveType<enum_Mesh_PrimitiveType>` **PRIMITIVE_LINE_STRIP** = ``2``
Renderiza un array como una tira de líneas.
.. _class_Mesh_constant_PRIMITIVE_TRIANGLES:
.. rst-class:: classref-enumeration-constant
:ref:`PrimitiveType<enum_Mesh_PrimitiveType>` **PRIMITIVE_TRIANGLES** = ``3``
Renderizar la matriz como triángulos (cada tres vértices se crea un triángulo).
.. _class_Mesh_constant_PRIMITIVE_TRIANGLE_STRIP:
.. rst-class:: classref-enumeration-constant
:ref:`PrimitiveType<enum_Mesh_PrimitiveType>` **PRIMITIVE_TRIANGLE_STRIP** = ``4``
Renderizar un array como tiras de triángulo.
.. rst-class:: classref-item-separator
----
.. _enum_Mesh_ArrayType:
.. rst-class:: classref-enumeration
enum **ArrayType**: :ref:`🔗<enum_Mesh_ArrayType>`
.. _class_Mesh_constant_ARRAY_VERTEX:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayType<enum_Mesh_ArrayType>` **ARRAY_VERTEX** = ``0``
:ref:`PackedVector3Array<class_PackedVector3Array>`, :ref:`PackedVector2Array<class_PackedVector2Array>` o :ref:`Array<class_Array>` de posiciones de vértices.
.. _class_Mesh_constant_ARRAY_NORMAL:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayType<enum_Mesh_ArrayType>` **ARRAY_NORMAL** = ``1``
:ref:`PackedVector3Array<class_PackedVector3Array>` de normales de vértices.
\ **Nota:** El array tiene que consistir en vectores normales, de lo contrario serán normalizados por el motor, causando potencialmente discrepancias visuales.
.. _class_Mesh_constant_ARRAY_TANGENT:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayType<enum_Mesh_ArrayType>` **ARRAY_TANGENT** = ``2``
:ref:`PackedFloat32Array<class_PackedFloat32Array>` de tangentes de vértice. Cada elemento está en grupos de 4 floats, los 3 primeros floats determinan la tangente, y el último la dirección binormal como -1 o 1.
.. _class_Mesh_constant_ARRAY_COLOR:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayType<enum_Mesh_ArrayType>` **ARRAY_COLOR** = ``3``
:ref:`PackedColorArray<class_PackedColorArray>` de colores de vertices.
.. _class_Mesh_constant_ARRAY_TEX_UV:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayType<enum_Mesh_ArrayType>` **ARRAY_TEX_UV** = ``4``
:ref:`PackedVector2Array<class_PackedVector2Array>` para coordenadas UV.
.. _class_Mesh_constant_ARRAY_TEX_UV2:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayType<enum_Mesh_ArrayType>` **ARRAY_TEX_UV2** = ``5``
:ref:`PackedVector2Array<class_PackedVector2Array>` para las segundas coordenadas UV.
.. _class_Mesh_constant_ARRAY_CUSTOM0:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayType<enum_Mesh_ArrayType>` **ARRAY_CUSTOM0** = ``6``
Contiene el canal de color personalizado 0. :ref:`PackedByteArray<class_PackedByteArray>` si ``(format >> Mesh.ARRAY_FORMAT_CUSTOM0_SHIFT) & Mesh.ARRAY_FORMAT_CUSTOM_MASK`` es :ref:`ARRAY_CUSTOM_RGBA8_UNORM<class_Mesh_constant_ARRAY_CUSTOM_RGBA8_UNORM>`, :ref:`ARRAY_CUSTOM_RGBA8_SNORM<class_Mesh_constant_ARRAY_CUSTOM_RGBA8_SNORM>`, :ref:`ARRAY_CUSTOM_RG_HALF<class_Mesh_constant_ARRAY_CUSTOM_RG_HALF>`, o :ref:`ARRAY_CUSTOM_RGBA_HALF<class_Mesh_constant_ARRAY_CUSTOM_RGBA_HALF>`. :ref:`PackedFloat32Array<class_PackedFloat32Array>` en caso contrario.
.. _class_Mesh_constant_ARRAY_CUSTOM1:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayType<enum_Mesh_ArrayType>` **ARRAY_CUSTOM1** = ``7``
Contiene el canal de color personalizado 1. :ref:`PackedByteArray<class_PackedByteArray>` si ``(format >> Mesh.ARRAY_FORMAT_CUSTOM1_SHIFT) & Mesh.ARRAY_FORMAT_CUSTOM_MASK`` es :ref:`ARRAY_CUSTOM_RGBA8_UNORM<class_Mesh_constant_ARRAY_CUSTOM_RGBA8_UNORM>`, :ref:`ARRAY_CUSTOM_RGBA8_SNORM<class_Mesh_constant_ARRAY_CUSTOM_RGBA8_SNORM>`, :ref:`ARRAY_CUSTOM_RG_HALF<class_Mesh_constant_ARRAY_CUSTOM_RG_HALF>`, o :ref:`ARRAY_CUSTOM_RGBA_HALF<class_Mesh_constant_ARRAY_CUSTOM_RGBA_HALF>`. :ref:`PackedFloat32Array<class_PackedFloat32Array>` en caso contrario.
.. _class_Mesh_constant_ARRAY_CUSTOM2:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayType<enum_Mesh_ArrayType>` **ARRAY_CUSTOM2** = ``8``
Contiene el canal de color personalizado 2. :ref:`PackedByteArray<class_PackedByteArray>` si ``(format >> Mesh.ARRAY_FORMAT_CUSTOM2_SHIFT) & Mesh.ARRAY_FORMAT_CUSTOM_MASK`` es :ref:`ARRAY_CUSTOM_RGBA8_UNORM<class_Mesh_constant_ARRAY_CUSTOM_RGBA8_UNORM>`, :ref:`ARRAY_CUSTOM_RGBA8_SNORM<class_Mesh_constant_ARRAY_CUSTOM_RGBA8_SNORM>`, :ref:`ARRAY_CUSTOM_RG_HALF<class_Mesh_constant_ARRAY_CUSTOM_RG_HALF>`, o :ref:`ARRAY_CUSTOM_RGBA_HALF<class_Mesh_constant_ARRAY_CUSTOM_RGBA_HALF>`. :ref:`PackedFloat32Array<class_PackedFloat32Array>` en caso contrario.
.. _class_Mesh_constant_ARRAY_CUSTOM3:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayType<enum_Mesh_ArrayType>` **ARRAY_CUSTOM3** = ``9``
Contiene el canal de color personalizado 3. :ref:`PackedByteArray<class_PackedByteArray>` si ``(format >> Mesh.ARRAY_FORMAT_CUSTOM3_SHIFT) & Mesh.ARRAY_FORMAT_CUSTOM_MASK`` es :ref:`ARRAY_CUSTOM_RGBA8_UNORM<class_Mesh_constant_ARRAY_CUSTOM_RGBA8_UNORM>`, :ref:`ARRAY_CUSTOM_RGBA8_SNORM<class_Mesh_constant_ARRAY_CUSTOM_RGBA8_SNORM>`, :ref:`ARRAY_CUSTOM_RG_HALF<class_Mesh_constant_ARRAY_CUSTOM_RG_HALF>`, o :ref:`ARRAY_CUSTOM_RGBA_HALF<class_Mesh_constant_ARRAY_CUSTOM_RGBA_HALF>`. :ref:`PackedFloat32Array<class_PackedFloat32Array>` en caso contrario.
.. _class_Mesh_constant_ARRAY_BONES:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayType<enum_Mesh_ArrayType>` **ARRAY_BONES** = ``10``
:ref:`PackedFloat32Array<class_PackedFloat32Array>` o :ref:`PackedInt32Array<class_PackedInt32Array>` de índices de hueso. Contiene 4 u 8 números por vértice dependiendo de la presencia de la bandera :ref:`ARRAY_FLAG_USE_8_BONE_WEIGHTS<class_Mesh_constant_ARRAY_FLAG_USE_8_BONE_WEIGHTS>`.
.. _class_Mesh_constant_ARRAY_WEIGHTS:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayType<enum_Mesh_ArrayType>` **ARRAY_WEIGHTS** = ``11``
:ref:`PackedFloat32Array<class_PackedFloat32Array>` o :ref:`PackedFloat64Array<class_PackedFloat64Array>` de pesos de hueso en el rango ``0.0`` a ``1.0`` (inclusivo). Contiene 4 u 8 números por vértice dependiendo de la presencia de la bandera :ref:`ARRAY_FLAG_USE_8_BONE_WEIGHTS<class_Mesh_constant_ARRAY_FLAG_USE_8_BONE_WEIGHTS>`.
.. _class_Mesh_constant_ARRAY_INDEX:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayType<enum_Mesh_ArrayType>` **ARRAY_INDEX** = ``12``
:ref:`PackedInt32Array<class_PackedInt32Array>` of integers used as indices referencing vertices, colors, normals, tangents, and textures. All of those arrays must have the same number of elements as the vertex array. No index can be beyond the vertex array size. When this index array is present, it puts the function into "index mode," where the index selects the *i*'th vertex, normal, tangent, color, UV, etc. This means if you want to have different normals or colors along an edge, you have to duplicate the vertices.
For triangles, the index array is interpreted as triples, referring to the vertices of each triangle. For lines, the index array is in pairs indicating the start and end of each line.
.. _class_Mesh_constant_ARRAY_MAX:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayType<enum_Mesh_ArrayType>` **ARRAY_MAX** = ``13``
Representa el tamaño del enum :ref:`ArrayType<enum_Mesh_ArrayType>`.
.. rst-class:: classref-item-separator
----
.. _enum_Mesh_ArrayCustomFormat:
.. rst-class:: classref-enumeration
enum **ArrayCustomFormat**: :ref:`🔗<enum_Mesh_ArrayCustomFormat>`
.. _class_Mesh_constant_ARRAY_CUSTOM_RGBA8_UNORM:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayCustomFormat<enum_Mesh_ArrayCustomFormat>` **ARRAY_CUSTOM_RGBA8_UNORM** = ``0``
Indica que este canal personalizado contiene colores de bytes normalizados sin signo de 0 a 1, codificados como :ref:`PackedByteArray<class_PackedByteArray>`.
.. _class_Mesh_constant_ARRAY_CUSTOM_RGBA8_SNORM:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayCustomFormat<enum_Mesh_ArrayCustomFormat>` **ARRAY_CUSTOM_RGBA8_SNORM** = ``1``
Indica que este canal personalizado contiene colores de bytes normalizados con signo de -1 a 1, codificados como :ref:`PackedByteArray<class_PackedByteArray>`.
.. _class_Mesh_constant_ARRAY_CUSTOM_RG_HALF:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayCustomFormat<enum_Mesh_ArrayCustomFormat>` **ARRAY_CUSTOM_RG_HALF** = ``2``
Indica que este canal personalizado contiene colores de punto flotante de media precisión, codificados como :ref:`PackedByteArray<class_PackedByteArray>`. Solo se utilizan los canales rojo y verde.
.. _class_Mesh_constant_ARRAY_CUSTOM_RGBA_HALF:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayCustomFormat<enum_Mesh_ArrayCustomFormat>` **ARRAY_CUSTOM_RGBA_HALF** = ``3``
Indica que este canal personalizado contiene colores de punto flotante de media precisión, codificados como :ref:`PackedByteArray<class_PackedByteArray>`.
.. _class_Mesh_constant_ARRAY_CUSTOM_R_FLOAT:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayCustomFormat<enum_Mesh_ArrayCustomFormat>` **ARRAY_CUSTOM_R_FLOAT** = ``4``
Indica que este canal personalizado contiene colores de punto flotante completo, en un :ref:`PackedFloat32Array<class_PackedFloat32Array>`. Solo se utiliza el canal rojo.
.. _class_Mesh_constant_ARRAY_CUSTOM_RG_FLOAT:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayCustomFormat<enum_Mesh_ArrayCustomFormat>` **ARRAY_CUSTOM_RG_FLOAT** = ``5``
Indica que este canal personalizado contiene colores de punto flotante completo, en un :ref:`PackedFloat32Array<class_PackedFloat32Array>`. Solo se utilizan los canales rojo y verde.
.. _class_Mesh_constant_ARRAY_CUSTOM_RGB_FLOAT:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayCustomFormat<enum_Mesh_ArrayCustomFormat>` **ARRAY_CUSTOM_RGB_FLOAT** = ``6``
Indica que este canal personalizado contiene colores de punto flotante completo, en un :ref:`PackedFloat32Array<class_PackedFloat32Array>`. Solo se utilizan los canales rojo, verde y azul.
.. _class_Mesh_constant_ARRAY_CUSTOM_RGBA_FLOAT:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayCustomFormat<enum_Mesh_ArrayCustomFormat>` **ARRAY_CUSTOM_RGBA_FLOAT** = ``7``
Indica que este canal personalizado contiene colores de punto flotante completo, en un :ref:`PackedFloat32Array<class_PackedFloat32Array>`.
.. _class_Mesh_constant_ARRAY_CUSTOM_MAX:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayCustomFormat<enum_Mesh_ArrayCustomFormat>` **ARRAY_CUSTOM_MAX** = ``8``
Representa el tamaño del enum :ref:`ArrayCustomFormat<enum_Mesh_ArrayCustomFormat>`.
.. rst-class:: classref-item-separator
----
.. _enum_Mesh_ArrayFormat:
.. rst-class:: classref-enumeration
flags **ArrayFormat**: :ref:`🔗<enum_Mesh_ArrayFormat>`
.. _class_Mesh_constant_ARRAY_FORMAT_VERTEX:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_VERTEX** = ``1``
El array de malla contiene vértices. Todas las mallas requieren un array de vértices, así que esto siempre debe estar presente.
.. _class_Mesh_constant_ARRAY_FORMAT_NORMAL:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_NORMAL** = ``2``
El array de malla contiene normales.
.. _class_Mesh_constant_ARRAY_FORMAT_TANGENT:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_TANGENT** = ``4``
El array de malla contiene tangentes.
.. _class_Mesh_constant_ARRAY_FORMAT_COLOR:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_COLOR** = ``8``
El array de malla contiene colores.
.. _class_Mesh_constant_ARRAY_FORMAT_TEX_UV:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_TEX_UV** = ``16``
El array de malla contiene UVs.
.. _class_Mesh_constant_ARRAY_FORMAT_TEX_UV2:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_TEX_UV2** = ``32``
El array de malla contiene un segundo UV.
.. _class_Mesh_constant_ARRAY_FORMAT_CUSTOM0:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_CUSTOM0** = ``64``
El array de malla contiene el índice de canal personalizado 0.
.. _class_Mesh_constant_ARRAY_FORMAT_CUSTOM1:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_CUSTOM1** = ``128``
El array de malla contiene el índice de canal personalizado 1.
.. _class_Mesh_constant_ARRAY_FORMAT_CUSTOM2:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_CUSTOM2** = ``256``
El array de malla contiene el índice de canal personalizado 2.
.. _class_Mesh_constant_ARRAY_FORMAT_CUSTOM3:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_CUSTOM3** = ``512``
El array de malla contiene el índice de canal personalizado 3.
.. _class_Mesh_constant_ARRAY_FORMAT_BONES:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_BONES** = ``1024``
El array de malla contiene huesos.
.. _class_Mesh_constant_ARRAY_FORMAT_WEIGHTS:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_WEIGHTS** = ``2048``
El array de malla contiene pesos de huesos.
.. _class_Mesh_constant_ARRAY_FORMAT_INDEX:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_INDEX** = ``4096``
El array de malla usa índices.
.. _class_Mesh_constant_ARRAY_FORMAT_BLEND_SHAPE_MASK:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_BLEND_SHAPE_MASK** = ``7``
Máscara de los canales de malla permitidos en las blendshapes.
.. _class_Mesh_constant_ARRAY_FORMAT_CUSTOM_BASE:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_CUSTOM_BASE** = ``13``
Desplazamiento del primer canal personalizado.
.. _class_Mesh_constant_ARRAY_FORMAT_CUSTOM_BITS:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_CUSTOM_BITS** = ``3``
Número de bits de formato por canal personalizado. Véase :ref:`ArrayCustomFormat<enum_Mesh_ArrayCustomFormat>`.
.. _class_Mesh_constant_ARRAY_FORMAT_CUSTOM0_SHIFT:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_CUSTOM0_SHIFT** = ``13``
Cantidad a desplazar :ref:`ArrayCustomFormat<enum_Mesh_ArrayCustomFormat>` para el índice de canal personalizado 0.
.. _class_Mesh_constant_ARRAY_FORMAT_CUSTOM1_SHIFT:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_CUSTOM1_SHIFT** = ``16``
Cantidad a desplazar :ref:`ArrayCustomFormat<enum_Mesh_ArrayCustomFormat>` para el índice de canal personalizado 1.
.. _class_Mesh_constant_ARRAY_FORMAT_CUSTOM2_SHIFT:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_CUSTOM2_SHIFT** = ``19``
Cantidad a desplazar :ref:`ArrayCustomFormat<enum_Mesh_ArrayCustomFormat>` para el índice de canal personalizado 2.
.. _class_Mesh_constant_ARRAY_FORMAT_CUSTOM3_SHIFT:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_CUSTOM3_SHIFT** = ``22``
Cantidad a desplazar :ref:`ArrayCustomFormat<enum_Mesh_ArrayCustomFormat>` para el índice de canal personalizado 3.
.. _class_Mesh_constant_ARRAY_FORMAT_CUSTOM_MASK:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_CUSTOM_MASK** = ``7``
Máscara de bits de formato personalizado por canal personalizado. Debe ser desplazado por una de las constantes SHIFT. Véase :ref:`ArrayCustomFormat<enum_Mesh_ArrayCustomFormat>`.
.. _class_Mesh_constant_ARRAY_COMPRESS_FLAGS_BASE:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_COMPRESS_FLAGS_BASE** = ``25``
Desplazamiento de la primera bandera de compresión. Las banderas de compresión deben pasarse a :ref:`ArrayMesh.add_surface_from_arrays()<class_ArrayMesh_method_add_surface_from_arrays>` y :ref:`SurfaceTool.commit()<class_SurfaceTool_method_commit>`.
.. _class_Mesh_constant_ARRAY_FLAG_USE_2D_VERTICES:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FLAG_USE_2D_VERTICES** = ``33554432``
Flag usada para marcar que el array contiene vértices 2D.
.. _class_Mesh_constant_ARRAY_FLAG_USE_DYNAMIC_UPDATE:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FLAG_USE_DYNAMIC_UPDATE** = ``67108864``
Bandera utilizada para marcar que los datos de la malla usarán ``GL_DYNAMIC_DRAW`` en GLES. No se utiliza en Vulkan.
.. _class_Mesh_constant_ARRAY_FLAG_USE_8_BONE_WEIGHTS:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FLAG_USE_8_BONE_WEIGHTS** = ``134217728``
Bandera utilizada para marcar que la malla contiene hasta 8 influencias de hueso por vértice. Esta bandera indica que los elementos :ref:`ARRAY_BONES<class_Mesh_constant_ARRAY_BONES>` y :ref:`ARRAY_WEIGHTS<class_Mesh_constant_ARRAY_WEIGHTS>` tendrán el doble de longitud.
.. _class_Mesh_constant_ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY** = ``268435456``
Bandera utilizada para marcar que la malla no contiene intencionalmente ningún array de vértices.
.. _class_Mesh_constant_ARRAY_FLAG_COMPRESS_ATTRIBUTES:
.. rst-class:: classref-enumeration-constant
:ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FLAG_COMPRESS_ATTRIBUTES** = ``536870912``
Bandera utilizada para marcar que una malla está utilizando atributos comprimidos (vértices, normales, tangentes, UVs). Cuando esta forma de compresión está habilitada, las posiciones de los vértices se empaquetarán en un atributo RGBA16UNORM y se escalarán en el sombreador de vértices. La normal y la tangente se empaquetarán en un RG16UNORM representando un eje, y un float de 16 bits almacenado en el canal A del vértice. Los UVs utilizarán floats normalizados de 16 bits en lugar de floats completos de 32 bits con signo. Cuando utilices este modo de compresión debes usar vértices, normales y tangentes o solo vértices. No puedes usar normales sin tangentes. Los importadores habilitarán automáticamente esta compresión si pueden.
.. rst-class:: classref-item-separator
----
.. _enum_Mesh_BlendShapeMode:
.. rst-class:: classref-enumeration
enum **BlendShapeMode**: :ref:`🔗<enum_Mesh_BlendShapeMode>`
.. _class_Mesh_constant_BLEND_SHAPE_MODE_NORMALIZED:
.. rst-class:: classref-enumeration-constant
:ref:`BlendShapeMode<enum_Mesh_BlendShapeMode>` **BLEND_SHAPE_MODE_NORMALIZED** = ``0``
Las formas de la mezcla se normalizan.
.. _class_Mesh_constant_BLEND_SHAPE_MODE_RELATIVE:
.. rst-class:: classref-enumeration-constant
:ref:`BlendShapeMode<enum_Mesh_BlendShapeMode>` **BLEND_SHAPE_MODE_RELATIVE** = ``1``
Las formas de la mezcla son relativas al peso base.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Descripciones de Propiedades
--------------------------------------------------------
.. _class_Mesh_property_lightmap_size_hint:
.. rst-class:: classref-property
:ref:`Vector2i<class_Vector2i>` **lightmap_size_hint** = ``Vector2i(0, 0)`` :ref:`🔗<class_Mesh_property_lightmap_size_hint>`
.. rst-class:: classref-property-setget
- |void| **set_lightmap_size_hint**\ (\ value\: :ref:`Vector2i<class_Vector2i>`\ )
- :ref:`Vector2i<class_Vector2i>` **get_lightmap_size_hint**\ (\ )
Sets a hint to be used for lightmap resolution.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Descripciones de Métodos
------------------------------------------------
.. _class_Mesh_private_method__get_aabb:
.. rst-class:: classref-method
:ref:`AABB<class_AABB>` **_get_aabb**\ (\ ) |virtual| |required| |const| :ref:`🔗<class_Mesh_private_method__get_aabb>`
Método virtual para sobrescribir el :ref:`AABB<class_AABB>` para una clase personalizada que extiende **Mesh**.
.. rst-class:: classref-item-separator
----
.. _class_Mesh_private_method__get_blend_shape_count:
.. rst-class:: classref-method
:ref:`int<class_int>` **_get_blend_shape_count**\ (\ ) |virtual| |required| |const| :ref:`🔗<class_Mesh_private_method__get_blend_shape_count>`
Método virtual para sobrescribir el número de blendshapes para una clase personalizada que extiende **Mesh**.
.. rst-class:: classref-item-separator
----
.. _class_Mesh_private_method__get_blend_shape_name:
.. rst-class:: classref-method
:ref:`StringName<class_StringName>` **_get_blend_shape_name**\ (\ index\: :ref:`int<class_int>`\ ) |virtual| |required| |const| :ref:`🔗<class_Mesh_private_method__get_blend_shape_name>`
Método virtual para sobrescribir la recuperación de nombres de blendshapes para una clase personalizada que extiende **Mesh**.
.. rst-class:: classref-item-separator
----
.. _class_Mesh_private_method__get_surface_count:
.. rst-class:: classref-method
:ref:`int<class_int>` **_get_surface_count**\ (\ ) |virtual| |required| |const| :ref:`🔗<class_Mesh_private_method__get_surface_count>`
Método virtual para sobrescribir el recuento de superficies para una clase personalizada que extiende **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<class_int>`, name\: :ref:`StringName<class_StringName>`\ ) |virtual| |required| :ref:`🔗<class_Mesh_private_method__set_blend_shape_name>`
Método virtual para sobrescribir los nombres de los blendshapes para una clase personalizada que extiende **Mesh**.
.. rst-class:: classref-item-separator
----
.. _class_Mesh_private_method__surface_get_array_index_len:
.. rst-class:: classref-method
:ref:`int<class_int>` **_surface_get_array_index_len**\ (\ index\: :ref:`int<class_int>`\ ) |virtual| |required| |const| :ref:`🔗<class_Mesh_private_method__surface_get_array_index_len>`
Método virtual para sobrescribir la longitud del array de índices de superficie para una clase personalizada que extiende **Mesh**.
.. rst-class:: classref-item-separator
----
.. _class_Mesh_private_method__surface_get_array_len:
.. rst-class:: classref-method
:ref:`int<class_int>` **_surface_get_array_len**\ (\ index\: :ref:`int<class_int>`\ ) |virtual| |required| |const| :ref:`🔗<class_Mesh_private_method__surface_get_array_len>`
Método virtual para sobrescribir la longitud del array de superficie para una clase personalizada que extiende **Mesh**.
.. rst-class:: classref-item-separator
----
.. _class_Mesh_private_method__surface_get_arrays:
.. rst-class:: classref-method
:ref:`Array<class_Array>` **_surface_get_arrays**\ (\ index\: :ref:`int<class_int>`\ ) |virtual| |required| |const| :ref:`🔗<class_Mesh_private_method__surface_get_arrays>`
Método virtual para sobrescribir los arrays de superficie para una clase personalizada que extiende **Mesh**.
.. rst-class:: classref-item-separator
----
.. _class_Mesh_private_method__surface_get_blend_shape_arrays:
.. rst-class:: classref-method
:ref:`Array<class_Array>`\[:ref:`Array<class_Array>`\] **_surface_get_blend_shape_arrays**\ (\ index\: :ref:`int<class_int>`\ ) |virtual| |required| |const| :ref:`🔗<class_Mesh_private_method__surface_get_blend_shape_arrays>`
Método virtual para sobrescribir los arrays de blend shape para una clase personalizada que extiende **Mesh**.
.. rst-class:: classref-item-separator
----
.. _class_Mesh_private_method__surface_get_format:
.. rst-class:: classref-method
:ref:`int<class_int>` **_surface_get_format**\ (\ index\: :ref:`int<class_int>`\ ) |virtual| |required| |const| :ref:`🔗<class_Mesh_private_method__surface_get_format>`
Método virtual para sobrescribir el formato de superficie para una clase personalizada que extiende **Mesh**.
.. rst-class:: classref-item-separator
----
.. _class_Mesh_private_method__surface_get_lods:
.. rst-class:: classref-method
:ref:`Dictionary<class_Dictionary>` **_surface_get_lods**\ (\ index\: :ref:`int<class_int>`\ ) |virtual| |required| |const| :ref:`🔗<class_Mesh_private_method__surface_get_lods>`
Método virtual para sobrescribir los LODs de superficie para una clase personalizada que extiende **Mesh**.
.. rst-class:: classref-item-separator
----
.. _class_Mesh_private_method__surface_get_material:
.. rst-class:: classref-method
:ref:`Material<class_Material>` **_surface_get_material**\ (\ index\: :ref:`int<class_int>`\ ) |virtual| |required| |const| :ref:`🔗<class_Mesh_private_method__surface_get_material>`
Método virtual para sobrescribir el material de superficie para una clase personalizada que extiende **Mesh**.
.. rst-class:: classref-item-separator
----
.. _class_Mesh_private_method__surface_get_primitive_type:
.. rst-class:: classref-method
:ref:`int<class_int>` **_surface_get_primitive_type**\ (\ index\: :ref:`int<class_int>`\ ) |virtual| |required| |const| :ref:`🔗<class_Mesh_private_method__surface_get_primitive_type>`
Método virtual para sobrescribir el tipo de primitiva de superficie para una clase personalizada que extiende **Mesh**.
.. rst-class:: classref-item-separator
----
.. _class_Mesh_private_method__surface_set_material:
.. rst-class:: classref-method
|void| **_surface_set_material**\ (\ index\: :ref:`int<class_int>`, material\: :ref:`Material<class_Material>`\ ) |virtual| |required| :ref:`🔗<class_Mesh_private_method__surface_set_material>`
Método virtual para sobrescribir la configuración de un ``material`` en el ``index`` dado para una clase personalizada que extiende **Mesh**.
.. rst-class:: classref-item-separator
----
.. _class_Mesh_method_create_convex_shape:
.. rst-class:: classref-method
:ref:`ConvexPolygonShape3D<class_ConvexPolygonShape3D>` **create_convex_shape**\ (\ clean\: :ref:`bool<class_bool>` = true, simplify\: :ref:`bool<class_bool>` = false\ ) |const| :ref:`🔗<class_Mesh_method_create_convex_shape>`
Calcula un :ref:`ConvexPolygonShape3D<class_ConvexPolygonShape3D>` a partir de la malla.
Si ``clean`` es ``true`` (por defecto), los vértices duplicados e interiores se eliminan automáticamente. Puedes establecerlo en ``false`` para que el proceso sea más rápido si no es necesario.
Si ``simplify`` es ``true``, la geometría puede simplificarse aún más para reducir el número de vértices. Desactivado por defecto.
.. rst-class:: classref-item-separator
----
.. _class_Mesh_method_create_outline:
.. rst-class:: classref-method
:ref:`Mesh<class_Mesh>` **create_outline**\ (\ margin\: :ref:`float<class_float>`\ ) |const| :ref:`🔗<class_Mesh_method_create_outline>`
Calcular una malla de contorno en un desplazamiento definido (margen) de la malla original.
\ **Nota:** Este método típicamente devuelve los vértices en orden inverso (por ejemplo, de derecha a izquierda).
.. rst-class:: classref-item-separator
----
.. _class_Mesh_method_create_placeholder:
.. rst-class:: classref-method
:ref:`Resource<class_Resource>` **create_placeholder**\ (\ ) |const| :ref:`🔗<class_Mesh_method_create_placeholder>`
Crea una versión de marcador de posición de este recurso (:ref:`PlaceholderMesh<class_PlaceholderMesh>`).
.. rst-class:: classref-item-separator
----
.. _class_Mesh_method_create_trimesh_shape:
.. rst-class:: classref-method
:ref:`ConcavePolygonShape3D<class_ConcavePolygonShape3D>` **create_trimesh_shape**\ (\ ) |const| :ref:`🔗<class_Mesh_method_create_trimesh_shape>`
Calcula un :ref:`ConcavePolygonShape3D<class_ConcavePolygonShape3D>` a partir de la malla.
.. rst-class:: classref-item-separator
----
.. _class_Mesh_method_generate_triangle_mesh:
.. rst-class:: classref-method
:ref:`TriangleMesh<class_TriangleMesh>` **generate_triangle_mesh**\ (\ ) |const| :ref:`🔗<class_Mesh_method_generate_triangle_mesh>`
Genera un :ref:`TriangleMesh<class_TriangleMesh>` a partir de la malla. Considera sólo las superficies que utilizan uno de estos tipos de primitivas: :ref:`PRIMITIVE_TRIANGLES<class_Mesh_constant_PRIMITIVE_TRIANGLES>`, :ref:`PRIMITIVE_TRIANGLE_STRIP<class_Mesh_constant_PRIMITIVE_TRIANGLE_STRIP>`.
.. rst-class:: classref-item-separator
----
.. _class_Mesh_method_get_aabb:
.. rst-class:: classref-method
:ref:`AABB<class_AABB>` **get_aabb**\ (\ ) |const| :ref:`🔗<class_Mesh_method_get_aabb>`
Devuelve el :ref:`AABB<class_AABB>` más pequeño que encierra esta malla en el espacio local. No se ve afectado por ``custom_aabb``.
\ **Nota:** Esto sólo está implementado para :ref:`ArrayMesh<class_ArrayMesh>` y :ref:`PrimitiveMesh<class_PrimitiveMesh>`.
.. rst-class:: classref-item-separator
----
.. _class_Mesh_method_get_faces:
.. rst-class:: classref-method
:ref:`PackedVector3Array<class_PackedVector3Array>` **get_faces**\ (\ ) |const| :ref:`🔗<class_Mesh_method_get_faces>`
Devuelve todos los vértices que forman las caras de la malla. Cada tres vértices representan un triángulo.
.. rst-class:: classref-item-separator
----
.. _class_Mesh_method_get_surface_count:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_surface_count**\ (\ ) |const| :ref:`🔗<class_Mesh_method_get_surface_count>`
Devuelve el número de superficies que contiene la **Mesh**. Esto es equivalente a :ref:`MeshInstance3D.get_surface_override_material_count()<class_MeshInstance3D_method_get_surface_override_material_count>`.
.. rst-class:: classref-item-separator
----
.. _class_Mesh_method_surface_get_arrays:
.. rst-class:: classref-method
:ref:`Array<class_Array>` **surface_get_arrays**\ (\ surf_idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_Mesh_method_surface_get_arrays>`
Devuelve los arrays para los vértices, normales, UVs, etc. que conforman la superficie solicitada (véase :ref:`ArrayMesh.add_surface_from_arrays()<class_ArrayMesh_method_add_surface_from_arrays>`).
.. rst-class:: classref-item-separator
----
.. _class_Mesh_method_surface_get_blend_shape_arrays:
.. rst-class:: classref-method
:ref:`Array<class_Array>`\[:ref:`Array<class_Array>`\] **surface_get_blend_shape_arrays**\ (\ surf_idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_Mesh_method_surface_get_blend_shape_arrays>`
Devuelve los arrays de formas de mezcla para la superficie solicitada.
.. rst-class:: classref-item-separator
----
.. _class_Mesh_method_surface_get_material:
.. rst-class:: classref-method
:ref:`Material<class_Material>` **surface_get_material**\ (\ surf_idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_Mesh_method_surface_get_material>`
Devuelve un :ref:`Material<class_Material>` en una superficie dada. La superficie se renderiza usando este material.
\ **Nota:** Esto devuelve el material dentro del recurso **Mesh**, no el :ref:`Material<class_Material>` asociado a las propiedades de Surface Material Override de :ref:`MeshInstance3D<class_MeshInstance3D>`. Para obtener el :ref:`Material<class_Material>` asociado a las propiedades de Surface Material Override de :ref:`MeshInstance3D<class_MeshInstance3D>`, usa :ref:`MeshInstance3D.get_surface_override_material()<class_MeshInstance3D_method_get_surface_override_material>` en su lugar.
.. rst-class:: classref-item-separator
----
.. _class_Mesh_method_surface_set_material:
.. rst-class:: classref-method
|void| **surface_set_material**\ (\ surf_idx\: :ref:`int<class_int>`, material\: :ref:`Material<class_Material>`\ ) :ref:`🔗<class_Mesh_method_surface_set_material>`
Establece un :ref:`Material<class_Material>` para una superficie dada. La superficie se renderizará usando este material.
\ **Nota:** Esto asigna el material dentro del recurso **Mesh**, no el :ref:`Material<class_Material>` asociado a las propiedades de Surface Material Override de :ref:`MeshInstance3D<class_MeshInstance3D>`. Para establecer el :ref:`Material<class_Material>` asociado a las propiedades de Surface Material Override de :ref:`MeshInstance3D<class_MeshInstance3D>`, usa :ref:`MeshInstance3D.set_surface_override_material()<class_MeshInstance3D_method_set_surface_override_material>` en su lugar.
.. |virtual| replace:: :abbr:`virtual (Normalmente, este método debería ser sobreescrito por el usuario para que tenga algún efecto.)`
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
.. |const| replace:: :abbr:`const (Este método no tiene efectos secundarios. No modifica ninguna de las variables miembro de la instancia.)`
.. |vararg| replace:: :abbr:`vararg (Este método permite agregar cualquier número de argumentos después de los descritos aquí.)`
.. |constructor| replace:: :abbr:`constructor (Este método se utiliza para construir un tipo.)`
.. |static| replace:: :abbr:`static (Este método no necesita una instancia para ser llamado, por lo que puede llamarse directamente utilizando el nombre de la clase.)`
.. |operator| replace:: :abbr:`operator (Este método describe un operador válido para usar con este tipo como operando izquierdo.)`
.. |bitfield| replace:: :abbr:`BitField (Este valor es un entero compuesto como una máscara de bits de las siguientes banderas.)`
.. |void| replace:: :abbr:`void (Sin valor de retorno.)`