Simuler le monde sur GPU
4 milliards d’années en 4 minutes
- Cet article traite de l’implémentation d’une simulation procédurale de la Terre écrite avec un fragment shader GLSL
- Il simule en quelques minutes toute l’histoire d’une planète semblable à la Terre, avec une mise à jour à 60 images par seconde
Planète primitive
- L’histoire commence il y a 4,5 milliards d’années, à l’état de masse de lave
- La Terre primitive était une planète rouge et brûlante, façonnée par les collisions d’astéroïdes
- L’altitude du relief est calculée à partir d’une carte de terrain générée de manière procédurale
- Des cratères d’impact d’astéroïdes de tailles variées sont générés, puis utilisés pour déterminer l’altitude du relief
- Les cratères d’astéroïdes sont générés sur une grille 3D, avec une fonction de hachage pour leur donner de l’irrégularité
- La heightmap obtenue reproduit finalement l’aspect de la Terre primitive
Tectonique des plaques
- Un modèle de tectonique des plaques est utilisé pour former chaînes de montagnes, fosses océaniques et reliefs continentaux
- Les positions initiales des plaques sont générées aléatoirement avec une vitesse de départ, puis les plaques grandissent au fil du temps
- Lorsque des collisions se produisent aux frontières des plaques, l’altitude du relief augmente
- Ces collisions se diffusent vers les pixels voisins via un modèle d’érosion thermique
Érosion hydraulique
- L’aspect accidenté des reliefs naturels est principalement déterminé par la formation des bassins fluviaux
- Un modèle est utilisé pour simuler les rivières même sur une carte de terrain en basse résolution
- Chaque pixel examine les 8 pixels voisins et l’eau s’écoule dans la direction de la pente la plus forte
- L’érosion est pilotée par la loi de stream power
- L’interaction entre l’écoulement de l’eau et l’érosion forme des bassins fluviaux naturels
Climat global
- La simulation du système climatique repose sur une carte de pression atmosphérique réduite au niveau de la mer (MSLP)
- La carte MSLP est influencée par la position des terres, des océans et par la latitude
- La carte MSLP est ajustée afin que les régimes climatiques varient selon les saisons
- Les vents et la température sont générés à partir de la MSLP
- Les vents se déplacent des hautes pressions vers les basses pressions, en tenant compte de l’effet de Coriolis
- Les précipitations se déplacent de l’océan vers les terres à travers le champ de vecteurs de vent
Vie
- Le climat influence la répartition de la vie sur la planète
- Les régimes de précipitations et les variations de température déterminent la vitesse de croissance des plantes
- Les herbivores et les prédateurs se déplacent au rythme des changements saisonniers
- Le modèle de diffusion de Lotka-Volterra est utilisé pour simuler ces variations dynamiques
Humanité
- Une fois le prologue de la Terre primitive terminé, l’humanité colonise la surface de la planète
- Elle brûle des combustibles fossiles et rejette du carbone dans l’atmosphère
- En quelques centaines d’années, l’humanité épuise toutes les ressources en combustibles fossiles et libère 5 000 milliards de tonnes de carbone dans l’atmosphère
- Cela renforce l’effet de serre et augmente la température moyenne terrestre d’environ 10 degrés
- De vastes zones autour de l’équateur deviennent inhabitables pour l’être humain en raison de températures extrêmes
Résumé de GN⁺
- Cet article décrit en détail le processus d’implémentation d’une simulation procédurale de la Terre
- Il utilise des fragment shaders GLSL pour simuler le relief, la tectonique des plaques, l’érosion hydraulique, le climat, la vie, etc.
- En simulant l’impact des activités humaines sur l’environnement terrestre, il alerte sur les risques encourus
- Parmi les projets aux fonctionnalités similaires recommandés figurent "SimEarth" et "Universe Sandbox"
1 commentaires
Avis Hacker News