revert #176/#177 cap raise: the uncapped light pool exposes unported per-cell reach semantics — defer to A7
The MaxGlobalLights 128->1024 fix (4d25e04d) was live-tested and made
the eviction pops stop — but with the full 366-fixture pool active,
three unported retail lighting semantics dominate the Facility Hub:
(a) lights reach THROUGH solid floors/walls: retail registers lights
per-CELL (insert_light 0x0054d1b0) so the under-room portals'
purple light never touches the corridor above; our flat
sphere-overlap selection has no reach/occlusion notion — rooms
washed magenta (user screenshot).
(b) stationary weenie fixtures ride the DYNAMIC 1/d falloff (~9x
retail's static 1/d3 bake curve at 3m) — the #143 isDynamic
assignment is wrong for ACE-served world fixtures.
(c) an unexplained striped z-fight-like artifact on lit floor regions
(user screenshot; no coincident dat geometry — the coplanar-pair
sweep came back empty; not a striped texture — all corridor
surfaces are plain Base1Image stone).
Reverted to 128. The cap is now documented as a LOAD-BEARING STOPGAP:
it accidentally approximates per-cell reach by keeping the pool local
to the camera. The #176/#177 root cause (cap eviction popping per-cell
light sets) stays CONFIRMED and fully documented; the real fix is the
A7 dungeon-lighting arc: per-cell light registration + the static
fixture curve + the stripe hunt, THEN uncap. The desired-end-state pin
is kept as Skip with the full pointer. Register row AP-85 rewritten to
match reality; ISSUES #176/#177 back to OPEN with the complete
mechanism story.
Suites: Core 2591+3skip / App 719 green.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
4d25e04d83
commit
d591e3bbe5
5 changed files with 169 additions and 48 deletions
|
|
@ -271,7 +271,13 @@ public sealed class LightManagerTests
|
|||
/// end-to-end property: a light in range of an object stays selected no
|
||||
/// matter where the camera is, at Facility-Hub-scale light counts.
|
||||
/// </summary>
|
||||
[Fact]
|
||||
[Fact(Skip = "#176/#177: the camera-invariant pool is the DESIRED retail end-state " +
|
||||
"(minimize_object_lighting has no global cap), but uncapping was live-tested " +
|
||||
"2026-07-06 and reverted — it exposes unported per-cell light-reach semantics " +
|
||||
"(through-floor light), the dynamic-vs-static falloff misassignment for weenie " +
|
||||
"fixtures, and an unexplained striped floor artifact. Un-skip when the A7 " +
|
||||
"dungeon-lighting arc lands per-cell registration (insert_light 0x0054d1b0) " +
|
||||
"and raises MaxGlobalLights. See ISSUES #176/#177 + register row AP-85.")]
|
||||
public void PointSnapshot_HubScaleLightCount_ObjectSelectionIsCameraInvariant()
|
||||
{
|
||||
var mgr = new LightManager();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue