docs: #176/#177 handoff — root-caused, folded into A7 dungeon lighting
Session handoff for the next pickup. #176 (purple seam flash) + #177 (stair-room light pop-in) are ONE bug, root-caused to the camera-nearest MaxGlobalLights=128 snapshot cap evicting in-range lights of visible cells (Hub = 366 fixtures). Fix deferred to A7 because uncapping exposes unported per-cell light-reach (through-floor light) + the fixture falloff-curve misassignment + an unattributed striped-floor artifact. - New handoff: docs/research/2026-07-06-176-177-handoff-A7-lighting.md (root cause, why-deferred, the A7 fix order, tooling inventory). - Roadmap A7 updated: now owns #176/#177; the 'light visibility culling' hypothesis layer is CONFIRMED (no per-cell insert_light registration); fixture-curve layer added. Analysis pre-paid. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
d591e3bbe5
commit
e1746ca10d
2 changed files with 171 additions and 1 deletions
|
|
@ -293,14 +293,32 @@ successfully 2026-04-30 for the steep-roof case. Matching binaries
|
|||
|
||||
#### Phase A7 — Indoor lighting fidelity (RenderDoc + retail-decomp driven)
|
||||
|
||||
**Now also owns #176/#177 (2026-07-06):** the Facility Hub purple seam
|
||||
flash + stair-room light pop-in are ROOT-CAUSED to this phase's "light
|
||||
visibility culling" layer — a camera-nearest `MaxGlobalLights=128`
|
||||
snapshot cap evicts in-range lights of visible cells (Hub has 366
|
||||
fixtures), so per-cell 8-light sets churn as the camera moves.
|
||||
Uncapping was live-tested and reverted because the full pool exposes the
|
||||
per-cell-reach + fixture-curve defects below (through-floor light,
|
||||
1/d-vs-1/d³). Analysis PRE-PAID — see
|
||||
`docs/research/2026-07-06-176-177-handoff-A7-lighting.md` (the fix order:
|
||||
per-cell `insert_light` registration → static fixture curve → stripe
|
||||
hunt → uncap) + register AP-85.
|
||||
|
||||
**Hypothesis layers (less mapped than physics):**
|
||||
- Per-cell environment-light tag association — indoor cells should
|
||||
inherit only their own env lights, not outdoor day-cycle.
|
||||
- Light visibility culling — what lights actually contribute to each
|
||||
cell's render.
|
||||
cell's render. **CONFIRMED bug here (#176/#177): no per-cell light
|
||||
registration — lights are a flat world-space sphere-overlap pool that
|
||||
reaches through solid floors; retail's `insert_light` 0x0054d1b0
|
||||
scopes each light to its cell.**
|
||||
- Per-entity light direction transform — held-item-spotlight bug
|
||||
(#L-spotlight) is per-entity attribution gone wrong.
|
||||
- Static-stab atmospheric inheritance (#81).
|
||||
- **Fixture falloff curve (#176/#177): stationary server-spawned
|
||||
fixtures ride the DYNAMIC 1/d path (#143 `isDynamic`); should be the
|
||||
static 1/d³ bake (`calc_point_light` 0x0059c8b0).**
|
||||
|
||||
**Investigation methodology:** less existing infrastructure than
|
||||
physics. Requires:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue