The Challenges of Rendering an Open World in Far Cry 5 の日本語の簡易メモ
- The Challenges of Rendering an Open World in Far Cry 5
- http://advances.realtimerendering.com/s2018/index.htm
水面
- 水面用に描画パスを追加
- デプスバッファから非同期で生成するバッファ
- デプスバッファから生成するバッファの用途
- 水のデプスを含んだ状態のデプスバッファを使うことに決定
- 半透明の描画パスを分割
- 水中
[GDC 2018]「Far Cry 5」におけるこだわりの「水面」表現法,教えます
- https://www.4gamer.net/games/380/G038063/20180321017/
- 水面の可視性 Visibility をチェックして, 画面上の描画する必要があるところだけ G-Buffer を作る
- 平らな水面, ハイトマップベースの水もある
- セクタごとにオクルージョン判定
- AABB でオクルージョンバッファとテストして, 結果を Indirect Draw Arguments buffer に書き出す
- Vector Displacement Maps
- パーティクルのエディタを拡張してデザイナーに提供
- 波の動きを Projected Box Decal で追加する
- Fractal Brownian Motion
- 近場の水面 : 最大 9 オクターブを重ねたノイズ
- 遠い水面 : 3 オクターブ重ねのノイズ
- オクルージョン判定
- 32×32 ピクセル単位で、水面のあり/なしをコンピュートシェーダで求める
- テッセレーション
- 16×16 の四角形ポリゴン単位で, VDM や FBM を適用する
- Normal
- 位置情報から、フル解像度の法線を生成
- Smoothness
- 上の法線を、ジオメトリ法線となじませる
- Foam
- ノイズテクスチャで泡の色を変調
- Flow Map : 2 つの位相をブレンド
- SDF (岩や水面の淵)で泡の出る箇所を制御
- 泡のディスプレイスメントをブレンド
- フローマップ
- 地形と水面のレベルから自動生成
- SDF で多少、制御もできる
- Componsition合成
- 水面のデプスあり、水面のデプスなしのバッファの出力
- ライティング処理( Tiled z-binned lighting)
時間変化
- 問題点
- 日に変化に対する対策
- 露出補正のカーブ
- 昼の場合の露出補正
- 夜の自動露出補正
- 解決策
- エミッション向けのカーブ
- GI 情報を使ったローカルトーンマッピング