acdream/src/AcDream.App
Erik cffc3ee343 feat(render): portal-based EnvCell visibility (Step 4)
Port ACME's EnvCellManager portal visibility system:

- New CellVisibility class: BFS portal traversal from camera cell,
  portal-side clip-plane test, FindCameraCell with grace period
- LoadedCell data populated during streaming (portals, clip planes,
  world/inverse transforms, local AABB from CellStruct vertices)
- WorldEntity.ParentCellId tags interior entities for filtering
- InstancedMeshRenderer.Draw accepts optional visibleCellIds set —
  interior entities whose parent cell isn't visible are skipped
- Conditional depth clear between terrain and static mesh when
  camera is inside a cell (ACME GameScene.cs pattern)

When camera is outdoors, all interiors render (visibleCellIds=null).
When camera enters a building, only BFS-reachable cells render.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 22:20:52 +02:00
..
Input refactor(physics): wire PhysicsBody + MotionInterpreter into PlayerMovementController 2026-04-13 00:08:02 +02:00
Plugins feat(core): add IGameState, IEvents, WorldEvents with replay-on-subscribe 2026-04-10 20:29:29 +02:00
Rendering feat(render): portal-based EnvCell visibility (Step 4) 2026-04-13 22:20:52 +02:00
Streaming fix(streaming): relocate player entity to current landblock every frame 2026-04-13 15:28:32 +02:00
AcDream.App.csproj feat(net+app): WorldSession class + GameWindow live-mode wiring (Phase 4.7e/f) 2026-04-11 15:25:41 +02:00
Program.cs feat(app): wire IGameState+IEvents into Program and SmokePlugin 2026-04-10 20:31:50 +02:00