Files
godot-docs-l10n/classes/it/class_primitivemesh.rst

220 lines
10 KiB
ReStructuredText

:github_url: hide
.. _class_PrimitiveMesh:
PrimitiveMesh
=============
**Eredita:** :ref:`Mesh<class_Mesh>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
**Ereditato da:** :ref:`BoxMesh<class_BoxMesh>`, :ref:`CapsuleMesh<class_CapsuleMesh>`, :ref:`CylinderMesh<class_CylinderMesh>`, :ref:`PlaneMesh<class_PlaneMesh>`, :ref:`PointMesh<class_PointMesh>`, :ref:`PrismMesh<class_PrismMesh>`, :ref:`RibbonTrailMesh<class_RibbonTrailMesh>`, :ref:`SphereMesh<class_SphereMesh>`, :ref:`TextMesh<class_TextMesh>`, :ref:`TorusMesh<class_TorusMesh>`, :ref:`TubeTrailMesh<class_TubeTrailMesh>`
Classe di base per tutte le mesh primitive. Gestisce l'applicazione di un :ref:`Material<class_Material>` a una mesh primitiva.
.. rst-class:: classref-introduction-group
Descrizione
----------------------
Classe di base per tutte le mesh primitive. Gestisce l'applicazione di un :ref:`Material<class_Material>` a una mesh primitiva. Esempi includono :ref:`BoxMesh<class_BoxMesh>`, :ref:`CapsuleMesh<class_CapsuleMesh>`, :ref:`CylinderMesh<class_CylinderMesh>`, :ref:`PlaneMesh<class_PlaneMesh>`, :ref:`PrismMesh<class_PrismMesh>` e :ref:`SphereMesh<class_SphereMesh>`.
.. rst-class:: classref-reftable-group
Proprietà
------------------
.. table::
:widths: auto
+---------------------------------+--------------------------------------------------------------+----------------------------+
| :ref:`bool<class_bool>` | :ref:`add_uv2<class_PrimitiveMesh_property_add_uv2>` | ``false`` |
+---------------------------------+--------------------------------------------------------------+----------------------------+
| :ref:`AABB<class_AABB>` | :ref:`custom_aabb<class_PrimitiveMesh_property_custom_aabb>` | ``AABB(0, 0, 0, 0, 0, 0)`` |
+---------------------------------+--------------------------------------------------------------+----------------------------+
| :ref:`bool<class_bool>` | :ref:`flip_faces<class_PrimitiveMesh_property_flip_faces>` | ``false`` |
+---------------------------------+--------------------------------------------------------------+----------------------------+
| :ref:`Material<class_Material>` | :ref:`material<class_PrimitiveMesh_property_material>` | |
+---------------------------------+--------------------------------------------------------------+----------------------------+
| :ref:`float<class_float>` | :ref:`uv2_padding<class_PrimitiveMesh_property_uv2_padding>` | ``2.0`` |
+---------------------------------+--------------------------------------------------------------+----------------------------+
.. rst-class:: classref-reftable-group
Metodi
------------
.. table::
:widths: auto
+---------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`Array<class_Array>` | :ref:`_create_mesh_array<class_PrimitiveMesh_private_method__create_mesh_array>`\ (\ ) |virtual| |const| |
+---------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`Array<class_Array>` | :ref:`get_mesh_arrays<class_PrimitiveMesh_method_get_mesh_arrays>`\ (\ ) |const| |
+---------------------------+----------------------------------------------------------------------------------------------------------+
| |void| | :ref:`request_update<class_PrimitiveMesh_method_request_update>`\ (\ ) |
+---------------------------+----------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Descrizioni delle proprietà
------------------------------------------------------
.. _class_PrimitiveMesh_property_add_uv2:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **add_uv2** = ``false`` :ref:`🔗<class_PrimitiveMesh_property_add_uv2>`
.. rst-class:: classref-property-setget
- |void| **set_add_uv2**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_add_uv2**\ (\ )
Se impostato, genera coordinate UV2 UV applicando un padding usando l'impostazione :ref:`uv2_padding<class_PrimitiveMesh_property_uv2_padding>`. L'UV2 è necessario per il lightmapping.
.. rst-class:: classref-item-separator
----
.. _class_PrimitiveMesh_property_custom_aabb:
.. rst-class:: classref-property
:ref:`AABB<class_AABB>` **custom_aabb** = ``AABB(0, 0, 0, 0, 0, 0)`` :ref:`🔗<class_PrimitiveMesh_property_custom_aabb>`
.. rst-class:: classref-property-setget
- |void| **set_custom_aabb**\ (\ value\: :ref:`AABB<class_AABB>`\ )
- :ref:`AABB<class_AABB>` **get_custom_aabb**\ (\ )
Sovrascrive l':ref:`AABB<class_AABB>` con uno definito dall'utente per l'uso con il frustum culling. Particolarmente utile per evitare culling inaspettato quando si utilizza uno shader per scostare i vertici.
.. rst-class:: classref-item-separator
----
.. _class_PrimitiveMesh_property_flip_faces:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **flip_faces** = ``false`` :ref:`🔗<class_PrimitiveMesh_property_flip_faces>`
.. rst-class:: classref-property-setget
- |void| **set_flip_faces**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_flip_faces**\ (\ )
Se ``true``, l'ordine dei vertici in ogni triangolo è invertito, con il risultato che il retro della mesh sarà disegnato.
Ciò fornisce lo stesso risultato di usare :ref:`BaseMaterial3D.CULL_FRONT<class_BaseMaterial3D_constant_CULL_FRONT>` in :ref:`BaseMaterial3D.cull_mode<class_BaseMaterial3D_property_cull_mode>`.
.. rst-class:: classref-item-separator
----
.. _class_PrimitiveMesh_property_material:
.. rst-class:: classref-property
:ref:`Material<class_Material>` **material** :ref:`🔗<class_PrimitiveMesh_property_material>`
.. rst-class:: classref-property-setget
- |void| **set_material**\ (\ value\: :ref:`Material<class_Material>`\ )
- :ref:`Material<class_Material>` **get_material**\ (\ )
Il :ref:`Material<class_Material>` attuale della mesh primitiva.
.. rst-class:: classref-item-separator
----
.. _class_PrimitiveMesh_property_uv2_padding:
.. rst-class:: classref-property
:ref:`float<class_float>` **uv2_padding** = ``2.0`` :ref:`🔗<class_PrimitiveMesh_property_uv2_padding>`
.. rst-class:: classref-property-setget
- |void| **set_uv2_padding**\ (\ value\: :ref:`float<class_float>`\ )
- :ref:`float<class_float>` **get_uv2_padding**\ (\ )
Se :ref:`add_uv2<class_PrimitiveMesh_property_add_uv2>` è impostato, specifica il padding in pixel applicato lungo le cuciture della mesh. Valori di padding più bassi consentono di utilizzare meglio la texture della lightmap (risultando in una maggiore densità di texel), ma potrebbero introdurre un visibile bleeding della lightmap lungo i bordi.
Se le dimensioni della texture della lightmap non possono essere determinate durante la generazione della mesh, l'UV2 è calcolato presupponendo che le dimensioni della texture siano 1024x1024.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Descrizioni dei metodi
--------------------------------------------
.. _class_PrimitiveMesh_private_method__create_mesh_array:
.. rst-class:: classref-method
:ref:`Array<class_Array>` **_create_mesh_array**\ (\ ) |virtual| |const| :ref:`🔗<class_PrimitiveMesh_private_method__create_mesh_array>`
Sovrascrivi questo metodo per personalizzare il modo in cui questa mesh primitiva dovrebbe essere generata. Dovrebbe restituire un :ref:`Array<class_Array>` in cui ogni elemento è un altro Array di valori necessari per la mesh (vedi le costanti di :ref:`ArrayType<enum_Mesh_ArrayType>`).
.. rst-class:: classref-item-separator
----
.. _class_PrimitiveMesh_method_get_mesh_arrays:
.. rst-class:: classref-method
:ref:`Array<class_Array>` **get_mesh_arrays**\ (\ ) |const| :ref:`🔗<class_PrimitiveMesh_method_get_mesh_arrays>`
Restituisce gli array di mesh utilizzati per comporre la superficie di questa mesh primitiva.
\ **Esempio:** Passa il risultato a :ref:`ArrayMesh.add_surface_from_arrays()<class_ArrayMesh_method_add_surface_from_arrays>` per creare una nuova superficie:
.. tabs::
.. code-tab:: gdscript
var c = CylinderMesh.new()
var arr_mesh = ArrayMesh.new()
arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, c.get_mesh_arrays())
.. code-tab:: csharp
var c = new CylinderMesh();
var arrMesh = new ArrayMesh();
arrMesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, c.GetMeshArrays());
.. rst-class:: classref-item-separator
----
.. _class_PrimitiveMesh_method_request_update:
.. rst-class:: classref-method
|void| **request_update**\ (\ ) :ref:`🔗<class_PrimitiveMesh_method_request_update>`
Richiede un aggiornamento di questa mesh primitiva in base alle sue proprietà.
.. |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.)`