Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
GPUParticlesCollisionSDF3D
Eredita: GPUParticlesCollision3D < VisualInstance3D < Node3D < Node < Object
Una forma di collisione di particelle 3D con campo di distanza con segno che influenza i nodi GPUParticles3D.
Descrizione
Una forma di collisione di particelle 3D con campo di distanza con segno precalcolato che influenza i nodi 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 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 MeshInstance3D visibile all'interno di size sarà presa in considerazione per il precalcolo, a prescindere dalla sua GeometryInstance3D.gi_mode.
Nota: Il precalcolo di una 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 Texture3D precalcolati nella sua proprietà texture in un progetto esportato.
Nota: ParticleProcessMaterial.collision_mode deve essere ParticleProcessMaterial.COLLISION_RIGID o ParticleProcessMaterial.COLLISION_HIDE_ON_CONTACT sul materiale di processo di GPUParticles3D affinché la collisione funzioni.
Nota: La collisione di particelle riguarda solo i GPUParticles3D, non i CPUParticles3D.
Proprietà
|
||
|
||
|
||
|
Metodi
get_bake_mask_value(layer_number: int) const |
|
void |
set_bake_mask_value(layer_number: int, value: bool) |
Enumerazioni
enum Resolution: 🔗
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.
Resolution RESOLUTION_32 = 1
Pre-elabora un campo di distanza con segno 32×32×32.
Resolution RESOLUTION_64 = 2
Pre-elabora un campo di distanza con segno 64×64×64.
Resolution RESOLUTION_128 = 3
Pre-elabora un campo di distanza con segno 128×128×128.
Resolution RESOLUTION_256 = 4
Pre-elabora un campo di distanza con segno 256×256×256.
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.
Resolution RESOLUTION_MAX = 6
Rappresenta la dimensione dell'enumerazione Resolution.
Descrizioni delle proprietà
Gli strati visivi da considerare quando si precalcola l'SDF di collisione delle particelle. Solo i MeshInstance3D i cui VisualInstance3D.layers corrispondono a questo 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.
Resolution resolution = 2 🔗
void set_resolution(value: Resolution)
Resolution get_resolution()
La risoluzione di precalcolo da usare per la texture del campo di distanza con segno. La texture deve essere nuovamente precalcolata affinché le modifiche alla proprietà 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.
Vector3 size = Vector3(2, 2, 2) 🔗
Le dimensioni dell'SDF di collisione in unità 3D. Per migliorare la qualità dell'SDF, size dovrebbe essere impostato il più piccolo possibile, coprendo le parti della scena di cui hai bisogno.
La texture 3D che rappresenta il campo di distanza con segno.
Spessore della forma di collisione. A differenza di altri collisori di particelle, GPUParticlesCollisionSDF3D è in realtà cavo all'interno. thickness può essere aumentato per impedire alle particelle di passare attraverso la forma di collisione ad alta velocità o quando GPUParticlesCollisionSDF3D viene spostato.
Descrizioni dei metodi
bool get_bake_mask_value(layer_number: int) const 🔗
Restituisce se lo strato specificato di bake_mask è abilitato o meno, dato un layer_number compreso tra 1 e 32.
void set_bake_mask_value(layer_number: int, value: bool) 🔗
In base a value, abilita o disabilita lo strato specificato in bake_mask, dato un layer_number compreso tra 1 e 32.