From 167f05c4faf1aee5c82b6f6a32431182197127af Mon Sep 17 00:00:00 2001 From: Erik Date: Sat, 13 Jun 2026 20:45:29 +0200 Subject: [PATCH] docs(G.3 A7): record dungeon light-selection fix (activeLights 2->8) + the 0.30 ambient follow-up Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/ISSUES.md | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/docs/ISSUES.md b/docs/ISSUES.md index 9974b7be..5c528ee3 100644 --- a/docs/ISSUES.md +++ b/docs/ISSUES.md @@ -95,11 +95,21 @@ into the `0x0007` dungeon: player grounded on the dungeon floor (`[snap] claim=0 VALIDATED z=0.000`), correct membership (cell stays `0x0007…`, ZERO ACE `failed transition` spam), and the render budget is sane — **WB-DIAG instances ~39,000 (meshMissing=0)** vs the 9.1M pre-Bug-A blowup (#95, now RESOLVED as a Bug-A symptom). -User-confirmed: "no errors from ACE this time." REMAINING (not a render bug): dungeon -**torch/point-lighting = Phase A7** — the dungeon correctly gets retail's flat 0.2 indoor -ambient (`GameWindow.UpdateSunFromSky`, `playerInsideCell` true via `playerRoot && !SeenOutside`), -but per-cell `Setup.Lights` point-lights (torches) aren't registered yet, so it looks dim -("lighting off"). That's the A7 indoor-lighting feature, needs visual iteration. +User-confirmed: "no errors from ACE this time." + +**✅ A7 dungeon lighting — selection fix LANDED + objectively verified (`a80061b`).** The +"lighting off" report was NOT missing torches — the `ACDREAM_PROBE_LIGHT` diagnostic +(`d6fb788`) showed the dungeon correctly gets retail's flat 0.2 indoor ambient + sun zeroed +(`UpdateSunFromSky`, `playerInsideCell` true) AND **2227 torch/point-lights register**. The +bug was the active-light SELECTION: `LightManager.Tick` dropped any light whose range didn't +reach the VIEWER (`DistSq > Range²·slack² → skip`), so a room with 2227 torches lit only the +~1 the player stood inside (`activeLights≈1`, rest at flat 0.2). Retail's D3D model picks the +8 NEAREST lights and applies the hard range-cutoff PER SURFACE in the shader +(`mesh_modern.frag: if (d < range)`). Fix = drop the viewer-range candidacy filter, take the +nearest 8. Probe after: **`activeLights` 2→8** in the dungeon (the room's 8 nearest torches now +light it). Core lighting suite green. SECONDARY (flagged, not fixed): retail's per-cell ambient +default is 0.30 (`0x3e99999a`) read PER-CELL (`m_clrAmbientLight`) vs our flat 0.20 — a +candidate brightness tweak needing a decomp pass to confirm the world-EnvCell ambient source. **Severity:** HIGH (any far/dungeon teleport is unusable) **Filed:** 2026-06-13 (M1.5 dungeon-demo gate attempt — meeting-hall portal) **Component:** physics/streaming — teleport-arrival snap vs async landblock hydration