capture run decoded: #126 spawn-through-roof + #127 bistable flood admissions + #128 session-sticky invisible staircase filed; [viewer] probe gains fwd=
The users tower capture (tower-viewer-capture.log, 551 [viewer] lines) decodes into three distinct issues: - #126 (HIGH, #107/#111 family): an OUTDOOR spawn claim on the tower roof (z=127.2) is grounded to TERRAIN z=112 - the player is warped through the roof into the tower interior, outdoor-classified -> the transparent-interior spawn. The snap outdoor branch must ground to the nearest WALKABLE surface (roofs/GfxObj floors), not terrain. - #127 (HIGH, the flap mechanism): per-building flood admissions are BISTABLE per frame under the outdoor root - flood size oscillates +-1-3 cells at millimetre eye deltas (45<->52 standing on the roof, including a byte-static eye flip). Every oscillation = building interiors dropping in/out -> the roof/edge flap; running past a building = #123. Interior side shows the same family (flood 1<->3, outPolys 0<->1 during the climb). - #128: the staircase was invisible the WHOLE climb under a HEALTHY interior root (0xAAB30107 FullScreen views - the cone cannot cull a root-cell static), while the SAME build rendered it perfectly in a different session (diag spawn + screenshot, meshMissing=0). Session-sticky nondeterminism; the barrel tracks this bug (a partial subset of staircase parts), NOT dat content (user axiom: no barrel in retail). Needs a diag-instrumented repro of the users session shape. The [viewer] probe now logs the camera forward (fwd=) so the next capture can be replayed headlessly - Build clip results depend on the view-projection, not just the eye. Suites: App 238+1skip, Core 1422+2skip, UI 420, Net 294. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
a974504e6e
commit
cd12d3dbbc
2 changed files with 79 additions and 1 deletions
|
|
@ -4334,6 +4334,80 @@ meshMissing counters.
|
|||
|
||||
---
|
||||
|
||||
## #126 — Outdoor spawn claim on a building roof is grounded THROUGH the roof to terrain (transparent-interior spawn)
|
||||
|
||||
**Status:** OPEN — HIGH (every login/logout on any walkable roof)
|
||||
**Filed:** 2026-06-11 (tower capture run, `tower-viewer-capture.log` line 1)
|
||||
**Component:** physics — login snap (the #107/#111 family)
|
||||
|
||||
**Evidence:** the user logged out standing ON TOP of the AAB3 tower
|
||||
(z=127.2). The next login: `[snap] claim=0xAAB30023 pos=(297.160,
|
||||
-129.182,127.200) … terrainZ=112.000 indoor=False -> targetZ=112.000
|
||||
targetCell=0xAAB30023`. The snap's OUTDOOR branch always grounds to
|
||||
TERRAIN Z — it warped the player from the roof down INTO the tower's
|
||||
interior volume at ground level, still outdoor-classified → the
|
||||
transparent-interior spawn the user reported ("spawned in the tower and
|
||||
it was transparent"), self-healing only after walking out and back in.
|
||||
**Fix shape:** an outdoor claim must ground to the nearest WALKABLE
|
||||
surface at/below the claim Z (building roofs and GfxObj floors via the
|
||||
physics walkable query — the #111 `WalkableFloorZNearest` machinery),
|
||||
not raw terrain. Note the snap line even shows a candidate it rejected
|
||||
(`bestCell=0xAAB30101 bestZ=124.3`).
|
||||
|
||||
---
|
||||
|
||||
## #127 — Per-building flood admissions are BISTABLE per frame under the outdoor root (the building-flap mechanism)
|
||||
|
||||
**Status:** OPEN — HIGH (the live mechanism behind the tower roof/edge
|
||||
flap; almost certainly #123 and related flap reports)
|
||||
**Filed:** 2026-06-11 (tower capture run)
|
||||
**Component:** render — BuildFromExterior seed admission / per-building
|
||||
flood stability
|
||||
|
||||
**Evidence (`tower-viewer-capture.log`, 551 [viewer] lines in one short
|
||||
run):** under the outdoor root near the tower, the merged per-building
|
||||
flood size oscillates ±1–3 cells nearly EVERY frame at millimetre eye
|
||||
deltas — standing on the tower roof: flood 45↔46↔47↔48 per line with
|
||||
the eye moving mm at a time (and one stretch flipping at a byte-static
|
||||
eye). Every oscillation = some building's interior cells (including
|
||||
this tower's roof-lip cells) dropping in/out of the visible set → the
|
||||
roof/edges flap; a building whose cells flap while running past =
|
||||
#123. The INTERIOR side shows the same family: inside the tower the
|
||||
flood flickers 1↔2–3 with outPolys 0↔1 during the climb.
|
||||
**Next:** the [viewer] probe now logs the camera forward (fwd=) — one
|
||||
more capture run gives exact (eye, fwd) pairs to replay in a
|
||||
deterministic harness; then pin WHICH admission gate is bistable
|
||||
(seed side test / in-plane reject / clip-empty / the frustum pre-gate
|
||||
on PortalBounds) and stabilize it retail-shaped.
|
||||
|
||||
---
|
||||
|
||||
## #128 — Tower staircase invisible with a HEALTHY interior root (session-sticky; renders fine in other sessions)
|
||||
|
||||
**Status:** OPEN — investigation; needs a diag-instrumented repro
|
||||
**Filed:** 2026-06-11 (tower capture run + user report)
|
||||
**Component:** render — entity draw path (suspect: session-order state)
|
||||
|
||||
**Evidence:** during the user's climb the root was the tower's main
|
||||
cell 0xAAB30107 (FullScreen views — the cone CANNOT cull a 0107
|
||||
static), yet the 43-part staircase was invisible the whole way up; in a
|
||||
different session same build (the in-tower diag spawn,
|
||||
`tower-wbdiag4.log` + screenshot) the same staircase rendered perfectly
|
||||
with meshMissing=0. Session-sticky, nondeterministic across sessions:
|
||||
suspect state accumulated by session order — Tier-1 classification
|
||||
cache shapes (#53 family — though the known veto paths read correct),
|
||||
LRU eviction + the no-re-prepare-on-re-registration gap, or the #125
|
||||
sticky-drop cousin. The user's "barrel" sighting tracks this bug (a
|
||||
partial subset of staircase parts rendering ≈ a barrel-shaped pile) —
|
||||
NOT dat content (the barrel is NOT in retail — user axiom). **Next:**
|
||||
reproduce under ACDREAM_WB_DIAG=1 with the user's session shape (spawn
|
||||
mis-grounded inside via #126, walk out/in, climb) and read
|
||||
meshMissing + [indoor-lookup]; if meshMissing>0 persists at standstill
|
||||
the parts are unloaded (eviction/registration); if 0, instrument the
|
||||
staircase entity's per-frame draw decision.
|
||||
|
||||
---
|
||||
|
||||
# Recently closed
|
||||
|
||||
## #113 — Phantom staircase: REOPENED 2026-06-11, folded into the HOLISTIC BUILDING-RENDER PORT
|
||||
|
|
|
|||
|
|
@ -9692,8 +9692,12 @@ public sealed class GameWindow : IDisposable
|
|||
if (sig != _lastViewerProbeSig)
|
||||
{
|
||||
_lastViewerProbeSig = sig;
|
||||
// fwd = camera forward (3rd view column negated) — required to
|
||||
// REPLAY a captured frame headlessly: Build's clip results
|
||||
// depend on the view-projection, not just the eye.
|
||||
var v = _cameraController?.Active.View ?? System.Numerics.Matrix4x4.Identity;
|
||||
Console.WriteLine(System.FormattableString.Invariant(
|
||||
$"[viewer] {sig} eye=({camPos.X:F3},{camPos.Y:F3},{camPos.Z:F3}) viewerCell=0x{viewerCellId:X8}"));
|
||||
$"[viewer] {sig} eye=({camPos.X:F3},{camPos.Y:F3},{camPos.Z:F3}) fwd=({-v.M13:F4},{-v.M23:F4},{-v.M33:F4}) viewerCell=0x{viewerCellId:X8}"));
|
||||
}
|
||||
}
|
||||
if (AcDream.Core.Rendering.RenderingDiagnostics.ProbeVisibilityEnabled)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue