docs(render): FLAP settled by live-retail measurement — full retail port DECIDED (Option A) + exhaustive handoff
Attached cdb to the live 2013 retail client at the Holtburg doorway + read the decomp. The indoor flap is a STRUCTURAL divergence, settled by measurement (not inference): - Retail has ONE render path: DrawInside(viewer_cell) every frame. NO inside/outside branch (RenderNormalMode's outside branch is dead code; is_player_outside only gates sky/lighting). "Entering a building" is not a render event — only the camera sweep resolving a different viewer_cell. Same path before/after threshold -> no seam. - Retail's eye JITTERS ~36um at rest yet membership is stable -> robustness is STRUCTURAL: many small per-building floods (~7/frame, ~2 cells each, via terrain BSP -> DrawPortal -> ConstructView(CBldPortal)), not one giant knife-edge flood. - Our 3 divergences: (D1) invented inside/outside branch (GameWindow.cs:7498, clipRoot = viewerRoot ?? _outdoorNode :7396); (D2) synthetic _outdoorNode; (D3) one unified flood. DECISION (user-approved): Option A — rip out branch + outdoor node, root always at the real viewer_cell, one DrawInside, per-building rendering. Phased, conformance-tested, visual-gated. REFUTED by measurement (do not retry): bounded-propagation/churn (maxPop=1, 0/63k reciprocals empty); byte-stable eye (retail's jitters ~36um — rest-snapcd974b2failed + regressed, reverted9b1857a). Lands the canonical exhaustive handoff for a FRESH session (docs/research/2026-06-08-full-retail-render-port-OPTION-A-handoff.md), the CLAUDE.md READ-THIS-FIRST banner, and reusable cdb apparatus. No project code changed; working tree at the known-good baseline. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
9b1857ac52
commit
fe87e9794a
6 changed files with 629 additions and 0 deletions
22
CLAUDE.md
22
CLAUDE.md
|
|
@ -763,6 +763,28 @@ H1 (PVS grounding) or H2 (`PortalSide` side-test) — both evidence-disproven.
|
|||
**Currently working toward: M1.5 — Indoor world feels right** (resumed
|
||||
from 2026-05-20 baseline after Phase O ship).
|
||||
|
||||
**2026-06-08 (evening) — FLAP ROOT CAUSE SETTLED BY LIVE-RETAIL MEASUREMENT; full retail render
|
||||
port DECIDED (Option A). READ THIS FIRST — it supersedes EVERY flap banner below, including the
|
||||
bounded-propagation/churn direction (REFUTED by measurement: `maxPop=1`, 0 churn).** We attached cdb
|
||||
to the **live 2013 retail client** at the Holtburg doorway + read the decomp. Findings (measured, not
|
||||
inferred): **retail has ONE render path — `DrawInside(viewer_cell)` every frame, NO inside/outside
|
||||
branch** (`RenderNormalMode`'s outside branch is dead code; `is_player_outside` only gates
|
||||
sky/lighting). "Entering a building" is NOT a render event — only the camera sweep resolving a
|
||||
different `viewer_cell` (outdoor `CLandCell` → indoor `CEnvCell`); same path before/after the
|
||||
threshold → no seam → no flap. **Retail's eye JITTERS ~36 µm at rest** (so a byte-stable eye is the
|
||||
WRONG target — my render-position rest-snap fix `cd974b2` failed + regressed, reverted `9b1857a`);
|
||||
retail's membership is stable anyway because it does **many small per-building floods** (~7/frame,
|
||||
~2 cells each, via the terrain BSP → `DrawPortal` → `ConstructView(CBldPortal)`), not one giant
|
||||
unified flood. **Our 3 divergences:** (D1) we invented an inside/outside branch
|
||||
(`GameWindow.cs:7498`, `clipRoot = viewerRoot ?? _outdoorNode` :7396); (D2) a synthetic `_outdoorNode`;
|
||||
(D3) one unified flood. **Decision (user-approved): Option A — rip out the branch + outdoor node, root
|
||||
always at the real `viewer_cell`, one `DrawInside`, per-building rendering.** DO NOT retry: byte-stable
|
||||
eye, bounded-propagation/churn, physics rest-jitter, viewer-cell dead-zone, two-pipe split (all
|
||||
evidence-disproven). **CANONICAL PICKUP (exhaustive — read top-to-bottom before any code):**
|
||||
[`docs/research/2026-06-08-full-retail-render-port-OPTION-A-handoff.md`](docs/research/2026-06-08-full-retail-render-port-OPTION-A-handoff.md).
|
||||
Close its §8 open traces (viewer_sought_position write site; ClipPortals/AddViewToPortals; how
|
||||
`DrawInside` handles an outdoor `CLandCell` root) BEFORE writing the implementation plan.
|
||||
|
||||
**2026-06-05 (PM) — Indoor FLICKER + bluish VOID ROOT CAUSE CONFIRMED (decomp + live cdb); 3-part retail-faithful fix PLANNED (READ THIS FIRST).**
|
||||
The "core inside render / cellar floor drops" framing below is **SUPERSEDED** by this session's diagnosis.
|
||||
R1's per-cell `DrawInside` is already built and the cottage/cellar **seals** (user visual-verified). The
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue