
空間の広がりや浮遊感を強調する背景演出として、視線方向にレイを飛ばして3Dノイズをサンプリングする「レイマーチング雲海」を実装しました。
非常に描画負荷が高い手法であるため、「いかにパフォーマンスと画質を両立させるか」という最適化とパイプラインへの統合に注力しています。
負荷を削る2つの最適化(LODと早期終了):
カメラから一定距離(1000m)以上離れたレイに対しては、高負荷な詳細ノイズの読み込みをスキップする「距離ベースのLOD」を実装しました。また、レイを進める中で雲の不透明度が飽和した時点でループを強制終了することで、奥の無駄な計算を大幅にカットしています。
ディザリングによるステップ数の削減:
処理を軽くするためにレイのステップ数を24回まで減らしていますが、その代償として発生するバンディングのアーティファクトを隠すために、ピクセルごとにレイの開始位置をずらすディザリング処理を入れています。
WBOITパスへの統合:
雲を単なる背景として描画するのではなく、計算結果を「Weighted Blended OIT」の蓄積バッファに書き込むように実装しました。これにより、雲海とゾーンが同時に描画されている状況でも、描画順序が破綻しないパイプラインを構築しています。

もっとみる

もっとみる

もっとみる

もっとみる

もっとみる
