Closed usagi closed 3 years ago
基本的な設計が完了した。ただ、地形のLODレベルと異なるLODレベルのデータを扱う方法について必要だろうのでどうしたものか検討を続けている。
地形と異なるLODレベルの地物を扱う方法を幾つか考えてみたが、バグの恩賞化しそうな予感、GeoJSONなどテキストパース系が主体となるため低レベルタイルへ高レベル地物タイルをロードする場合かなり高コストになる事、など問題が大きい予想が拭えない。
そこで、本チケットでは地形タイルと同じLODレベルの地物タイルに対応し、それ以上の対応の必要性はユーザーニーズと他の機能開発の状況を見ながら追って判断する事にする。
と、思ったが、どうも実際のサービスを考えるとユーザーニーズ的に「地形タイル」と「地物タイル」のLOD対応性は不要なのでは、と思えてきた。要再考。
ここまでは「地形タイル」に地物を間接的に扱う仕組みを追加する方針だったが、「地形タイル」と同じレベルの独立した別の機能として「惑星」の仕組みに組み込んで、「地物タイル」は注視点から一定距離を読み込むようにした方が実用的なんじゃないか、と思えてきた。
処理の負荷から考えて、
地物タイル群をロードする方針に変更。
を行う、そんな動作で実装してみることにした。
実装を進めて動作試験可能な状態にしてみたんじゃが…地物が予想以上に高密度でロードされてUI的にどうしようという問題に遭遇している。
ついで、このくらいの数の暴力になるとHUDはCPU計算で実装する部分が多いため地物のマーカー表示も重くなってしまう。点を3Dオブジェクトにしてメインビューへ移してGPUレンダリングにして、マーカーのオンカーソルのレイ判定からHUDへ情報表示、HUDの情報表示はピンどめ可能にする、などの対応を行わないと、こうした地物タイルのデータをUI的に有効に使えないと思う。
地物システムは現在タイルとは独立した実装となっている。本チケットではタイルシステムと地物システムを合わせた地物タイルの実装を行い、GSIの提供するGeoJSON形式のタイルサービスを地図レイヤーと類似した感覚でユーザーが扱えるよう対応する。