Skip to content

Volumetrische Wolken und Wettereffekte in modernen Spielen

Von Oleg Sidorkin, CTO und Mitgründer von Cinevva

Stilisierte AAA-Szene mit hoch aufragenden volumetrischen Gewitterwolken, Blitzen, Regenschleiern und einer nassen Steinstraße, die den Himmel spiegelt

Vor einigen Wochen schrieb ich über die Rendering-Techniken, mit denen moderne AAA-Spiele tatsächlich veröffentlicht werden. Ein Bereich kam dabei zu kurz: Himmel und Wetter. Denn dieses Thema verdient eine eigene Liste. Wolken, Nebel, Regen und Schnee sind die Systeme, die aus einer Geländedemo einen echten Ort machen. Außerdem teilen sie mehr Code, als es zunächst den Anschein hat. Volumetrische Wolken, Bodennebel und Lichtstrahlen verwenden alle denselben Raymarching-Ansatz. Nasse Straßen, Schneeablagerungen und Fußspuren basieren alle auf demselben Trick aus Displacement und PBR. Wind ist ein einziger Richtungsvektor, den alles in der Szene ausliest.

Hier ist ein kurzer, bewusst meinungsstarker Überblick darüber, wie größere Studios diese Dinge im Jahr 2026 umsetzen – einschließlich der Fachartikel und Engine-Vorträge hinter den einzelnen Techniken.

1. Physikbasierter Himmel und Atmosphäre

Atmosphärische Streuung bildet die Grundlage. Die Farbe des Himmels, der Dunst am Horizont, das Verblauen entfernter Berge und das Orange des Sonnenuntergangs entstehen alle durch die Streuung des Lichts in der Luft. Moderne Engines berechnen dies anhand physikalischer Modelle: Rayleigh-Streuung für das Blau, Mie-Streuung für den Dunst rund um die Sonne und Ozonabsorption für das tiefe Violett am Zenit.

Das ursprüngliche Bruneton-Verfahren von 2008 legte sämtliche Daten in vierdimensionalen Lookup-Tabellen ab. Das schränkte dynamische Tageszeiten ein und verursachte bei niedrigen Sonnenständen LUT-Artefakte. Sébastien Hillaires Aktualisierung aus dem Jahr 2020, die auch in der Sky-Atmosphere-Komponente von UE5 zum Einsatz kommt, ersetzt die hochdimensionalen LUTs durch einige 2D-Texturen und eine Näherung für Mehrfachstreuung, die in jedem Frame aktualisiert wird. Das Verfahren läuft sowohl auf Smartphones als auch auf High-End-PCs.

Physikbasierter Himmel zur goldenen Stunde mit einem sanften Farbverlauf von Orange zu Blau über der Silhouette entfernter Berge

Vertiefende Quellen:

2. Volumetrische Wolken mit Perlin-Worley-Rauschen

Die grundlegende Wolkentechnik moderner Spiele geht auf Andrew Schneiders Vortrag zu Horizon Zero Dawn aus dem Jahr 2015 zurück. Wolken sind keine Meshes. Sie sind eine dreidimensionale Dichtefunktion, die durch mehrere Rauschschichten definiert wird: Eine niedrigfrequente Mischung aus Perlin- und Worley-Rauschen erzeugt die allgemeine Wolkenform, während höherfrequentes Worley-Rauschen die Silhouette zu feinen, faserigen Rändern erodiert. Eine Wetterkarte – eine 2D-Textur, die anhand der XZ-Koordinaten der Welt abgetastet wird – steuert für jede Region Wolkenbedeckung, Wolkentyp und Niederschlag. Ein höhenbasierter Gradient überblendet je nach Höhe zwischen den Profilen von Cumulus-, Stratus- und Cirruswolken.

Der Renderer führt einen Strahl von der Kamera durch das Wolkenvolumen und akkumuliert dabei Dichte und Streuung. Die „Nubis“-Iteration von 2017 ergänzte die Gestaltung und Animation auf regionaler Ebene. Die ursprüngliche PS4-Implementierung benötigte für den gesamten Himmel etwa 2 ms. Die volumetrischen Wolken der meisten Studios lassen sich auch heute noch auf diesen Fachartikel zurückführen.

