BR-1: RESOLVED as already-equivalent - premise falsified by pre-check, equivalence pinned, #113 attribution corrected
The plan's BR-1 ('implement the skipNoTexture draw-time surface gate')
died on its pre-check: acdream ALREADY suppresses every portal fill.
ReplicateProductionEmission_OnPortalFills replicates the exact emission
conditions of the production extractors on the hall/cottage fills:
pos=False neg=False for every one (Stippling.NoPos skips the positive
side at ObjectMeshManager.PrepareGfxObjMeshData:1046,
PrepareCellStructMeshData:1394, CellMesh.Build:44, GfxObjMesh.Build:71;
the fills have no negative surface). There is nothing to gate.
What ships instead: StipplingSurfaceEquivalenceTests - 2,607 polys across
13 building models + 13 environments, ZERO violations both directions:
NoPos <=> untextured-surface. Our build-time skip is proven equivalent to
retail's draw-time skipNoTexture rule (Ghidra 0x0059d4a4, default on
@0x00820e30) on this content. The pin fails loudly if future content
breaks the invariant - the cue to implement the draw-time gate then.
Corrections folded into the plan + comparison docs:
- The #113 phantom residual CANNOT be GfxObj fills (they never reach a
vertex buffer). Plausible true sites are cell-side: flood-admitted
cells drawn with the pass-all NoClipSlice when slot-less
(RetailPViewRenderer.cs:71), and/or cell statics drawn unclipped +
un-viewcone'd (object-lists-skip-portal-view-gate, confirmed).
BR-2 opens with the probe that pins which.
- The e46d3d9 user-gate observations (filter removed phantom/doors) were
confounded - the filter was a provable mesh no-op on shells AND doors.
- Ledger rows solid-surface-skip-missing + the acdream half of
portal-polys-baked-unconditional re-marked REFUTED-for-fills; the
retail mechanism descriptions and the un-consumed PortalIndex->
CBldPortal pairing (BR-4) stand.
Suites: Core 1398 green (1392 baseline + 6 new facts) + the 4 pre-existing
#99-era failures + 1 skip. No production code.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
eb689ae73f
commit
695eca2c1f
4 changed files with 265 additions and 32 deletions
|
|
@ -44,8 +44,10 @@ plus three mechanisms it doesn't use. The headline findings:
|
|||
quad on all 13 Holtburg-area building models — door fills, window fills,
|
||||
*and* the meeting-hall phantom stair-ramp — is `Base1Solid` (untextured).
|
||||
Retail draws none of them, ever. The doors players see are **door
|
||||
entities**; we draw the solid fills as colored geometry, which is why
|
||||
removing them read as "doors disappeared."
|
||||
entities**. *(Execution-day correction, §5: acdream's extractors already
|
||||
skip all of these via `NoPos` — proven equivalent to retail's rule by
|
||||
`StipplingSurfaceEquivalenceTests`. The phantom residual is cell-side,
|
||||
not these fills; see the §5 banner.)*
|
||||
|
||||
3. **Retail never geometrically clips cell or shell geometry. Pixel exactness
|
||||
at apertures is a DEPTH discipline.** Production cell draws are whole
|
||||
|
|
@ -254,7 +256,7 @@ area files.
|
|||
| Sev | Verdict | Divergence |
|
||||
|---|---|---|
|
||||
| CRIT | adjusted | `portal-poly-conditional-pass-missing` — no per-frame z-punch/z-seal/ConstructView pass on portal polys |
|
||||
| HIGH | adjusted | `solid-surface-skip-missing` — untextured (solid) batches drawn on building/cell meshes retail skips |
|
||||
| HIGH | **REFUTED for fills** (BR-1 pre-check, §5 banner) | `solid-surface-skip-missing` — acdream's NoPos build-time skip already covers them, proven equivalent |
|
||||
| MED | confirmed | `degrade-lod-scoped-to-humanoids` — retail degrades every non-player part per frame |
|
||||
| MED | adjusted | `no-per-view-entity-pass` — no per-portal-view re-cull of objects |
|
||||
| MED | confirmed | `stippling-semantics-divergence` — WB's NoPos/NoNeg side-drop vs retail batch flag + sides_type |
|
||||
|
|
@ -263,7 +265,7 @@ area files.
|
|||
**Area 2 — Building shells** (`wf1-building-shells.md`)
|
||||
| Sev | Verdict | Divergence |
|
||||
|---|---|---|
|
||||
| CRIT | unverified | `portal-polys-baked-unconditional` — fills baked + drawn; PortalIndex→CBldPortal pairing never consumed |
|
||||
| CRIT | **acdream half REFUTED** (BR-1 pre-check); retail half + missing PortalIndex→CBldPortal pairing stand | `portal-polys-baked-unconditional` — fills are NOT drawn (NoPos skip); the un-consumed pairing remains real (BR-4) |
|
||||
| CRIT | unverified | `no-per-slot-building-draw` — building never draws per view slot; floods not shell-draw-driven |
|
||||
| HIGH | adjusted | `flood-gate-shape` — 48 m seed + 0.01 ε + eye-inside rescue vs retail's no-distance chain (analogues otherwise faithful) |
|
||||
| HIGH | unverified | `aperture-depth-machinery` — far-Z punch missing; particles scissor-only |
|
||||
|
|
@ -363,13 +365,35 @@ area files.
|
|||
|
||||
## 5. Mysteries resolved this session
|
||||
|
||||
> **⚠ EXECUTION-DAY CORRECTION (2026-06-11, BR-1 pre-check).** The claim that
|
||||
> acdream *draws* the solid portal fills is **FALSE** — all four extraction
|
||||
> paths skip `Stippling.NoPos` positive sides
|
||||
> (`ObjectMeshManager.PrepareGfxObjMeshData:1046`,
|
||||
> `PrepareCellStructMeshData:1394`, `CellMesh.Build:44`,
|
||||
> `GfxObjMesh.Build:71`), and the fills have no negative surface
|
||||
> (`ReplicateProductionEmission_OnPortalFills`: pos=False/neg=False for every
|
||||
> fill). The equivalence pin (`StipplingSurfaceEquivalenceTests`, 2,607
|
||||
> polys, 0 violations) proves our build-time skip ⇔ retail's draw-time
|
||||
> `skipNoTexture` on this content. Consequences: the ledger rows
|
||||
> `solid-surface-skip-missing` (Area 1) and the acdream half of
|
||||
> `portal-polys-baked-unconditional` (Area 2) are **REFUTED for the fills**
|
||||
> (the retail-side mechanism descriptions stand); the e46d3d9 user-gate
|
||||
> observations were confounded (the filter was a provable mesh no-op on
|
||||
> shells and doors); and the **#113 phantom residual is cell-side** —
|
||||
> flood-admitted cells drawn with the pass-all `NoClipSlice` when slot-less
|
||||
> (`RetailPViewRenderer.cs:71`) and/or unclipped un-viewcone'd cell statics
|
||||
> (`object-lists-skip-portal-view-gate`, confirmed). BR-2 opens with the
|
||||
> probe that pins which. The mapping agents missed the `:1046` skip — score
|
||||
> one for "verify what call sites actually pass."
|
||||
|
||||
1. **Door-vanish (charter §4.1)** — SOLVED, dat-proven (`e223325` +
|
||||
`DumpPortalFillSurfaceTypes`): the e46d3d9 filter walked only
|
||||
`node.Polygons`, never `node.Portals` (`PortalRef`); every dropped poly was
|
||||
a portal fill; all fills are `Base1Solid`; retail skips them via
|
||||
`skipNoTexture`; visible doors are entities. **No static filter can be
|
||||
correct** — but the correct rule is a *surface-type draw gate*, which is
|
||||
nearly as simple.
|
||||
correct** — and per the execution-day correction above, no filter was
|
||||
*needed*: the fills were never drawn, and the gate's "doors vanished"
|
||||
observation was confounded.
|
||||
2. **#114's real shape (charter §4.2)** — retail does not crop indoor
|
||||
geometry; it punches/seals depth at apertures and draws far→near. The
|
||||
"admission-quality vs draw-quality regions" framing dissolves: regions
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue