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>
71 lines
1.4 KiB
Text
71 lines
1.4 KiB
Text
# Build output
|
||
bin/
|
||
obj/
|
||
out/
|
||
|
||
# Rider / VS
|
||
.idea/
|
||
.vs/
|
||
*.user
|
||
*.suo
|
||
|
||
# NuGet
|
||
*.nupkg
|
||
packages/
|
||
|
||
# OS
|
||
.DS_Store
|
||
Thumbs.db
|
||
|
||
# Reference repos and retail client (large, not our code, separate licenses)
|
||
# WorldBuilder is exempt — it's a load-bearing dependency tracked as a git
|
||
# submodule pointing at our fork (Phase N, see docs/architecture/worldbuilder-inventory.md).
|
||
references/*
|
||
!references/WorldBuilder
|
||
!references/WorldBuilder/
|
||
|
||
# Claude Code session state
|
||
.claude/
|
||
launch.log
|
||
launch-*.log
|
||
launch.utf8.log
|
||
n4-verify*.log
|
||
|
||
# ImGui auto-saved window/docking state (per-user, not source)
|
||
imgui.ini
|
||
|
||
# User-only download cache (per-developer, not source)
|
||
refs/
|
||
|
||
# Python tooling (under tools/) — bytecode caches
|
||
__pycache__/
|
||
*.pyc
|
||
|
||
# Per-session scratch (Claude commit message drafts, ad-hoc temp files)
|
||
tmp/
|
||
|
||
# Git worktrees for isolated feature work
|
||
.worktrees/
|
||
|
||
# Per-session retail-debugger scratch — cdb scripts, logs, analysis helpers.
|
||
# The committed reference workflow lives in CLAUDE.md "Retail debugger toolchain";
|
||
# session-specific traces should not pollute the repo.
|
||
*.cdb
|
||
launch_*.log
|
||
launch_*.err
|
||
launch_*.ps1
|
||
launch[0-9]*.log
|
||
analyze_*.ps1
|
||
peek_*.ps1
|
||
run_cdb_*.ps1
|
||
find_cdb.ps1
|
||
find_acclient.ps1
|
||
kill_cdb.ps1
|
||
append_memory.ps1
|
||
sky_*.log
|
||
smoke_test*
|
||
steep_roof_trace*
|
||
substep_trace*
|
||
sg_built.txt
|
||
# Stray bash-mangled path artifacts from PowerShell-via-bash escaping
|
||
C[-]*
|