feat(map): add seamless five-band grid LOD
This commit is contained in:
@@ -157,6 +157,28 @@ outline плашки отключён и не создаёт дополните
|
||||
доступной поверхности, а depth-fail material не даёт стержню исчезнуть при
|
||||
пересечении рельефа.
|
||||
|
||||
### Планетарная сетка и LOD
|
||||
|
||||
Map Page использует один сохраняемый профиль сетки из пяти LOD. По умолчанию
|
||||
LOD 1–3 рендерятся как приподнятая пространственная сетка, а LOD 4–5 — как
|
||||
гратикульная проекция по поверхности. Для каждого LOD отдельно задаются
|
||||
верхняя высота (кроме последнего), шаг и режим. Общими остаются центр, размер
|
||||
стабильного тайла, радиус, высота 3D-слоя, допустимый угол от надира, линии,
|
||||
кружки и кресты. Старые layout автоматически дополняются этими полями только
|
||||
в client state и переписываются после явного Application Save.
|
||||
|
||||
Выбор band использует hysteresis `0.08`, поэтому камера у границы не заставляет
|
||||
слой дрожать между соседними LOD. При camera-centered режиме центр квантуется
|
||||
по `gridTileSizeKm`: небольшое движение внутри тайла не пересобирает геометрию.
|
||||
Опция `gridRebuildOnMoveEnd` сохраняет доказанный Engine-паттерн и по умолчанию
|
||||
не запускает тяжёлую перестройку во время движения.
|
||||
|
||||
Смена геометрии выполняется двойным буфером. Следующий `CustomDataSource`
|
||||
сначала монтируется рядом с текущим; текущий удаляется только после двух
|
||||
готовых post-render кадров (`dataSourceDisplay.ready`) либо по bounded cleanup
|
||||
timeout. Запрещено очищать live grid через `entities.removeAll()` до подготовки
|
||||
замены: именно это создаёт видимые дыры при переходе между LOD.
|
||||
|
||||
## Acceptance fixtures
|
||||
|
||||
- `registry/fixtures/map/map-empty-offline-v0.1.json` — отсутствие provider/live data без разрушения shell и управляющих действий.
|
||||
|
||||
Reference in New Issue
Block a user