adityanandanx / adityanandanx/nightcall
Build: production terrain engine from the LOD prototype
- Linguagem predominante
- Sem dados de linguagem
- Estrelas
- 0
- Forks
- 0
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Descrição
Part of #1
## Question
Take the validated prototype branch `prototype/lod-quadtree` (ticket #6, commit 4dafb65 — quad-locked SSE quadtree + LRU TileCache + skirt crack-mitigation) and turn it into the production terrain engine: fully crack-free LOD transitions, streaming performance, and a clean module split ready for the physics map.
## Scope
- **Crack-free seam upgrade:** replace skirt-only mitigation with **edge-matched child-from-parent upsampling** (per research #4: Navara `upsample/mod.rs` / Cesium child-from-parent) so a child tile reuses its parent's exact boundary vertices — cracks eliminated at LOD transitions, not hidden. Keep skirts as the eviction-time gap layer.
- **Horizon occlusion gate** (research #4: `EllipsoidalOccluder`) so we stop streaming tiles around the far side of the globe; add frustum culling.
- **Decode on a Worker** (research #4: Navara worker split) so big tile fetches don't jank the render thread; transfer typed arrays.
- **Geometry pooling + eviction GC:** dispose GPU buffers on cache eviction (already signaled via `onEvict`), keep byte budget bounded while orbiting fast.
- **Module split finalized** per research #4: `decode/` `tile-cache/` `lod-selector/` `geometry-builder/` (RTC) `threeLayer/` — matching what the physics map (react-three-rapier colliders from own triangles) will consume.
- Keep RTC-center geometry (float64/float precision at globe scale).
## Deliverable
A branch off `prototype/lod-quadtree` with the engine refactor; zoom orbit from space to ~1 km altitude stays smooth (no jank, bounded cache, crack-free seams), verified in-browser. This is the base the physics map builds on.
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Direção de pesquisa
Start on the `prototype/lod-quadtree` branch from ticket #6 (commit 4dafb65) and review the terrain flow in `decode/`, `tile-cache/`, `lod-selector/`, `geometry-builder/`, and `threeLayer/`. Next inspect current seam handling, cache eviction (`onEvict`) paths, and thread/worker boundaries to identify where to apply parent-child upsampling, horizon frustum culling, and typed-array transfer. No tests are named, so verify by running/in-browser testing from space to ~1 km and confirm smooth orbiting, bounded cache, no LOD cracks, and no render-thread jank.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- react, three.js
- Domínio
- frontend
- Tipo de issue
- Funcionalidade
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Status de atividade
- Pouca atividade
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 25/100