GPUで世界をシミュレーション
40億年を4分で
- この記事では、GLSLフラグメントシェーダーで書かれた手続き型地球シミュレーションの実装を扱う
- 地球に類似した惑星の全歴史を数分でシミュレーションし、毎秒60フレームで更新される
原始惑星
- 45億年前、溶岩の塊として始まる物語
- 初期の地球は小惑星衝突により、赤く熱い原始惑星だった
- 手続き的に生成された地形マップを通じて地形の高さを計算する
- さまざまな大きさの小惑星クレーターを生成し、これを通じて地形の高さを決定する
- 小惑星クレーターは3Dグリッドで生成され、ハッシュ関数を使って不規則性を与える
- 最終的に生成された高さマップは、初期地球の姿を再現する
プレートテクトニクス
- 山脈、海溝、大陸地形を形成するためにプレートテクトニクスモデルを使用する
- 初期速度でプレートのシード位置をランダムに生成し、時間の経過とともにプレートが成長する
- プレートの境界で衝突が発生すると地形の高さが増加する
- この衝突は熱侵食モデルを通じて周囲のピクセルへ拡散する
水理侵食
- 自然地形の荒々しい見た目は、主に河川流域の形成によって決まる
- 低解像度の地形マップでも河川をシミュレーションできるモデルを使用する
- 各ピクセルは周囲8つのピクセルを調べ、最も大きな勾配方向へ水が流れる
- 侵食はストリームパワー則によって駆動される
- 水の流れと侵食の相互作用によって自然な河川流域が形成される
全球気候
- 気候システムのシミュレーションは平均海面気圧(MSLP)マップに基づく
- MSLPマップは陸地と海洋の位置、および緯度の影響を受ける
- 季節変化に応じて気候パターンが変わるよう、MSLPマップを調整する
- MSLPに基づいて風と気温を生成する
- 風は高気圧から低気圧へ移動し、コリオリ効果を考慮する
- 降水量は風ベクトル場を通じて海洋から陸地へ移動する
生命
- 気候は惑星上の生命分布に影響を与える
- 降水パターンと気温変化は植物の成長速度を決定する
- 季節変化に応じて草食動物と捕食動物が移動する
- Lotka-Volterra拡散モデルを使って、こうした動的変化をシミュレーションする
人類
- 初期地球の序章が終わり、人類が惑星表面を植民地化する
- 化石燃料を燃やし、大気中に炭素を放出する
- 数百年のあいだに、人類はすべての化石燃料資源を消費し、大気中に5兆トンの炭素を放出する
- その結果、温室効果が強まり、地球の平均気温が約10度上昇する
- 赤道周辺の広い地域が極端な高温により人の住めない場所になる
GN⁺のまとめ
- この記事は、手続き型地球シミュレーションの実装過程を詳しく説明する
- GLSLフラグメントシェーダーを使って地形、プレートテクトニクス、水理侵食、気候、生命などをシミュレーションする
- 人類の活動が地球環境に及ぼす影響をシミュレーションし、警鐘を鳴らす
- 類似機能を持つプロジェクトとして、「SimEarth」と「Universe Sandbox」が推奨される
1件のコメント
Hacker Newsの意見