Eine in übereinanderliegende Perlin- und Worley-Rauschmuster zerlegte 3D-Wolkenform, die zeigt, wie Details die Silhouette erodieren

Vertiefende Quellen:

3. Voxelwolken und Nubis³

Die Weiterentwicklung von Nubis aus dem Jahr 2023 gab die 2,5D-Formrepräsentation vollständig zugunsten echter 3D-Voxel auf. Jedes Voxel speichert die Wolkendichte direkt. Dadurch können Artists Wolkenformen ähnlich wie Terrain modellieren und animieren. Die Kosten der dichteren Repräsentation werden durch eine Beschleunigung des Raymarchings mit komprimierten vorzeichenbehafteten Distanzfeldern und eine geschickte Hochskalierung dünn besetzter Voxeldaten ausgeglichen.

Das Ergebnis sind Wolkenlandschaften, durch die man hindurchfliegen kann, ohne dass die zugrunde liegenden Tricks auseinanderfallen. Für die meisten Studios ist das überdimensioniert, aber in diese Richtung bewegt sich das High-End-Segment.

Eine Cumuluswolke, zerlegt in ein dreidimensionales Voxelraster, mit geglätteten, faserigen Rändern, die in das grobe Innere übergehen

Vertiefende Quellen:

4. Wolken-Rendering in Ebenen und 2D-Hintergründe

Nicht jedes Studio kann sich vollständig volumetrische Wolken leisten, und nicht jeder Kamerawinkel benötigt sie. Viele Spiele kombinieren verschiedene Techniken: Cirruswolken in großer Höhe werden als scrollende 2D-Ebene gerendert, Cumuluswolken in mittlerer Höhe als volumetrische Strahlen und tief liegende Stratuswolken als dünne Schicht eines teilnehmenden Mediums. Am Horizont kommt häufig eine vorberechnete Sky-Cubemap zum Einsatz, in die der volumetrische Pass ab einer bestimmten Ausblenddistanz übergeht.

Diese Schichtung hält das Wolkenbudget im Rahmen. Ein einzelner Wolkentyp in voller Qualität kann 4–6 ms beanspruchen. Werden für unterschiedliche Wolkenhöhen verschiedene Qualitätsstufen kombiniert, lässt sich derselbe Look mit der Hälfte der Kosten erzielen.

In drei Wolkenschichten aufgeteilter Sonnenuntergangshimmel: hohe Cirrusschleier, mittelhohe Cumuluswolken und tiefer Stratusdunst nahe dem Horizont

Vertiefende Quellen:

5. Volumetrischer Nebel mit Froxel-Rastern

Nebel ist ein 3D-Feld und kein zweidimensionaler Bildschirmeffekt. Der moderne Standardansatz ist das Froxel-Raster: eine an den Sichtfrustum der Kamera ausgerichtete 3D-Textur, bei der jede Zelle („Froxel“ = Frustum + Voxel) Dichte und beleuchtete Farbe speichert. Ein Compute-Shader speist die Streuung sämtlicher Lichtquellen in das Raster ein, akkumuliert die Extinktion entlang des Sichtstrahls und wendet das Ergebnis als Vollbild-Pass an.

So entstehen Lichtstrahlen durch Fenster, farbiger Nebel um Punktlichter und sichtbare Volumen rund um Explosionen. Dieselbe Technik bildet auch die Grundlage für die „Luftperspektive“, durch die entfernte Objekte allmählich mit der Atmosphäre verschmelzen. Eingeführt wurde sie von Bart Wronski für Assassin's Creed 4 und anschließend von Sébastien Hillaire in Frostbite standardisiert.

Als dreidimensionales Froxel-Raster visualisierter Kamerafrustum mit kleineren Zellen nahe der Kamera, größeren Zellen in der Ferne und darin verteilten Nebelpartikeln

