Skip to content

Nuages volumétriques et effets météorologiques dans les jeux modernes

Par Oleg Sidorkin, CTO et cofondateur de Cinevva

Scène AAA stylisée avec d’imposants nuages d’orage volumétriques, des éclairs, des rideaux de pluie et une route pavée mouillée reflétant le ciel

Il y a quelques semaines, j’ai écrit sur les techniques de rendu réellement utilisées dans les jeux AAA modernes. Un domaine que je n’avais fait qu’effleurer était le ciel et la météo, car il mérite sa propre liste. Les nuages, le brouillard, la pluie et la neige sont les systèmes qui transforment une démo de terrain en un véritable lieu. Ils partagent aussi bien plus de code qu’il n’y paraît. Les nuages volumétriques, le brouillard au sol et les rayons crépusculaires reposent tous sur le même ray marching. Les routes mouillées, l’accumulation de neige et les traces de pas utilisent toutes la même combinaison de déplacement et d’astuces PBR. Le vent est un unique vecteur de direction que tous les éléments de la scène consultent.

Voici un tour d’horizon bref et assumé de la façon dont les grands studios conçoivent ces effets en 2026, accompagné des articles et présentations de moteurs à l’origine de chaque élément.

1. Ciel et atmosphère physiquement réalistes

La diffusion atmosphérique est la base. La couleur du ciel, la brume à l’horizon, la teinte bleutée des montagnes lointaines et l’orange du coucher de soleil proviennent tous de la diffusion de la lumière dans l’air. Les moteurs modernes calculent ces phénomènes à partir de la physique : diffusion de Rayleigh pour le bleu, diffusion de Mie pour le halo autour du soleil et absorption par l’ozone pour le violet profond au zénith.

La méthode originale de Bruneton, publiée en 2008, précalculait tout dans des tables de correspondance 4D, ce qui limitait la variation dynamique de l’heure et produisait des artefacts de LUT lorsque le soleil était bas. La mise à jour de Sébastien Hillaire datant de 2020, utilisée par le composant Sky Atmosphere d’UE5, remplace la LUT multidimensionnelle par quelques textures 2D et une approximation de la diffusion multiple actualisée à chaque image. Elle fonctionne aussi bien sur téléphone que sur PC haut de gamme.

Ciel physiquement réaliste à l’heure dorée, avec un dégradé fluide de l’orange au bleu au-dessus de la silhouette de montagnes lointaines

Pour aller plus loin :

2. Nuages volumétriques avec du bruit Perlin-Worley

La technique fondamentale des nuages dans les jeux modernes est apparue dans la présentation d’Andrew Schneider consacrée à Horizon Zero Dawn en 2015. Les nuages ne sont pas des maillages. Ce sont des fonctions de densité 3D définies par plusieurs couches de bruit : un mélange Perlin-Worley à basse fréquence donne la forme générale du nuage, tandis qu’un bruit de Worley à plus haute fréquence érode sa silhouette pour créer des bords vaporeux. Une carte météorologique — une texture 2D échantillonnée selon les coordonnées XZ du monde — contrôle la couverture, le type de nuage et les précipitations dans chaque région. Un gradient dépendant de la hauteur effectue une transition entre les profils de cumulus, de stratus et de cirrus selon l’altitude.

Le moteur de rendu fait progresser un rayon depuis la caméra à travers le volume nuageux, en accumulant la densité et la diffusion. L’itération « Nubis » de 2017 a ajouté la création et l’animation à l’échelle régionale, et l’implémentation originale sur PS4 rendait l’ensemble du ciel en environ 2 ms. La plupart des studios qui proposent aujourd’hui des nuages volumétriques s’inscrivent encore dans la lignée de cet article.

Forme de nuage 3D décomposée en motifs superposés de bruits de Perlin et de Worley, montrant comment les détails érodent la silhouette

Pour aller plus loin :

3. Nuages voxelisés et Nubis³

L’évolution de Nubis présentée en 2023 a entièrement abandonné la représentation 2,5D des formes au profit de véritables voxels 3D. Chaque voxel stocke directement la densité du nuage, ce qui permet aux artistes de sculpter et d’animer les formes nuageuses comme ils modèlent un terrain. Le coût d’une représentation plus dense est compensé par l’accélération du ray marching à l’aide de champs de distance signés compressés et d’une ingénieuse remise à l’échelle des données voxelisées clairsemées.

