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.

Sistemi di particelle (2D)

Questa sezione del tutorial tratta i sistemi di particelle (3D) accelerati dalla GPU. La maggior parte degli argomenti trattati qui si applica anche alle particelle basate sulla CPU.

Introduzione

È possibile utilizzare sistemi di particelle per simulare effetti fisici complessi come fuoco, scintille, fumo, effetti magici e molti altri. Sono particolarmente adatti per creare comportamenti dinamici e organici e aggiungere "vita" alle scene.

L'idea è che una particella è emessa a intervalli fissi e con una durata di vita fissa. Durante la sua vita, ogni particella avrà lo stesso comportamento di base. Ciò che rende ogni particella diversa dalle altre, e ne determina l'aspetto organico, è la casualità che si può aggiungere a gran parte dei suoi parametri e comportamenti.

Ogni sistema di particelle creato in Godot è costituito da due parti principali: particelle ed emettitori.

Particelle

Una particella è la parte visibile di un sistema di particelle. È ciò che si vede sullo schermo quando un sistema di particelle è attivo: minuscoli granelli di polvere, le fiamme di un fuoco, le sfere brillanti di un effetto magico. È possibile avere da un paio di centinaia a decine di migliaia di particelle in un singolo sistema. Per una particella, è possibile randomizzarne la dimensione, la velocità e la direzione di movimento, e cambiarne il colore nel corso della sua durata. Pensando a un fuoco, tutte le piccole braci che si allontanano da esso si possono interpretare come singole particelle.

Emettitori

Un emettitore è ciò che crea le particelle. Gli emettitori di solito non sono visibili, ma possono avere una forma. Questa forma controlla dove e come le particelle vengono generate, ad esempio se devono riempire una stanza come polvere oppure schizzare via da un singolo punto come una fontana. Tornando all'esempio del fuoco, un emettitore sarebbe il calore al centro del fuoco che crea le braci e le fiamme.

Panoramica dei nodi

Un elenco di nodi relativi alle particelle 3D

Tutti i nodi di particelle 3D disponibili in Godot

In Godot ci sono due tipi di sistemi di particelle 3D: GPUParticles3D, che sono elaborati sulla GPU, e CPUParticles3D, che sono elaborati sulla CPU.

I sistemi di particelle sulla CPU sono meno flessibili delle loro controparti sulla GPU, ma funzionano su una gamma più ampia di hardware e offrono un supporto migliore per dispositivi e telefoni più datati. Poiché sono elaborati dalla CPU, non sono performanti quanto i sistemi di particelle sulla GPU e non possono renderizzare altrettante particelle singole. Inoltre, al momento non offrono tutte le opzioni disponibili in confronto alle particelle sulla GPU.

I sistemi di particelle sulla GPU possono renderizzare centinaia di migliaia di particelle su hardware moderno. È possibile scrivere shader di particelle personalizzati, il che li rende molto flessibili. È anche possibile farli interagire con l'ambiente utilizzando nodi di attrattore e di collisione.

Ci sono tre nodi attrattori di particelle: GPUParticlesAttractorBox3D, GPUParticlesAttractorSphere3D e GPUParticlesAttractorVectorField3D. Un nodo attrattore applica una forza a tutte le particelle nel suo raggio d'azione e le avvicina o le allontana in base alla direzione di tale forza.

Ci sono vari nodi di collisione di particelle. GPUParticlesCollisionBox3D e GPUParticlesCollisionSphere3D sono quelli più semplici. È possibile utilizzarli per creare forme base come scatole, un pavimento o un muro con cui le particelle collidono. Gli altri due nodi forniscono un comportamento di collisione più complesso. GPUParticlesCollisionSDF3D è utile quando si desidera che le scene al coperto collidano con le particelle senza dover creare manualmente tutti i singoli collisori di scatole e sfere. Se si desidera che le particelle collidano con grandi scene all'aperto, si utilizza il nodo GPUParticlesCollisionHeightField3D. Crea una heightmap del mondo e degli oggetti in esso contenuti e la utilizza per collisioni di particelle su larga scala.

Utilizzo di base

Argomenti avanzati