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

262 lines
14 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:github_url: hide
.. _class_GPUParticlesCollisionSDF3D:
GPUParticlesCollisionSDF3D
==========================
**Eredita:** :ref:`GPUParticlesCollision3D<class_GPUParticlesCollision3D>` **<** :ref:`VisualInstance3D<class_VisualInstance3D>` **<** :ref:`Node3D<class_Node3D>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
Una forma di collisione di particelle 3D con campo di distanza con segno che influenza i nodi :ref:`GPUParticles3D<class_GPUParticles3D>`.
.. rst-class:: classref-introduction-group
Descrizione
----------------------
Una forma di collisione di particelle 3D con campo di distanza con segno precalcolato che influenza i nodi :ref:`GPUParticles3D<class_GPUParticles3D>`.
I campi di distanza con segno (Signed distance field o SDF) consentono di rappresentare in modo efficiente forme di collisione approssimative per oggetti convessi e concavi di qualsiasi forma. Questo è più flessibile di :ref:`GPUParticlesCollisionHeightField3D<class_GPUParticlesCollisionHeightField3D>`, ma richiede una fase di precalcolo.
\ **Precalcolo:** La texture del campo di distanza con segno può essere precalcolata selezionando il nodo **GPUParticlesCollisionSDF3D** nell'editor, quindi cliccando su **Precalcola SDF** nella parte superiore della viewport 3D. Qualsiasi :ref:`MeshInstance3D<class_MeshInstance3D>` *visibile* all'interno di :ref:`size<class_GPUParticlesCollisionSDF3D_property_size>` sarà presa in considerazione per il precalcolo, a prescindere dalla sua :ref:`GeometryInstance3D.gi_mode<class_GeometryInstance3D_property_gi_mode>`.
\ **Nota:** Il precalcolo di una :ref:`texture<class_GPUParticlesCollisionSDF3D_property_texture>` di **GPUParticlesCollisionSDF3D** è possibile solo all'interno dell'editor, poiché non esiste un metodo di precalcolo esposto per l'uso nei progetti esportati. Tuttavia, è comunque possibile caricare :ref:`Texture3D<class_Texture3D>` precalcolati nella sua proprietà :ref:`texture<class_GPUParticlesCollisionSDF3D_property_texture>` in un progetto esportato.
\ **Nota:** :ref:`ParticleProcessMaterial.collision_mode<class_ParticleProcessMaterial_property_collision_mode>` deve essere :ref:`ParticleProcessMaterial.COLLISION_RIGID<class_ParticleProcessMaterial_constant_COLLISION_RIGID>` o :ref:`ParticleProcessMaterial.COLLISION_HIDE_ON_CONTACT<class_ParticleProcessMaterial_constant_COLLISION_HIDE_ON_CONTACT>` sul materiale di processo di :ref:`GPUParticles3D<class_GPUParticles3D>` affinché la collisione funzioni.
\ **Nota:** La collisione di particelle riguarda solo i :ref:`GPUParticles3D<class_GPUParticles3D>`, non i :ref:`CPUParticles3D<class_CPUParticles3D>`.
.. rst-class:: classref-reftable-group
Proprietà
------------------
.. table::
:widths: auto
+---------------------------------------------------------------+-------------------------------------------------------------------------+----------------------+
| :ref:`int<class_int>` | :ref:`bake_mask<class_GPUParticlesCollisionSDF3D_property_bake_mask>` | ``4294967295`` |
+---------------------------------------------------------------+-------------------------------------------------------------------------+----------------------+
| :ref:`Resolution<enum_GPUParticlesCollisionSDF3D_Resolution>` | :ref:`resolution<class_GPUParticlesCollisionSDF3D_property_resolution>` | ``2`` |
+---------------------------------------------------------------+-------------------------------------------------------------------------+----------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`size<class_GPUParticlesCollisionSDF3D_property_size>` | ``Vector3(2, 2, 2)`` |
+---------------------------------------------------------------+-------------------------------------------------------------------------+----------------------+
| :ref:`Texture3D<class_Texture3D>` | :ref:`texture<class_GPUParticlesCollisionSDF3D_property_texture>` | |
+---------------------------------------------------------------+-------------------------------------------------------------------------+----------------------+
| :ref:`float<class_float>` | :ref:`thickness<class_GPUParticlesCollisionSDF3D_property_thickness>` | ``1.0`` |
+---------------------------------------------------------------+-------------------------------------------------------------------------+----------------------+
.. rst-class:: classref-reftable-group
Metodi
------------
.. table::
:widths: auto
+-------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`get_bake_mask_value<class_GPUParticlesCollisionSDF3D_method_get_bake_mask_value>`\ (\ layer_number\: :ref:`int<class_int>`\ ) |const| |
+-------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_bake_mask_value<class_GPUParticlesCollisionSDF3D_method_set_bake_mask_value>`\ (\ layer_number\: :ref:`int<class_int>`, value\: :ref:`bool<class_bool>`\ ) |
+-------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Enumerazioni
------------------------
.. _enum_GPUParticlesCollisionSDF3D_Resolution:
.. rst-class:: classref-enumeration
enum **Resolution**: :ref:`🔗<enum_GPUParticlesCollisionSDF3D_Resolution>`
.. _class_GPUParticlesCollisionSDF3D_constant_RESOLUTION_16:
.. rst-class:: classref-enumeration-constant
:ref:`Resolution<enum_GPUParticlesCollisionSDF3D_Resolution>` **RESOLUTION_16** = ``0``
Pre-elabora un campo di distanza con segno 16×16×16. Questa è l'opzione più veloce, ma anche la meno precisa.
.. _class_GPUParticlesCollisionSDF3D_constant_RESOLUTION_32:
.. rst-class:: classref-enumeration-constant
:ref:`Resolution<enum_GPUParticlesCollisionSDF3D_Resolution>` **RESOLUTION_32** = ``1``
Pre-elabora un campo di distanza con segno 32×32×32.
.. _class_GPUParticlesCollisionSDF3D_constant_RESOLUTION_64:
.. rst-class:: classref-enumeration-constant
:ref:`Resolution<enum_GPUParticlesCollisionSDF3D_Resolution>` **RESOLUTION_64** = ``2``
Pre-elabora un campo di distanza con segno 64×64×64.
.. _class_GPUParticlesCollisionSDF3D_constant_RESOLUTION_128:
.. rst-class:: classref-enumeration-constant
:ref:`Resolution<enum_GPUParticlesCollisionSDF3D_Resolution>` **RESOLUTION_128** = ``3``
Pre-elabora un campo di distanza con segno 128×128×128.
.. _class_GPUParticlesCollisionSDF3D_constant_RESOLUTION_256:
.. rst-class:: classref-enumeration-constant
:ref:`Resolution<enum_GPUParticlesCollisionSDF3D_Resolution>` **RESOLUTION_256** = ``4``
Pre-elabora un campo di distanza con segno 256×256×256.
.. _class_GPUParticlesCollisionSDF3D_constant_RESOLUTION_512:
.. rst-class:: classref-enumeration-constant
:ref:`Resolution<enum_GPUParticlesCollisionSDF3D_Resolution>` **RESOLUTION_512** = ``5``
Pre-elabora un campo di distanza con segno 512×512×512. Questa è l'opzione più lenta, ma anche la più precisa.
.. _class_GPUParticlesCollisionSDF3D_constant_RESOLUTION_MAX:
.. rst-class:: classref-enumeration-constant
:ref:`Resolution<enum_GPUParticlesCollisionSDF3D_Resolution>` **RESOLUTION_MAX** = ``6``
Rappresenta la dimensione dell'enumerazione :ref:`Resolution<enum_GPUParticlesCollisionSDF3D_Resolution>`.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Descrizioni delle proprietà
------------------------------------------------------
.. _class_GPUParticlesCollisionSDF3D_property_bake_mask:
.. rst-class:: classref-property
:ref:`int<class_int>` **bake_mask** = ``4294967295`` :ref:`🔗<class_GPUParticlesCollisionSDF3D_property_bake_mask>`
.. rst-class:: classref-property-setget
- |void| **set_bake_mask**\ (\ value\: :ref:`int<class_int>`\ )
- :ref:`int<class_int>` **get_bake_mask**\ (\ )
Gli strati visivi da considerare quando si precalcola l'SDF di collisione delle particelle. Solo i :ref:`MeshInstance3D<class_MeshInstance3D>` i cui :ref:`VisualInstance3D.layers<class_VisualInstance3D_property_layers>` corrispondono a questo :ref:`bake_mask<class_GPUParticlesCollisionSDF3D_property_bake_mask>` saranno inclusi nell'SDF di collisione delle particelle generato. Per impostazione predefinita, tutti gli oggetti sono presi in considerazione per il baking dell'SDF di collisione delle particelle.
.. rst-class:: classref-item-separator
----
.. _class_GPUParticlesCollisionSDF3D_property_resolution:
.. rst-class:: classref-property
:ref:`Resolution<enum_GPUParticlesCollisionSDF3D_Resolution>` **resolution** = ``2`` :ref:`🔗<class_GPUParticlesCollisionSDF3D_property_resolution>`
.. rst-class:: classref-property-setget
- |void| **set_resolution**\ (\ value\: :ref:`Resolution<enum_GPUParticlesCollisionSDF3D_Resolution>`\ )
- :ref:`Resolution<enum_GPUParticlesCollisionSDF3D_Resolution>` **get_resolution**\ (\ )
La risoluzione di precalcolo da usare per la :ref:`texture<class_GPUParticlesCollisionSDF3D_property_texture>` del campo di distanza con segno. La texture deve essere nuovamente precalcolata affinché le modifiche alla proprietà :ref:`resolution<class_GPUParticlesCollisionSDF3D_property_resolution>` siano effettive. Risoluzioni più elevate hanno un costo maggiore sulle prestazioni e richiedono più tempo per l'elaborazione. Le risoluzioni più elevate comportano anche texture precalcolate più grandi, portando a maggiori requisiti di VRAM e spazio di archiviazione. Per migliorare le prestazioni e ridurre i tempi di precalcolo, usa la risoluzione più bassa possibile per l'oggetto di cui stai rappresentando la collisione.
.. rst-class:: classref-item-separator
----
.. _class_GPUParticlesCollisionSDF3D_property_size:
.. rst-class:: classref-property
:ref:`Vector3<class_Vector3>` **size** = ``Vector3(2, 2, 2)`` :ref:`🔗<class_GPUParticlesCollisionSDF3D_property_size>`
.. rst-class:: classref-property-setget
- |void| **set_size**\ (\ value\: :ref:`Vector3<class_Vector3>`\ )
- :ref:`Vector3<class_Vector3>` **get_size**\ (\ )
Le dimensioni dell'SDF di collisione in unità 3D. Per migliorare la qualità dell'SDF, :ref:`size<class_GPUParticlesCollisionSDF3D_property_size>` dovrebbe essere impostato il più piccolo possibile, coprendo le parti della scena di cui hai bisogno.
.. rst-class:: classref-item-separator
----
.. _class_GPUParticlesCollisionSDF3D_property_texture:
.. rst-class:: classref-property
:ref:`Texture3D<class_Texture3D>` **texture** :ref:`🔗<class_GPUParticlesCollisionSDF3D_property_texture>`
.. rst-class:: classref-property-setget
- |void| **set_texture**\ (\ value\: :ref:`Texture3D<class_Texture3D>`\ )
- :ref:`Texture3D<class_Texture3D>` **get_texture**\ (\ )
La texture 3D che rappresenta il campo di distanza con segno.
.. rst-class:: classref-item-separator
----
.. _class_GPUParticlesCollisionSDF3D_property_thickness:
.. rst-class:: classref-property
:ref:`float<class_float>` **thickness** = ``1.0`` :ref:`🔗<class_GPUParticlesCollisionSDF3D_property_thickness>`
.. rst-class:: classref-property-setget
- |void| **set_thickness**\ (\ value\: :ref:`float<class_float>`\ )
- :ref:`float<class_float>` **get_thickness**\ (\ )
Spessore della forma di collisione. A differenza di altri collisori di particelle, **GPUParticlesCollisionSDF3D** è in realtà cavo all'interno. :ref:`thickness<class_GPUParticlesCollisionSDF3D_property_thickness>` può essere aumentato per impedire alle particelle di passare attraverso la forma di collisione ad alta velocità o quando **GPUParticlesCollisionSDF3D** viene spostato.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Descrizioni dei metodi
--------------------------------------------
.. _class_GPUParticlesCollisionSDF3D_method_get_bake_mask_value:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **get_bake_mask_value**\ (\ layer_number\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_GPUParticlesCollisionSDF3D_method_get_bake_mask_value>`
Restituisce se lo strato specificato di :ref:`bake_mask<class_GPUParticlesCollisionSDF3D_property_bake_mask>` è abilitato o meno, dato un ``layer_number`` compreso tra 1 e 32.
.. rst-class:: classref-item-separator
----
.. _class_GPUParticlesCollisionSDF3D_method_set_bake_mask_value:
.. rst-class:: classref-method
|void| **set_bake_mask_value**\ (\ layer_number\: :ref:`int<class_int>`, value\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_GPUParticlesCollisionSDF3D_method_set_bake_mask_value>`
In base a ``value``, abilita o disabilita lo strato specificato in :ref:`bake_mask<class_GPUParticlesCollisionSDF3D_property_bake_mask>`, dato un ``layer_number`` compreso tra 1 e 32.
.. |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.)`