Closed usagi closed 6 years ago
厳密に "距離ベース" だと遠くになるほど処理コスト的にG4の地形システムには不利なので、4分岐セル単位で中心±2セルを基準LODとして、そこからXY直交でNセルごとにLOD-1する、という方式で実装してみる事にする。実用上問題があれば、追って別方式として追加対応する。
4.0.0.10 enable_adjacency_cells=False
4.0.0.10 enable_adjacency_cells=True
enable_adjacency_Cells=True
視界前方へ進むと足元の細密タイル+1の範囲はロードされる:
ロード発生の様子( pmc_pool_initial_count=0
)
enable_adjacency_cells=True
で現時点では十分な動作をしていると思う。本件はさしあたり対応不要と判断する。 adjacent cell の基準距離を Fasle=0, True=1 以外にも設定したいなどの要望が発生すればそれはまた別件とする事にしたい。閉じ。
adjacent cell の設定を boolean の on/off から 隣接レベル値 0,1,2 へ変更すると厳密には距離ではないが、本チケットの本質的なユーザーニーズの一部には対応できるかもしれない。
隣接レベル2を試験実装:
動作に必要なセル数は lv=1 より増える:
視野の安定感は向上する:
比較用、隣接レベル1(現行の adjacent cell = True):
conf:
# obsolete
enable_adjacency_cells = True
# new
adjacency_cell_distance = 2
CBT なので deprecated 期間を設けずに obsolete とする。
コマンドからも ProceduralPlanet.SetEnableAdjacencyCells
を廃止、 ProceduralPlanet.SetAdjacencyCellDistance
を追加。
本チケットでの対応概要
"足元からの距離" に応じて全方位に同様の LOD レベルが最大でも1段階のレベル差で隣接する地形表現方式に対応する。
提案理由
4.0.0.8 時点では beta 仕様として "足元の直下のタイルのLODレベルを基準として必要最小限" の LOD レベルの地形表現にのみ対応していた。この方式は実装が単純である事に加え、一般に beta 的な動作試験を目的とする上では読み込むタイル数が最小で済み、多くの目的のテストにおいてはロード時間のストレスを最小化できるため、さしあたりこの方式のみの実装を行っていた。
しかし、 https://github.com/godai-kaihatsu/gondwana/issues/3#issuecomment-349897235 の状況発生や、そろそろ製品としてのリリース版に近い全景の見栄えのする方式への対応時期でもあろうかという状況から、 "足元からの距離" に応じて全方位に同様の LOD レベルが最大でも1段階のレベル差で隣接するような実用上も見栄えする地形表現方式にも対応したいと考えるに至った。