fix(render): FW4 slice 1 - interior outside-view slices come from the walk
The FW3 visual gate's stairwell/grass transition flash (grass briefly covering floor openings at doorway crossings - the #119 family) was the FW3 dual path leaking: the walk decided WHETHER terrain draws while the old PortalVisibilityBuilder assembly decided WHERE (slice planes, count, scissor), and punch fans indexed the old slice array with walk view indices. The new ACDREAM_PROBE_WALK_ROOT apparatus pinned the boundary frames: fat/degenerate old-apparatus exit views splash terrain over interior pixels, the interior depth-clear preserves color, and cells absent from the walk's flood never repaint. Retail has ONE visibility structure and cannot produce this. ClipFrameAssembler.ReassembleOutsideViewFromWalk now materializes the walk's own outside_view (pixel screen points -> standard NDC -> the existing ClipPlaneSet machinery) into the assembly's outside-view block after Collect, ahead of the single PrepareClipFrame publication (moved below the walk block). The Landscape event carries the walk's active view count on the record's existing OutsideViewCount field (trace mapping compares kind only - zero oracle-fixture churn) and the driver fans exactly that many terrain slices; activeTerrainSliceCount is deleted end to end. Outdoor roots keep the assembler's single full-screen slice, asserted ==1. Hermetic 6,762/0 (4 new materializer tests pin the y-flip and plane-sign conventions), Walk lane 209/1, InstalledDat walk conformance 40/1. Seals/cell slices/look-in seeding stay on the old per-cell views for the rest of FW4 (identical dat polygons; only the visible set can differ). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
8f8b0b9c57
commit
37febd1fe6
11 changed files with 468 additions and 44 deletions
|
|
@ -475,6 +475,37 @@ hygiene).
|
|||
**Goal:** everything draws at its walk turn; the patch apparatus and the
|
||||
old visibility layer are gone.
|
||||
|
||||
**FW4 SLICE 1 — the interior outside-view source cutover (2026-08-30,
|
||||
pulled forward from the FW3 visual gate).** The owner's stairwell/grass
|
||||
transition report (grass briefly covering floor openings at doorway
|
||||
crossings, intermittent — the #119 family) probe-pinned to the FW3 dual
|
||||
path: the walk decided WHETHER terrain draws (`_interiorPView.OutsideView.
|
||||
ViewCount > 0`) while the old `PortalVisibilityBuilder` assembly decided
|
||||
WHERE (slice clip planes + count + scissor), and the walk's punch fans
|
||||
indexed the OLD slice array with WALK view indices. At boundary frames
|
||||
(`ACDREAM_PROBE_WALK_ROOT` captures: the slices=2 short-flood family at
|
||||
OUT→IN, a 1-frame outdoor blip mid-crossing) the old builder's exit views
|
||||
went fat/degenerate, terrain splashed over interior pixels, and the
|
||||
depth-clear preserves COLOR — any cell absent from the walk's flood never
|
||||
repainted its pixels. Retail cannot produce this: it has ONE visibility
|
||||
structure. The cutover: `ClipFrameAssembler.ReassembleOutsideViewFromWalk`
|
||||
materializes the walk's own `outside_view` (pixel points → standard NDC →
|
||||
the existing `ClipPlaneSet.From` machinery) into the assembly's
|
||||
outside-view block right after Collect, before the single
|
||||
`PrepareClipFrame` publication (moved below the walk block); the
|
||||
`Landscape` event now carries the walk's active-view count (rides the
|
||||
record's existing `OutsideViewCount` field — trace mapping compares kind
|
||||
only, ZERO oracle-fixture churn) and the driver fans exactly that many
|
||||
terrain slices — `activeTerrainSliceCount` is deleted end to end. Outdoor
|
||||
roots keep the assembler's single full-screen slice (asserted ==1;
|
||||
identical content by construction). Suites: hermetic 6,762/0 (4 new
|
||||
materializer tests pinning the y-flip + plane-sign conventions), Walk
|
||||
lane 209/1, InstalledDat walk conformance 40/1 — all unchanged or grown.
|
||||
Remaining desync surfaces deliberately left for the rest of FW4: exit
|
||||
SEALS + cell slices still assemble from the old per-cell views (identical
|
||||
dat portal polygons; only the visible SET can differ), and interior-root
|
||||
look-in seeding still reads the old outside view.
|
||||
|
||||
- Entities gate per view via `Render::viewconeCheck` at their cell's walk
|
||||
turn; dynamics-last and alpha interleave per the walk's stages
|
||||
(`RetailAlphaQueue` becomes the stream's alpha stage or is absorbed —
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue