海洋探索に焦点を当てたゲーム『Around The World』の開発において、Thomas ten Cate氏は空と雲の視覚的な忠実度を磨き上げてきました。主な課題の一つは、光が雲とどのように相互作用するかをシミュレートすることでした。Povrayレンダラーのルックアップテーブル(LUT)を使用した際、ten Cate氏は当初、雲の底部に適切な明るさがないことに気づきました。彼は、Povrayがマルチスキャッタリング(光が粒子間を何度も跳ね返る現象)をシミュレートしていないのではないかと推測し、Rustでカスタムのマルチスレッド再帰的モンテカルロ・レイトレーサーを記述することでそれを確認しました。新しいデータにより、マルチスキャッタリングを導入することで光がより均一に分布することが示され、「メタリック」な質感が取り除かれ、雲の底部が大幅に明るく、柔らかく見えるようになりました。

この画像は、マルチスキャッタリングのシミュレーション不足により、雲に適切な明るさがなく「メタリック」な外観になっていた初期の課題を示しています。

この画像は、マルチスキャッタリングをシミュレートするためにカスタムのマルチスレッド再帰的モンテカルロ・レイトレーサーを実装した後の改善点を示しています。
リアルな色合いを実現するために、ten Cate氏は雲が周囲の空からどのように間接光を受けるかを解決しました。Godotゲームエンジンでは、間接光は通常、表面の法線に基づいて環境キューブマップからサンプリングされます。しかし、雲の場合、下向きの法線(地面方向)では底部にほとんど間接光が届りません。法線を空に向かって上向きに調整することで、雲は大気から青みがかった色を帯びるようになりました。これにより、夕方のレンダリングも改善されました。赤い直射日光と青い間接的な空の光を混合することで、雲は現実の世界の大気条件をより正確に反映するピンク色の色合いを獲得しました。
いくつかの技術的な「ハック」も、レンダリングのアーティファクトを修正するために採用されました。レイマーチングの演算順序(アウトスキャッタリングをインスキャッタリングより前に適用していたこと)によって引き起こされる不自然な黄色の地平線を修正するため、ten Cate氏は過度な減衰を抑えるためにシーケンスを逆にしました。さらに、ゲーム内の惑星は地球の75分の1の大きさであるため、地平線はより急激に湾曲し、空のシェーダーが、大気の密度が惑星の中心に向かって増加しているように見える暗い帯を作り出していました。彼は、グローバルビューベクトルの垂直成分に小さな値を加えてから再正規化することで、空を物理的な地平線に合わせて「引き下げる」ように修正しました。最後に、彼はHDR(ハイダイナミックレンジ)値を管理するためにホワイトポイントを2.0としたFilmicトーンマッパーを実装し、雲が過度に飽和することなく遠くへ滑らかに消えていくことを保証しました。

この画像は、レイマーチングのシーケンスにおいてアウトスキャッタリングをインスキャッタリングより前に適用したことによって生じたレンダリングのアーティファクトを描写しています。

この画像は、レイマーチングの演算順序を調整することで黄色の地平線のアーティファクトを修正した様子を示しています。

この画像は、HDR値を管理するためにFilmicトーンマッパーを使用する前のハイダイナミックレンジの問題を例示しています。

この画像は、Filmicトーンマッパーの最終結果を示しており、雲が過度な飽和を起こすことなく滑らかに消えていくことを保証しています。