Vertiefende Quellen:

6. Lichtstrahlen und Dämmerungsstrahlen

Sichtbare Sonnenstrahlen in nebliger Luft sind kein separater Effekt. Sie ergeben sich aus demselben Nebelsystem, sofern sowohl die Nebeldichte als auch die Shadow Map für denselben Compute-Shader verfügbar sind. Wenn der Shader Licht in ein Froxel einspeist, tastet er die Shadow Map an der Weltposition dieses Froxels ab. Zellen im Schatten bleiben dunkel, während beleuchtete Zellen die Farbe der Sonne aufnehmen. Wird der Kamerastrahl durch das Ergebnis geführt, bilden die hellen Zellen durchgehende Strahlen.

Günstigere Screen-Space-Varianten gibt es ebenfalls: Dabei wird von der Position der Sonne aus ein radialer Weichzeichner auf den Tiefenpuffer angewendet. Auf Mobilgeräten oder schwächerer Hardware sind sie nach wie vor die richtige Wahl. Sie können zwar keine außerhalb des Bildes liegenden Sonnenpositionen berücksichtigen, kosten dafür aber fast nichts.

Wald im Morgengrauen mit Sonnenstrahlen, die zwischen Baumstämmen und durch Bodennebel fallen und deutlich sichtbare Lichtkegel bilden

Vertiefende Quellen:

7. Blitze und stochastische Wetterereignisse

Ein Blitz ist ein Ein-Frame-Effekt aus zwei Teilen: dem Blitz-Mesh sowie der szenenweiten Reaktion von Tonemapping und Beleuchtung. Der Blitz selbst ist meist ein prozedurales Billboard-Mesh, das mithilfe eines rekursiven Algorithmus zur Unterteilung von Liniensegmenten erzeugt, für einen chaotischen Verlauf zufällig versetzt und zum Boden hin verjüngt wird. Einige Engines rendern ihn als additiven Screen-Space-Lichtblitz, andere als vollständig beleuchtete emissive Geometrie, die über das einmalige Einspeisen eines Punktlichts Licht auf die Welt wirft.

Interessant ist vor allem alles andere: Die Unterseiten der Wolken werden von unten beleuchtet, der Boden hellt sich für zwei Frames auf, die automatische Belichtungsmessung benötigt einige Frames, um sich zu erholen, und abhängig von der Entfernung wird verzögert ein Donnerschlag abgespielt. Gut umgesetzt macht das aus einem 16 ms langen Lichtblitz eine fünf Sekunden lange Sequenz, die das Wetter als ein Ereignis in der Welt vermittelt – und nicht nur als etwas, das sich darüber abspielt.

Verzweigter Blitz, der in der Abenddämmerung aus einer Gewitterwolke einschlägt und dabei die Unterseiten der Wolken sowie die Silhouette eines kleinen Dorfes beleuchtet

Vertiefende Quellen:

8. Regenpartikel, Regen-Meshes und Tropfen im Screen Space

Fallender Regen besteht in modernen Spielen nur selten ausschließlich aus Partikeln. Eine günstige und überzeugende Lösung verwendet eine kleine Auswahl scrollender Texturen, die über vertikale oder zum Bildschirm ausgerichtete Quads gespannt und mit denselben Sonnen- und Himmels-Probes wie der Rest der Szene beleuchtet werden. In Kameranähe sorgen einzelne Streifenpartikel für zusätzliche Details. Auf der Kameralinse selbst vermitteln Tropfentexturen, herabrinnende Spuren und Aufprallringe das Gefühl, sich mitten im Sturm zu befinden.

Der Wind beeinflusst die Richtung des Regens. Derselbe Windvektor bewegt die Wetterkarte der Wolken, biegt das Gras und neigt die Regen-Quads. Ein einziger szenenweiter Vektor, Dutzende Abnehmer. Heftiger nächtlicher Regensturm mit Regenschleiern, die von entfernten Scheinwerfern beleuchtet werden, und Wellen auf einer nassen Straße

Vertiefende Quellen:

