ダイナミックな変更を可能にするCyllista Game
Engineのオープンワールド向けプロシージャル背景制作ツールと描画機能
PC、ハイエンドコンソール向けゲームエンジン
テレインシステム
1,データ構成
・セクターごとに地形等の情報を保持
ハイトマップ
257x257 この都合で無圧縮
マテリアルIDマップ
上記同様に無圧縮
フォリッジ密度マップなど
エコトープマップ
森林や雪原など
・セクターを選択して編集を開始
・セクターをほかのユーザーが編集しているかどうかの表示
・テレインLOD
近景、中景、遠景
2,基本編集ツール
地形編集ツール
ハイトマップ編集
スカルプト機能
リアルタイム反映
コリジョン更新
パスツール
道、川を引くツール
デカール配置
メッシュスタンプ
3,テレインレイヤー
4,プロシージャルペイント
メッシュスタンプを発展させたもの
ハイトとマテリアルがリアルタイムで更新
分布:形状をパラメータ化
高さ、傾き
2Dグレースケールマップ
ComputeShaderで実装
5,テレイン描画
ロード済み子ノードのみカリング
Triplanar Mapping
急な傾斜の縦伸びを防止
https://bgolus.medium.com/normal-mapping-for-a-triplanar-shader-10bf39dca05a
ブレンド処理の処理負荷が高くなる
現状48サンプル
TriplanarからBiplanar Mappingへ変更
2軸を採用してブレンドする
Triplanar Mappingと遜色なし
Stochastic Sampling
ウェイトに従って確率的に1マテリアル/投影方向を選択
https://www.gdcvault.com/play/1025480/Terrain-Rendering-in-Far-Cry
Biplanar + Stochastic + α
近景と遠景で調整
フォリッジしシステム
1,プロシージャルフォリッジ配置
効率的に配置したい
・GPUで配置
・実行時にリアルタイム配置
・ルールで自動配置
配置用マップ
密度マップ
4枚まで利用可能
エコトープマップ
大きな警官の種類と範囲
サブエコトープマップ
マテリアルIDマップ
テレインマテリアルIDを保持
2,点群生成とカリング
ランダムでなくDeterministicな配置
点単位でカリングして描画
https://www.guerrilla-games.com/read/gpu-based-procedural-placement-in-horizon-zero-dawn
読み込めない…
3,頂点吸着
4,フォリッジレイヤの依存関係
高木の周りに低木を植えたい
高木の点群をDependency Mapにラスタライズ
5,遠景フォリッジ
ロードされていないためフォリッジ配置データがない
レジデントマップ
jenkinsで毎日自動生成
6,他システムへの情報提供
点群の座標はゲーム実行時まで不明
サウンドやゲームプレイなど
点群クエリー
サウンドゲームプレイで活用
指定した円のうちにあるフォリッジ配置店を取得