Le résultat produit des paysages nuageux que l’on peut traverser en vol sans que les artifices sous-jacents ne deviennent visibles. C’est excessif pour la plupart des studios, mais c’est la direction prise par les productions haut de gamme.

Cumulus décomposé en grille de voxels 3D, avec des bords vaporeux lissés qui se fondent dans son intérieur anguleux

Pour aller plus loin :

4. Rendu des nuages en couches et arrière-plans 2D

Tous les studios ne peuvent pas se permettre des nuages entièrement volumétriques, et tous les angles de caméra n’en ont pas besoin. De nombreux jeux combinent plusieurs techniques : des cirrus de haute altitude rendus sous forme de couche 2D défilante, des cumulus d’altitude moyenne rendus par ray marching volumétrique et des stratus de basse altitude représentés par une fine couche de milieu participant. À l’horizon, on trouve souvent une cubemap de ciel précalculée, dans laquelle la passe volumétrique se fond au-delà d’une certaine distance.

Cette superposition permet de maîtriser le budget des nuages. Un seul type de nuage en qualité maximale peut consommer 4 à 6 ms ; l’emploi de niveaux de qualité différents selon l’altitude des nuages permet de conserver le même rendu pour moitié moins cher.

Ciel au coucher du soleil divisé en trois couches nuageuses : fins cirrus en altitude, cumulus à mi-hauteur et brume de stratus près de l’horizon

Pour aller plus loin :

5. Brouillard volumétrique avec des grilles de froxels

Le brouillard est un champ 3D, pas un effet 2D en espace écran. L’approche moderne standard repose sur une grille de froxels : une texture 3D alignée sur le tronc de vision de la caméra, dont chaque cellule (« froxel » = frustum + voxel) stocke la densité et la couleur éclairée. Un compute shader injecte dans la grille la diffusion provenant de chaque source lumineuse, accumule l’extinction le long du rayon de vue, puis applique le résultat lors d’une passe plein écran.

C’est ce qui permet d’obtenir des faisceaux lumineux à travers les fenêtres, du brouillard coloré autour des sources ponctuelles et des volumes visibles autour des explosions. C’est aussi le mécanisme sous-jacent de la « perspective atmosphérique », qui fond les objets lointains dans l’air ambiant. Cette technique a été introduite par Bart Wronski pour Assassin’s Creed 4, puis standardisée par Sébastien Hillaire dans Frostbite.

Tronc de vision de la caméra représenté sous forme de grille de froxels 3D, avec de petites cellules près de la caméra, de plus grandes au loin et des particules de brouillard à l’intérieur

Pour aller plus loin :

6. Rayons divins et faisceaux crépusculaires

Les rayons de soleil visibles dans un air brumeux ne constituent pas un effet distinct. Ils découlent du même système de brouillard, à condition que la densité du brouillard et la shadow map soient toutes deux accessibles au même compute shader. Lorsque le shader injecte de la lumière dans un froxel, il échantillonne la shadow map à la position de ce froxel dans le monde. Les cellules dans l’ombre restent sombres, tandis que celles exposées à la lumière prennent la couleur du soleil. En parcourant le résultat avec le rayon de la caméra, les cellules lumineuses forment des faisceaux continus.

Il existe des variantes moins coûteuses en espace écran — un flou radial partant de la position du soleil et appliqué au tampon de profondeur — qui restent le bon choix sur mobile ou sur du matériel peu puissant. Elles ne fonctionnent pas lorsque le soleil est hors champ, mais ne coûtent presque rien.

Forêt à l’aube, avec des rayons de soleil traversant les troncs et le brouillard au sol pour former des faisceaux lumineux bien définis

Pour aller plus loin :

7. Éclairs et événements météorologiques stochastiques

