Facebook 3Dゲーム(Directx11)
Logo

3Dゲーム(Directx11)

クレジット
Avatar
ゲームプログラマー
3Dゲーム(Directx11)-1
シェア
制作ノート
レイマーチングによる雲海
image

空間の広がりや浮遊感を強調する背景演出として、視線方向にレイを飛ばして3Dノイズをサンプリングする「レイマーチング雲海」を実装しました。

非常に描画負荷が高い手法であるため、「いかにパフォーマンスと画質を両立させるか」という最適化とパイプラインへの統合に注力しています。

負荷を削る2つの最適化(LODと早期終了):

カメラから一定距離(1000m)以上離れたレイに対しては、高負荷な詳細ノイズの読み込みをスキップする「距離ベースのLOD」を実装しました。また、レイを進める中で雲の不透明度が飽和した時点でループを強制終了することで、奥の無駄な計算を大幅にカットしています。

ディザリングによるステップ数の削減:

処理を軽くするためにレイのステップ数を24回まで減らしていますが、その代償として発生するバンディングのアーティファクトを隠すために、ピクセルごとにレイの開始位置をずらすディザリング処理を入れています。

WBOITパスへの統合:

雲を単なる背景として描画するのではなく、計算結果を「Weighted Blended OIT」の蓄積バッファに書き込むように実装しました。これにより、雲海とゾーンが同時に描画されている状況でも、描画順序が破綻しないパイプラインを構築しています。

シェア
この作品のその他の制作ノート
遅延レンダリングで実装した多数の動的ポイントライト
遅延レンダリングで実装した多数の動的ポイントライト

もっとみる

複数のゾーンを組み合わせて描画するためのWeightedBlendedOIT
複数のゾーンを組み合わせて描画するためのWeightedBlendedOIT

もっとみる

MSDFを利用した拡大しても解像度の落ちないテキスト描画
MSDFを利用した拡大しても解像度の落ちないテキスト描画

もっとみる

CSM(カスケードシャドウマップの実装)
CSM(カスケードシャドウマップの実装)

もっとみる

GPUパーティクル
GPUパーティクル

もっとみる

murayamaの他の作品