godai-kaihatsu / gondwana

https://gondwana.godai.co.jp/
2 stars 0 forks source link

"足元からの距離" に応じた LOD レベルの地形表現に対応したい #18

Closed usagi closed 6 years ago

usagi commented 6 years ago

本チケットでの対応概要

"足元からの距離" に応じて全方位に同様の LOD レベルが最大でも1段階のレベル差で隣接する地形表現方式に対応する。

提案理由

4.0.0.8 時点では beta 仕様として "足元の直下のタイルのLODレベルを基準として必要最小限" の LOD レベルの地形表現にのみ対応していた。この方式は実装が単純である事に加え、一般に beta 的な動作試験を目的とする上では読み込むタイル数が最小で済み、多くの目的のテストにおいてはロード時間のストレスを最小化できるため、さしあたりこの方式のみの実装を行っていた。

しかし、 https://github.com/godai-kaihatsu/gondwana/issues/3#issuecomment-349897235 の状況発生や、そろそろ製品としてのリリース版に近い全景の見栄えのする方式への対応時期でもあろうかという状況から、 "足元からの距離" に応じて全方位に同様の LOD レベルが最大でも1段階のレベル差で隣接するような実用上も見栄えする地形表現方式にも対応したいと考えるに至った。

usagi commented 6 years ago

厳密に "距離ベース" だと遠くになるほど処理コスト的にG4の地形システムには不利なので、4分岐セル単位で中心±2セルを基準LODとして、そこからXY直交でNセルごとにLOD-1する、という方式で実装してみる事にする。実用上問題があれば、追って別方式として追加対応する。

usagi commented 6 years ago

4.0.0.10 enable_adjacency_cells=False

image

4.0.0.10 enable_adjacency_cells=True

image

usagi commented 6 years ago

enable_adjacency_Cells=True

image

視界前方へ進むと足元の細密タイル+1の範囲はロードされる:

image

ロード発生の様子( pmc_pool_initial_count=0

image

usagi commented 6 years ago

enable_adjacency_cells=True で現時点では十分な動作をしていると思う。本件はさしあたり対応不要と判断する。 adjacent cell の基準距離を Fasle=0, True=1 以外にも設定したいなどの要望が発生すればそれはまた別件とする事にしたい。閉じ。

usagi commented 6 years ago

adjacent cell の設定を boolean の on/off から 隣接レベル値 0,1,2 へ変更すると厳密には距離ではないが、本チケットの本質的なユーザーニーズの一部には対応できるかもしれない。

usagi commented 6 years ago

隣接レベル2を試験実装:

動作に必要なセル数は lv=1 より増える:

image

視野の安定感は向上する:

image

比較用、隣接レベル1(現行の adjacent cell = True):

image

usagi commented 6 years ago

conf:

# obsolete
enable_adjacency_cells = True
# new
adjacency_cell_distance = 2

CBT なので deprecated 期間を設けずに obsolete とする。

usagi commented 6 years ago

コマンドからも ProceduralPlanet.SetEnableAdjacencyCells を廃止、 ProceduralPlanet.SetAdjacencyCellDistance を追加。

usagi commented 6 years ago

wiki 更新 https://github.com/godai-kaihatsu/gondwana/wiki/pow'conf'enable_adjacency_cells