9. Nasse Oberflächen, Pfützen und Wellen

Regen, der den Boden nicht verändert, wirkt sofort unecht. Nasse Oberflächen reagieren, indem ihr Albedo-Wert dunkler wird (Wasser absorbiert einfallendes Licht), ihre Normalen abgeflacht werden (der Wasserfilm glättet die Mikrooberfläche) und ihre Rauheit sinkt (Wasser ist bei flachen Betrachtungswinkeln ein nahezu perfekter Spiegel). Die Shader-Änderung ist klein, die visuelle Wirkung enorm.

Pfützen werden durch Masken gesteuert: Eine höhenbasierte oder per Vertex Painting erstellte Maske definiert Vertiefungen, die sich mit Wasser füllen, wenn ein „Nässe“-Parameter ansteigt. Wellen sind Flipbook-Normal-Map-Texturen, die durch den Aufprall von Regentropfen ausgelöst werden. Besonders gelungene Implementierungen bauen den Nässezustand im Lauf der Zeit auf, sodass ein langer Regensturm die Welt langsam durchnässt, während ein kurzer Schauer nur die höher gelegenen Stellen abdunkelt.

Nasse Kopfsteinpflasterstraße bei Nacht mit flachen Pfützen, die Neonschilder spiegeln, und Wellenringen von auftreffenden Regentropfen

Vertiefende Quellen:

10. Schneeansammlung und -verformung

Schnee stellt das spiegelbildliche Problem zu Regen dar: Die Welt muss ihn speichern, nicht nur empfangen. Der Standardansatz verwendet eine von oben projizierte „Schneeansammlungs“-Textur, die sich im Lauf der Zeit überall dort aufbaut, wo der Himmel sichtbar ist (ermittelt anhand einer von oben berechneten Tiefen- oder Shadow-Map). Der Terrain-Shader liest diese Maske aus und blendet in schattigen Bereichen das Schneematerial sowie in exponierten Bereichen eine Verformung für tiefen Schnee ein.

Fußspuren und Reifenspuren werden in eine mitlaufende Verformungs-Map gerendert, deren Mittelpunkt der Spieler ist. Wenn sich die Kamera bewegt, scrollen alte Fußspuren heraus und die Textur läuft zyklisch weiter. Der Terrain- oder Schnee-Shader liest diese Verformungs-Map aus und verschiebt Vertices dort nach unten, wo in sie geschrieben wurde. Der Schnee in Battlefield 5 setzt dafür Hardware-Tessellation ein; günstigere Ansätze verwenden ein hochaufgelöstes Terrain-Mesh ausschließlich mit Vertex-Verschiebung.

Stilisierte verschneite Landschaft mit frischen Fußspuren, an Felsen angewehten Schneeverwehungen, fallenden Schneeflocken und diesigen Bergen in der Ferne

Vertiefende Quellen:

11. Wind als globales System

Wind ist kein Partikeleffekt. In Produktions-Engines ist er ein einzelner globaler Vektor (manchmal ein niedrig aufgelöstes 3D-Feld), den jedes dynamische System in seinem Vertex-Shader ausliest. Grashalme biegen sich, Äste wiegen sich, Stoff flattert, Blätter treiben umher, Regen fällt schräg, Rauch wird verfrachtet und Cloud-Weather-Maps scrollen. Ein Uniform wird pro Frame aktualisiert, Dutzende Systeme nutzen es.

Die aufwendigere Variante ist ein „Windraster“, das nach Weltposition abgetastete Richtung und Stärke speichert. Dadurch werden Stürme mit lokal begrenzten Böen, geschützte Täler und Windschatten hinter Gebäuden möglich. Vegetation erhält außerdem üblicherweise beim Erstellen einen Offset pro Vertex, damit identische Bäume nicht völlig synchron schwanken. Das Ergebnis ist eine Welt, die im selben Rhythmus atmet.

Starker Wind, der Gras und Bäume zur Seite biegt, während im Vordergrund unter stürmischen Wolken Blätter umherwirbeln

Vertiefende Quellen:

