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...
Shader di nebbia
Fog shaders are used to define how fog is added to (or subtracted from) a scene in
a given area. Fog shaders are always used together with
FogVolumes and volumetric fog. Fog shaders only have
one processing function, the fog() function.
La risoluzione degli shader di nebbia dipende dalla risoluzione della griglia volumetrica di froxel. Pertanto, il livello di dettaglio che uno shader di nebbia può aggiungere dipende da quanto vicino il FogVolume è dalla telecamera.
Fog shaders are a special form of compute shader that is called once for every froxel that is touched by an axis-aligned bounding box of the associated FogVolume. This means that froxels that just barely touch a given FogVolume will still be used.
Variabili integrate
I valori marcati come in sono di sola lettura. I valori marcati come out sono scrivibili facoltativamente e non contengono necessariamente valori sensati. I campionatori non sono scrivibili, quindi non sono marcati.
Variabili integrate globali
Le variabili integrate globali sono disponibili ovunque, comprese le funzioni personalizzate.
Integrato |
Descrizione |
|---|---|
in float TIME |
Tempo globale dall'avvio del motore, in secondi. Si ripete ogni |
in float PI |
Una costante |
in float TAU |
Una costante |
in float E |
Una costante |
Variabili integrate di nebbia
Tutti i valori di output dei volumi di nebbia si sovrappongono. Ciò permette di renderizzare in modo efficiente i FogVolumes, poiché si possono tutti disegnare contemporaneamente.
Integrato |
Descrizione |
|---|---|
in vec3 WORLD_POSITION |
Posizione della cella del froxel attuale nello spazio mondiale. |
in vec3 OBJECT_POSITION |
Posizione del centro del FogVolume attuale nello spazio mondiale. |
in vec3 UVW |
UV tridimensionale, utilizzato per mappare una texture 3D sul FogVolume attuale. |
in vec3 SIZE |
Dimensioni del FogVolume attuale quando la sua forma ha almeno una dimensione. |
in vec3 SDF |
Signed distance field dalla superficie del FogVolume. Negativo se interno al volume, positivo altrimenti. |
out vec3 ALBEDO |
Valore del colore di base in output, interagisce con la luce per produrre il colore finale. Viene solo scritto sul volume di nebbia se utilizzato. |
out float DENSITY |
Valore di densità in output. Può essere negativo per permettere di sottrarre un volume da un altro. La densità deve essere utilizzata affinché lo shader di nebbia possa scrivere qualsiasi cosa. |
out vec3 EMISSION |
Valore del colore di emissione in output, aggiunto al colore durante il passaggio di luce per produrre il colore finale. Viene solo scritto nel volume di nebbia se utilizzato. |