acdream/docs/superpowers/plans
Erik c44536451d phase(N.4): SHIP — flag default-on + finalize plan + roadmap
Phase N.4 (Rendering Pipeline Foundation) ships. WbFoundationFlag
flips to default-on (== "1" → != "0"). WB's ObjectMeshManager is
now acdream's production mesh pipeline; WbDrawDispatcher is the
production draw path. Legacy InstancedMeshRenderer is retained as
ACDREAM_USE_WB_FOUNDATION=0 escape hatch until N.6 retires it.

Visual verification at Holtburg passed:
- Scenery (trees / rocks / fences / buildings) renders correctly
- Characters connected with full close-detail geometry (Issue #47
  preserved — GfxObjDegradeResolver path intact)
- FPS substantially improved by grouped instanced draws + per-entity
  AABB cull + opaque front-to-back sort + palette-hash memoization

Three high-value WB API gotchas surfaced during Task 26 visual
verification and are now documented in CLAUDE.md "WB integration
cribs" + plan Adjustments 7-9 + memory project_phase_n4_state.md:

1. ObjectMeshManager.IncrementRefCount only bumps a counter — does
   NOT trigger mesh loading. Call PrepareMeshDataAsync explicitly.
2. ObjectRenderBatch.SurfaceId is unset — read batch.Key.SurfaceId.
3. Modern rendering (GL 4.3 + bindless = every modern GPU) packs
   every mesh into ONE global VAO/VBO/IBO. Use
   glDrawElementsInstancedBaseVertex(BaseInstance) with FirstIndex +
   BaseVertex from the batch, not naive DrawElementsInstanced.

Plan doc flipped to Final state. Roadmap N.4 → Live ✓; N.5 rebranded
from "Terrain rendering" to "Modern rendering path" (bindless +
multi-draw indirect on top of N.4's foundation; terrain rendering
moves to N.5b). CLAUDE.md "Currently in flight" pointer updated to
N.5. New memory file project_phase_n4_state.md preserves the three
WB gotchas for cross-session continuity.

n4-verify*.log added to .gitignore.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-08 18:01:23 +02:00
..
2026-04-11-foundation-a1-streaming.md fix(app): Phase A.1 — separate Visible from Resident in StreamingRegion 2026-04-11 22:08:17 +02:00
2026-04-12-b3-complete-movement.md docs(plans): Phase B.3 Complete — movement + world navigation plan 2026-04-12 15:59:29 +02:00
2026-04-12-physics-collision-engine.md docs(plans): Phase B.3 physics collision engine implementation plan 2026-04-12 09:48:06 +02:00
2026-04-12-player-movement.md docs(plans): Phase B.2 player movement implementation plan 2026-04-12 14:10:13 +02:00
2026-04-13-movement-completion.md docs: movement completion implementation plan (7 tasks) 2026-04-13 23:08:48 +02:00
2026-05-02-l3-1-interpolation-manager.md docs(plan): Phase L.3.1 — InterpolationManager core implementation plan 2026-05-02 18:26:02 +02:00
2026-05-02-l3-positionmanager-jump.md docs(plan): Phase L.3.1+L.3.2 PositionManager + retail-faithful jump plan 2026-05-03 10:10:16 +02:00
2026-05-08-phase-n1-scenery-via-wb-helpers.md plan(N.1): scenery via WorldBuilder helpers — implementation plan 2026-05-08 09:05:53 +02:00
2026-05-08-phase-n3-texture-decode-via-wb.md docs(N.3): mark Phase N.3 shipped + commit implementation plan 2026-05-08 11:37:52 +02:00
2026-05-08-phase-n4-rendering-foundation.md phase(N.4): SHIP — flag default-on + finalize plan + roadmap 2026-05-08 18:01:23 +02:00