Add client navmesh debug visualization using shared world baking
Add an opt-in PRK.Client navmesh overlay for inspecting playfield 4336 and other static/generated indoor/outdoor layouts. Reuse shared WorldGeometryLoader/WorldTileBaker and current client debug rendering; no server-engine dependency, stock-client-derived implementation, protocol changes, deployment or production data writes. Work on the current feature/rebuild-world-navmesh-baking branch as a follow-up to the user's request. No commit/push without authorization. Intended behavior: PRK_VISUALIZE_NAVMESH=1 bakes the current resolved layout with the existing shared profiles and displays enabled navigation detail triangles above the floor; disabled polygons are excluded. Missing/invalid geometry or native failures report an actionable diagnostic without preventing ordinary world loading. Zone replacement/unload/disposal releases overlay GPU resources; disabled mode does not load/bake navigation. Implemented and committed as 132a78e8c (feature: Add client navmesh visualization); subsequently pushed with the accepted refinement follow-up - PRK_VISUALIZE_NAVMESH=1/true opts into a local shared bake and green wireframe of enabled detail triangles, lifted slightly above the surface. Static worlds use Indoor/Outdoor profiles; resolved server-provided ACG rooms use Mission. No server-engine dependency or pre-export required. Logs explicitly identify bake/draw refusal; normal world loading continues. - Collision and navmesh overlays share a GPU resource owner; zone unload disposes overlay renderables, meshes and shader. Client and server/debug tooling share NavigationTileTriangles.Copy instead of duplicating detail extraction. Native cache respects PrkNativeCacheRoot for the existing client container runner. Shared DLLs, native library and upstream license verified present in client output. - Added NavmeshOverlayTests covering nonzero world origin, sloped detail surface placement, and omitted disabled polygons. Removed the flag filter deliberately: the test failed with Expected 1/Actual 2 overlays. Restored filter: test passes. Final client/test rebuild passes TreatWarningsAsErrors with existing NU1903 exemption. - Broader focused client run: 150 passed, 2 failed because local GameData/rdb lacks cd_image/twk (CancellingBackToLogin_KeepsTheLoginSky and FrontEndBrightnessIsSetOnceTheSkyIsChosen). Initial SQLite-provider environment failures resolved by installing development library in disposable container; no tests disabled or source workarounds. Missing-install failures remain explicit. - Native navigation: 128 passed, 1 external-capture skip. Lean engine build passes TreatWarningsAsErrors, zero warnings/errors. Existing NavmeshDataOwnershipTests: 4 passed after sharing extraction. git diff --check passes. - Real read-only 4336 CLI bake/reload passed: 196 tiles, 126132 triangles, output .dev-data/navmesh-visualizer. Parsed a central enabled detail-triangle point (442.96,30.22,426.51); a candidate offline camera position above it is 442.96,32.22,426.51. Camera suitability is not visually measured. Acceptance The user performed visual verification and confirmed that it works as expected, then explicitly authorized committing. Committed all 11 feature files as 132a78e8c (feature: Add client navmesh visualization) on feature/rebuild-world-navmesh-baking. User subsequently requested publication of the accepted work. Commit132a78e8c was pushed to the existing feature/rebuild-world-navmesh-baking branch and PR2570 together with query-buffer/refinement follow-ups d21408064 and b1a6461db. Working tree clean and synchronized with origin; no deployment performed. User acceptance closes the manual visual gate; no assistant-run graphical session, measured GPU disposal check or no-overlay capture comparison is claimed. The two unrelated missing-twk test failures and external-capture skip remain explicit above; Windows/macOS native/runtime and production Native AOT packaging were not validated for this follow-up.
Checklist
2 of 2 complete- Render the shared baked navigation for the current static/generated layout, omit disabled polygons, and release debug overlay resources on zoning.
- Verify regression sensitivity, affected builds/tests, real playfield 4336 bake and graphical overlay against a no-overlay control where available.
- Area
- Project Rubi-Ka
- Project
- engines
- Kind
- Feature
- Task ID
tsk_7zawn7vga7- Updated