Un éclair est un effet d’une seule image composé de deux parties : le maillage de l’éclair et la réaction globale de l’éclairage et du mappage tonal de la scène. L’éclair lui-même est généralement un maillage de billboards procédural construit à l’aide d’un algorithme récursif de subdivision de segments, perturbé aléatoirement pour créer un aspect chaotique et aminci vers le sol. Certains moteurs le rendent comme un flash additif en espace écran, tandis que d’autres utilisent une géométrie émissive entièrement éclairée, qui illumine le monde grâce à l’injection d’une lumière ponctuelle pendant une image.

Le plus intéressant est tout ce qui se passe autour : la base des nuages s’éclaire par-dessous, le sol s’illumine pendant deux images, la mesure de l’exposition automatique met quelques images à se rétablir et un coup de tonnerre retardé est joué selon la distance. Bien exécutée, cette approche transforme un flash de 16 ms en une séquence de cinq secondes qui fait ressentir la météo comme un phénomène se produisant dans le monde, et pas simplement au-dessus de lui.

Éclair ramifié jaillissant d’un nuage d’orage au crépuscule et illuminant la base des nuages ainsi que la silhouette d’un petit village

Pour aller plus loin :

8. Particules de pluie, maillages de pluie et gouttes en espace écran

Dans les jeux modernes, la pluie qui tombe ne repose que rarement sur de simples particules. La solution à la fois économique et convaincante consiste à utiliser un petit ensemble de textures défilantes étirées sur des quadrilatères verticaux ou alignés sur l’écran, éclairés par les mêmes sondes de ciel et de soleil que le reste de la scène. Plus près de la caméra, des particules individuelles en forme de traînées ajoutent du détail. Sur l’objectif même de la caméra, des textures de gouttelettes, des coulures et des ondulations d’impact renforcent l’impression d’être « au cœur de la tempête ».

Le vent influe sur la direction de la pluie. Le même vecteur de vent déplace la carte météorologique des nuages, courbe l’herbe et incline les quadrilatères de pluie. Un seul vecteur à l’échelle de la scène, des dizaines de systèmes qui l’exploitent. Violent orage nocturne, avec des rideaux de pluie éclairés par des phares lointains et des ondulations sur une route mouillée

Pour aller plus loin :

9. Surfaces mouillées, flaques et ondulations

