feat(overhaul): port S5 particle cell visibility

Publish the exact completed walk landscape set as the typed retained particle-view product. Apply retail CLandCell membership versus constant-true non-null CEnvCell eligibility while preserving the x87 distance and AP-116 behavior.

Delete the null-root terrain visibility reconstruction and the dead drawable-cell point-light feedback chain. Retire AP-117, correct AP-85 and AD-21, and keep directional shadows, building degrade, AP-232, probes, RHI, shaders, and DAT outside this chunk.

Automated return: Release 0 warnings/0 errors; Core VFX 111/111; App particle/frame/renderer/terrain 146/146; warmed production allocation 1/1 at 0 B. First official hermetic artifact s5-c1-hermetic-20260904 is preserved at 16759/16760 with only the stale 162-row assertion; after the bounded 161 correction, exact pin 1/1 and fresh s5-c1-hermetic-corrected-20260904 16760/16760. InstalledDat 385 pass, 10 documented failures, 1 documented skip, no new identity.

Mutation 1: making EnvCell eligibility set-dependent first failed ParticleSystemTests.cs:553 Assert.True, expected true actual false. Mutation 2: making outdoor eligibility constant true first failed ParticleSystemTests.cs:559 Assert.False, expected false actual true.

Mutation 3: feeding the diagnostic union first failed WorldSceneRendererTests.cs:279 HashSet equality, expected [16842755], actual [16843008, 16842755]. Mutation 4: restoring CollectVisibleCells first failed TerrainParticleCellVisibilityTests.cs:37 and named TerrainModernRenderer.cs.

Mutation 5: restoring ObserveDrawableCells first failed TerrainParticleCellVisibilityTests.cs:37 and named WorldRenderFrameBuilder.cs. Mutation 6: changing the inclusive boundary from <= to < first failed ParticleSystemTests.cs:519 Assert.True, expected true actual false.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-09-04 16:27:46 +02:00
parent efb0756190
commit 94a6b5ef39
18 changed files with 352 additions and 269 deletions

View file

@ -1159,10 +1159,14 @@ therefore remains an OH6 portal-fan approximation. The current ordinary-part
classifier is a materially aligned candidate and OH4 must protect it while
removing only contradictory view/admission residue.
The walk's visited EnvCells and landscape land cells still form different
typed inputs. Outdoor particle, light, and shadow consumers must borrow the
landscape half rather than infer visibility from aggregate owner ids; OH8 owns
that final consumer cutover.
The walk's visited EnvCells and landscape land cells form different typed
inputs. Campaign OVERHAUL S5-c1 made particle update borrow the exact completed
landscape half for `CLandCell::IsInView`, while EnvCell owners use retail's
constant-true `CEnvCell::IsInView` virtual. Point lights remain a separate
resident-registry product and consume neither walk half. Null-root safety
frames publish no cell-visibility answer; the former terrain frustum/AABB
reconstruction and last-frame point-light feedback seam are deleted.
Directional shadows remain the next typed landscape consumer (S5-c2).
WorldBuilder contributes DAT decoding, mesh preparation, residency, and Vulkan
batch mechanics only; it makes no visibility or ordering decision. Forced merge

File diff suppressed because one or more lines are too long