fix(overhaul): integrate reviewed room-light selection repair

Exact26 code/test/architecture/register blobs from621b41fa3; campaign ledger and lead verification included. Independent retail and production/lifetime/ABI reviews PASS. Lead69Core/176App/2actualshader pixels, viewer/clear/NaN negative controls fail as intended, exact restoration69PASS. AP68retired; AP16/35/85 residuals honest. Fresh campaign Release and graphical lighting proof still owed; temporary observer cleanup contract conditional. FPS deferred; no G4 or main merge.
This commit is contained in:
Erik 2026-09-05 14:57:52 +02:00
parent e8efe1131f
commit a5debaca2b
30 changed files with 928 additions and 399 deletions

View file

@ -1195,6 +1195,17 @@ no reconstructed fallback. Login and portal-space retain
last-frame point-light feedback seam are deleted. Directional shadows remain
the next typed landscape consumer (S5-c2).
Point-light retention follows retail's two independent products: seven dynamic
and forty static candidates, with POINT lights ranked from the light owner's
explicit root origin using stable forward insertion; SPOT/non-point lights rank
at zero. Authored offsets affect the final light position but not the rank. The viewer light is offered to the dynamic product
first even when its registration is late. EnvCell shells consume the complete
47-entry product through their mode-specific binding-5 stride, while ordinary
Gfx/building objects retain the separate eight-entry hardware selection and
stride. Both ordinary and atmospheric mesh shaders select that stride from the
existing lighting mode; the attenuation, ambient, packing, and per-object
selection formulas are otherwise shared and unchanged.
WorldBuilder contributes DAT decoding, mesh preparation, residency, and Vulkan
batch mechanics only; it makes no visibility or ordering decision. Forced merge
breaks at walk event boundaries preserve retail order while compatible draws

File diff suppressed because one or more lines are too long