12. Sandstürme, Schneestürme und dichtes Wetter

Extremwetter ist eine eigene Rendering-Kategorie. Ein Sandsturm ist ein dichter, undurchsichtiger, bodennaher Nebel mit starker Richtungsabhängigkeit und aggressivem Distanznebel. Ein Schneesturm ergänzt einen Partikelschwall nahe der Kamera und reduzierte Sichtweite. Vulkanasche und Rauch verwenden dieselbe Architektur mit anderen Farben.

Was diese Effekte überzeugend macht, sind nicht die Partikel, sondern die Kopplung: Die Sonne verdunkelt sich, der Himmel verfärbt sich, das Color Grading der Nachbearbeitung verschiebt sich, die Umgebungsgeräusche wechseln, Schrittgeräusche verändern sich und die Stimme der Spielfigur klingt gedämpft, falls sie eine hat. Der Renderer ist nur der Übermittler; die Immersion entsteht dadurch, dass jedes System im Spiel gleichzeitig reagiert.

Eine Wand aus orangefarbenem Staub und Sand, die über eine Wüstenebene zieht, darüber ein düster verfärbter Himmel und dahinter klares Blau

Vertiefende Quellen:

13. Tageszeit und dynamische Himmel

Eine Tageszeit in Echtzeit ist der Multiplikator, der dafür sorgt, dass sich die Veröffentlichung jedes anderen Systems in dieser Liste lohnt. Richtung und Farbe der Sonne werden über einen Zyklus von 24 Minuten oder 24 Stunden aktualisiert. Die Atmosphären-LUT wird an den Sonnenwinkel angepasst. Die Wolkenbeleuchtung wird pro Frame neu berechnet. Die Schattenkaskaden werden neu ausgerichtet. Die Reflection Probes werden aktualisiert. Die Umgebungsfarbe verändert sich. Die Belichtung der Nachbearbeitung passt sich an.

Dies ohne sichtbare Artefakte umzusetzen, ist vor allem eine Frage von Textur-Caching und zeitlicher Stabilität. Schnelle Techniken berechnen den Himmel für feste Sonnenwinkel vor und interpolieren zwischen ihnen; langsamere berechnen ihn in jedem Frame neu. Das Atmosphärenmodell von Hillaire aus dem Jahr 2020 ist schnell genug für eine Neuberechnung, weshalb es mit UE5 ausgeliefert wird. Die Cloud-Weather-Map scrollt mit dem Wind, sodass sich die Wolkenbedeckung auf natürliche Weise verändert, ohne dass jemand Keyframes erstellen muss.

Drei vertikale Streifen über derselben Landschaft: rosafarbene Morgendämmerung, blauer Mittag und roter Sonnenuntergang, alle mit derselben Hügelsilhouette

Vertiefende Quellen:

14. Der Wetter-Zustandsautomat

Unter all dem steckt ein winziger Zustandsautomat. Die meisten Spiele werden mit 4 bis 12 Wetterzuständen veröffentlicht (klar, teilweise bewölkt, bedeckt, leichter Regen, starker Regen, Gewitter, Nebel, Schnee, Schneesturm, Sandsturm), die jeweils durch eine Reihe von Parametern definiert sind: Wolkenbedeckung und -typ, Windgeschwindigkeit und -richtung, Niederschlagstyp und -intensität, Farbtönung der Umgebung, Audioprofil und Nachbearbeitungsprofil.

Übergänge sind lineare Interpolationen zwischen Parametersätzen über einen Zeitraum von 30 bis 120 Sekunden. Der Übergang ist kein Sonderfall, sondern lediglich eine Interpolation zwischen zwei Zuständen, wobei jedes Rendering-Subsystem in diesem Frame die aktuellen Parameterwerte ausliest. Wetter kann skriptgesteuert sein (eine Zwischensequenz benötigt einen Sturm), aus einem Seed erzeugt werden (deterministisch pro Region und Spieltag, damit zwei Spieler in derselben Welt dasselbe Wetter sehen) oder vollständig auf einem Regionenraster gestaltet werden. Die saubersten Pipelines behandeln alle drei als unterschiedliche Scheduler, die in denselben Parameterpuffer schreiben.

Dieselbe Szene nebeneinander: links bei klarem Sonnenschein und rechts bei stürmischem Regen mit nass glänzenden Oberflächen

Vertiefende Quellen:

15. Die filmreifen Momente

Der gesamte Stack existiert für einige wenige charakteristische Momente. Auf einem Bergrücken stehen, während eine Sturmfront heranzieht. Beobachten, wie ein Sonnenstrahl durch eine Lichtung im Blätterdach bricht. Aus einer Höhle in den Schnee treten. Durch eine Cumuluswolke fliegen und das Licht in ihrem Inneren sehen.

Das sind die Momente, von denen Spieler Screenshots machen. Es sind auch die Momente, in denen jedes der oben genannten Systeme gleichzeitig funktionieren muss: volumetrische Wolken, atmosphärische Streuung, Nebel mit integrierten Schatten, nasses PBR, Wind in der Vegetation, tageszeitabhängiges Color Grading und ein Übergang zwischen Wetterzuständen müssen sich zu einem einzigen Frame zusammenfügen. Ist auch nur eines davon falsch, ist die Magie dahin.

Blick über ein Wolkenmeer hinab auf einen einzelnen herausragenden Berggipfel, mit sonnenbeschienenen Wolkenoberseiten und schattigen Tälern darunter

Was das für den Browser bedeutet

Die meisten dieser Techniken lassen sich problemlos auf WebGPU übertragen. Wir haben bereits grundlegenden atmosphärischen Nebel, das Überblenden equirektangulärer Skyboxen und bildschirmraumbasierten Distanzdunst in der Open-World-Browser-Engine umgesetzt. Die schwierigeren Komponenten (vollständige volumetrische Wolken, Froxel-Rasternebel, nasses PBR mit dynamischen Pfützen, Verformungs-Maps für Schnee) sind nun der offensichtliche nächste Schritt, da die Terrain-Pipeline stabil ist. Das Abtasten der Nebelfarbe pro Fragment aus der Skybox in Spike 24 ist ein Teil dieses Puzzles. Als Nächstes folgt ein Cloud-Raymarcher auf Basis eines Compute-Shaders, der dieselbe Atmosphären-LUT speist.

Die gute Nachricht ist, dass die Mindestanforderungen an Browser-Hardware inzwischen hoch genug sind. WebGPU Compute, 3D-Texturen, indirekter Dispatch und Timestamp Queries sind allesamt verfügbar. Die Hillaire-Atmosphäre von 2020 wurde mehrfach auf WebGL portiert. Für Schneiders Nubis gibt es quelloffene Referenzimplementierungen in GLSL, die sich mit mechanischen Änderungen in WGSL übertragen lassen. Es gibt keinen Rendering-Grund mehr, weshalb ein Browserspiel nicht denselben Himmel wie ein Konsolenspiel haben könnte. Es gibt nur noch technische Gründe – und technische Gründe sind genau unser Ding.

Weiterführende Literatur zum gesamten Stack

Wenn du eine einzige Quelle suchst, die all dies zusammenführt, bietet das SIGGRAPH-Archiv „Advances in Real-Time Rendering in Games“ (advances.realtimerendering.com) die maßgeblichen Vorträge zu Wetter und Atmosphäre bis zurück ins Jahr 2014. Produktionsanalysen dazu, wie bestimmte Spiele ihren Himmel und ihr Wetter rendern, findest du in Adrian Courrèges’ Artikeln zur GPU-Profilerstellung, darunter detaillierte Frame-für-Frame-Analysen von GTA V, Horizon Zero Dawn und Doom Eternal. Speziell für die Mathematik von Himmel und Atmosphäre ist das Kapitel über Volumen-Rendering auf scratchapixel.com die zugänglichste Einführung, während Hillaires quelloffenes Implementierungs-Repository als Referenz in Produktionsqualität dient.