Up to date
This page is up to date for Godot 4.2
.
If you still find outdated information, please open an issue.
Fog-Shader¶
Fog-Shader werden verwendet, um zu definieren, wie Nebel in einem bestimmten Bereich einer Szene hinzugefügt (oder abgezogen) wird. Fog-Shader werden immer zusammen mit FogVolumes und volumetrischem Nebel verwendet. Fog-Shader haben nur eine Verarbeitungsfunktion, die fog()
Funktion.
Die Auflösung der Fog-Shader hängt von der Auflösung des volumetrischen Nebel-Froxel-Rasters ab. Dementsprechend hängt der Detailgrad, den ein Fog-Shader hinzufügen kann, davon ab, wie nah das FogVolume an der Kamera ist.
Fog-Shader sind eine spezielle Form von Compute-Shadern, die für jedes Froxel, das von einer achsparallelen Bounding-Box des zugehörigen FogVolume berührt wird, einmal aufgerufen wird. Das bedeutet, dass Froxel, die ein bestimmtes FogVolume nur knapp berühren, trotzdem verwendet werden.
Built-ins¶
Die als "in" gekennzeichneten Werte sind schreibgeschützt. Mit "out" gekennzeichnete Werte sind zum optionalen Schreiben vorgesehen und enthalten nicht unbedingt sinnvolle Werte. Sampler können nicht beschrieben werden, daher sind sie nicht markiert.
Globale Built-ins¶
Globale Built-ins sind überall verfügbar, auch in benutzerdefinierten Funktionen.
Built-in |
Beschreibung |
---|---|
in float TIME |
Globale Zeit in Sekunden. |
in float PI |
Eine |
in float TAU |
Eine |
in float E |
Eine |
Fog-Built-ins¶
Alle Ausgabewerte von Nebelvolumina überlagern sich gegenseitig. Dadurch können FogVolumes effizient gerendert werden, da sie alle auf einmal gezeichnet werden können.
Built-in |
Beschreibung |
---|---|
in vec3 WORLD_POSITION |
Position der aktuellen Froxel-Zelle im World-Space. |
in vec3 OBJECT_POSITION |
Position des Zentrums des aktuellen FogVolume im World-Space. |
in vec3 UVW |
3-dimensionale UV, die verwendet wird, um eine 3D-Textur auf das aktuelle FogVolume abzubilden. |
in vec3 SIZE |
Größe des aktuellen FogVolume, wenn sein shape eine Größe hat. |
in vec3 SDF |
Signed Distance Field zur Oberfläche des FogVolume. Negativ, wenn innerhalb des Volumens, sonst positiv. |
out vec3 ALBEDO |
Ausgabe-Basisfarbwert, interagiert mit dem Licht, um die endgültige Farbe zu erzeugen. Wird nur in das Fog Volume geschrieben, wenn es verwendet wird. |
out float DENSITY |
Ausgabe-Dichtewert. Kann negativ sein, damit ein Volumen von einem anderen subtrahiert werden kann. Die Dichte muss verwendet werden, damit der Fog-Shader überhaupt etwas schreiben kann. |
out vec3 EMISSION |
Ausgabe -Emissionsfarbwert, der während des Lichtdurchlaufs zur Farbe addiert wird, um die endgültige Farbe zu erzeugen. Wird nur in das Nebelvolumen geschrieben, wenn es verwendet wird. |