Une pluie qui ne modifie pas le sol paraît immédiatement artificielle. Les surfaces mouillées réagissent en assombrissant leur albédo (l'eau absorbe la lumière incidente), en aplatissant leurs normales (le film d'eau lisse la microsurface) et en réduisant leur rugosité (l'eau se comporte presque comme un miroir aux angles rasants). La modification du shader est minime, mais le changement visuel est considérable.

Les flaques reposent sur des masques : un masque basé sur la hauteur ou peint sur les sommets définit les creux qui se remplissent d'eau à mesure qu'augmente un paramètre d'« humidité ». Les ondulations utilisent des textures de normales en flipbook, déclenchées par les impacts des gouttes de pluie. Les meilleures implémentations font évoluer progressivement l'état d'humidité, afin qu'un long orage détrempe lentement le monde tandis qu'une brève averse n'assombrit que les points hauts.

Rue pavée mouillée de nuit, avec des flaques peu profondes reflétant des enseignes au néon et des cercles d'ondulation provoqués par les gouttes de pluie

Pour aller plus loin :

10. Accumulation et déformation de la neige

La neige pose le problème symétrique de la pluie : le monde doit en garder la trace, pas simplement la recevoir. L'approche standard utilise une texture d'« accumulation de neige » vue du dessus, qui se remplit au fil du temps partout où le ciel est visible, visibilité calculée à partir d'une carte de profondeur ou d'ombres vue du dessus. Le shader du terrain échantillonne ce masque et fusionne le matériau de neige dans les zones ombragées, tout en appliquant un déplacement correspondant à l'épaisseur de neige dans les zones exposées.

Les empreintes de pas et les traces de pneus sont rendues dans une carte de déformation glissante centrée sur le joueur. À mesure que la caméra se déplace, les anciennes empreintes sortent de la zone et la texture se reboucle. Le shader du terrain ou de la neige échantillonne cette carte de déformation et abaisse les sommets aux endroits où elle a été modifiée. La neige de Battlefield 5 utilise pour cela la tessellation matérielle ; les approches moins coûteuses se contentent d'un maillage de terrain à haute densité avec déplacement des sommets.

Paysage enneigé stylisé avec des empreintes récentes, des congères accumulées contre les rochers, des flocons en chute et des montagnes lointaines voilées de brume

Pour aller plus loin :

11. Le vent comme système global

Le vent n'est pas un effet de particules. Dans les moteurs de production, il s'agit d'un unique vecteur global, parfois d'un champ 3D à basse résolution, que chaque système dynamique lit dans son shader de sommets. Les brins d'herbe se courbent, les branches oscillent, les tissus claquent, les feuilles dérivent, la pluie s'incline, la fumée est transportée et les cartes météorologiques des nuages défilent. Une variable uniforme mise à jour à chaque image, des dizaines de systèmes consommateurs.

La version plus élaborée utilise une « grille de vent » qui stocke la direction et l'intensité échantillonnées selon la position dans le monde, ce qui permet de créer des tempêtes avec des rafales localisées, des vallées abritées et des sillages derrière les bâtiments. La végétation reçoit aussi généralement un décalage par sommet précalculé lors de la création des assets, afin que des arbres identiques ne se balancent pas à l'unisson. Le résultat est un monde qui respire au même rythme.

Vent violent couchant l'herbe et les arbres, avec des feuilles tourbillonnant au premier plan sous des nuages d'orage

Pour aller plus loin :

12. Tempêtes de sable, blizzards et météo dense

Les phénomènes météorologiques violents constituent une catégorie de rendu à part entière. Une tempête de sable est un brouillard épais, opaque et aligné sur le sol, avec un fort biais directionnel et un brouillard de distance agressif. Un blizzard ajoute un déferlement de particules près de la caméra et réduit la visibilité. Les cendres volcaniques et la fumée utilisent la même architecture, avec des couleurs différentes.

Ce qui rend ces effets convaincants, ce ne sont pas les particules, mais le couplage : le soleil s'assombrit, le ciel se teinte, l'étalonnage colorimétrique du post-traitement change, l'ambiance sonore bascule, le son des pas se modifie et la voix du joueur, s'il en a une, devient étouffée. Le moteur de rendu n'est que le messager ; l'immersion vient du fait que tous les systèmes du jeu réagissent simultanément.

Mur de poussière orange et de sable progressant sur une plaine désertique, sous un ciel menaçant avec un bleu limpide à l'arrière

Pour aller plus loin :

13. Heure de la journée et ciels dynamiques

Le cycle de la journée en temps réel est le multiplicateur qui justifie l'intégration de tous les autres systèmes de cette liste. La direction et la couleur du soleil évoluent sur un cycle de 24 minutes ou de 24 heures. La LUT atmosphérique est mise à jour selon l'angle du soleil. L'éclairage des nuages est recalculé à chaque image. Les cascades d'ombres se réorientent. Les sondes de réflexion s'actualisent. La couleur ambiante évolue. L'exposition du post-traitement s'adapte.

Obtenir ce résultat sans artefacts visibles repose principalement sur la mise en cache des textures et la stabilité temporelle. Les techniques rapides précalculent le ciel pour des angles fixes du soleil, puis interpolent entre eux ; les techniques plus lentes recalculent tout à chaque image. Le modèle atmosphérique de Hillaire de 2020 est suffisamment rapide pour être recalculé, ce qui explique son intégration dans UE5. La carte météorologique des nuages défile avec le vent, de sorte que la couverture évolue naturellement sans que personne ait à créer d'images clés.

Trois bandes verticales sur un même paysage : aube rose, midi bleu et coucher de soleil rouge, partageant toutes la même silhouette de colline

Pour aller plus loin :

14. La machine à états météorologiques

Sous l'ensemble se trouve une petite machine à états. La plupart des jeux proposent entre 4 et 12 états météorologiques — ciel dégagé, partiellement nuageux, couvert, pluie légère, forte pluie, orage, brouillard, neige, blizzard, tempête de sable — chacun étant défini par un ensemble de paramètres : couverture et type de nuages, vitesse et direction du vent, type et intensité des précipitations, teintes de la lumière ambiante, profil audio et étalonnage du post-traitement.

Les transitions sont des interpolations linéaires entre des ensembles de paramètres sur une durée de 30 à 120 secondes. La transition n'est pas un cas particulier : il s'agit simplement d'une interpolation entre deux états, chaque sous-système de rendu lisant les valeurs courantes des paramètres pour l'image en cours. La météo peut être scénarisée — une cinématique exige un orage —, déterminée par une graine — de manière reproductible pour chaque région et chaque journée en jeu, afin que deux joueurs dans le même monde voient la même météo —, ou entièrement définie sur une grille de régions. Les pipelines les plus propres considèrent ces trois méthodes comme différents ordonnanceurs écrivant dans le même tampon de paramètres.

Comparaison côte à côte de la même scène sous un soleil dégagé à gauche et sous une pluie orageuse à droite, avec des surfaces mouillées et brillantes

Pour aller plus loin :

15. Les moments cinématographiques

Toute cette pile existe pour produire quelques moments emblématiques. Se tenir sur une crête tandis qu'un front orageux approche. Regarder un rayon de soleil percer dans une clairière sous la canopée. Sortir d'une grotte pour découvrir la neige. Traverser un cumulus en vol et voir sa lumière intérieure.

Ce sont les moments que les joueurs capturent en image. Ce sont aussi ceux où tous les systèmes ci-dessus doivent fonctionner simultanément : nuages volumétriques, diffusion atmosphérique, brouillard intégrant les ombres, PBR mouillé, vent dans la végétation, étalonnage colorimétrique selon l'heure de la journée et transition entre états météorologiques, le tout composant une seule image. Il suffit que l'un de ces éléments soit incorrect pour que la magie se brise.

Vue plongeante sur une mer de nuages d'où émerge un unique sommet montagneux, avec les cimes nuageuses éclairées par le soleil et les vallées plongées dans l'ombre en contrebas

Ce que cela implique pour le navigateur

La plupart de ces techniques se transposent naturellement à WebGPU. Nous avons déjà livré un brouillard atmosphérique de base, la fusion de skyboxes équirectangulaires et une brume de distance en espace écran dans le moteur de monde ouvert pour navigateur. Les éléments plus complexes — nuages entièrement volumétriques, brouillard sur grille de froxels, PBR mouillé avec flaques dynamiques, cartes de déformation de neige — constituent l'étape suivante évidente, maintenant que le pipeline de terrain est stable. L'échantillonnage par fragment de la couleur du brouillard depuis la skybox dans le spike 24 est une pièce de ce puzzle. La prochaine sera un ray marching de nuages dans un shader de calcul, alimentant la même LUT atmosphérique.

La bonne nouvelle, c'est que le niveau minimal du matériel exécutant les navigateurs est désormais suffisamment élevé. Les shaders de calcul WebGPU, les textures 3D, l'exécution indirecte et les requêtes d'horodatage sont tous disponibles. Le modèle atmosphérique de Hillaire de 2020 a été porté plusieurs fois vers WebGL. Nubis de Schneider dispose d'implémentations de référence open source en GLSL, qui se traduisent en WGSL au moyen de modifications mécaniques. Plus aucune contrainte de rendu n'empêche un jeu par navigateur d'avoir le même ciel qu'un jeu sur console. Il ne reste que des contraintes d'ingénierie, et ce sont précisément celles que nous aimons résoudre.

Pour approfondir l'ensemble de la pile

Si vous cherchez une source unique réunissant tous ces sujets, les archives SIGGRAPH « Advances in Real-Time Rendering in Games » (advances.realtimerendering.com) regroupent les présentations de référence sur la météo et l'atmosphère depuis 2014. Pour des analyses de production expliquant comment certains jeux rendent leur ciel et leur météo, les articles de profilage GPU d'Adrian Courrèges proposent des décompositions détaillées, image par image, de GTA V, Horizon Zero Dawn et Doom Eternal. Pour les calculs propres au ciel et à l'atmosphère, le chapitre de scratchapixel.com consacré au rendu volumétrique constitue l'introduction la plus accessible, tandis que le dépôt de l'implémentation open source de Hillaire sert de référence de qualité production.