fix #131 (root cause 4, structurally forced): look-in cells draw their DYNAMICS - the town portal is a server object in the hall's porch cell
The headless replay of the captured indoor frame proved the look-in flood ADMITS the porch 0x017A (Diagnostic_LookInFlood_AdmitsHallPorchFromCottage: 14 cells). So the portal (a SERVER object - the teleport proves it - with ParentCellId 0xA9B4017A) routes to partition.Dynamics and draws NOWHERE under an interior root: dynamics-last viewcone-culls it (the main cone has no look-in cells) and post-seal it would z-fail beyond the root's door plane (the #118 lesson). This is AP-33's own recorded deferral - 'look-in DYNAMICS are not drawn' - the deferred case was the most-stared-at object in town. Outdoors the merge path puts the porch in the main cone -> drawn -> 'appears when I walk out'. Fix: DrawBuildingLookIns pass 2 draws look-in-cell dynamics with the statics (whole, AP-33 over-include) and their emitters ride the same DrawCellParticles call. No double-draw: dynamics-last keeps culling them; DrawDynamicsParticles only sees its cone survivors. #124 CLOSED by user gate same session. AP-33 row updated. Suites: App 261+1skip / Core 1439+2skip / UI 420 / Net 294 green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
47f32cd45c
commit
d208002bf8
4 changed files with 89 additions and 27 deletions
|
|
@ -4304,7 +4304,7 @@ of which draw list the building's shell left.
|
|||
|
||||
## #124 — Looking out through an opening: far buildings with openings show missing/transparent back walls
|
||||
|
||||
**Status:** FIX SHIPPED — awaiting user visual gate
|
||||
**Status:** CLOSED (user-gated 2026-06-12 evening: "124, that one is solved")
|
||||
**Severity:** MEDIUM
|
||||
**Filed:** 2026-06-11 (re-gate; pre-existing — "still have that issue";
|
||||
user 2026-06-12: "especially visible when I look out through a door
|
||||
|
|
@ -4637,22 +4637,27 @@ terrain, outdoor static meshes (the look-in punches need their depth, the
|
|||
dynamics' meshes + ALL attached scene particles + weather + the
|
||||
unattached pass. (This FIXED #132 indoors but not the portal.)
|
||||
|
||||
**ROOT CAUSE (fix 3 — the real one, pinned by the teleport capture):**
|
||||
walking into the portal flipped `pCell` to **0xA9B4017A — the hall's
|
||||
porch EnvCell**. The portal's swirl emitter is owned by a STATIC inside
|
||||
ANOTHER BUILDING'S CELL, not an outdoor entity at all. Outdoors the
|
||||
hall's cells merge into the main frame and the per-cell object pass
|
||||
runs `DrawCellParticles` → swirl visible. Under an interior root the
|
||||
#124 look-in sub-pass drew the far cells' shells + statics but had NO
|
||||
cell-particles call — retail's nested DrawCells draws objects WITH
|
||||
their emitters (`DrawObjCellForDummies`). Every earlier suspect
|
||||
(unattached pass, owner-cone verdicts, alpha ordering) was real-but-
|
||||
adjacent; the cone math was correct all along (the 0xC0A9B462 flips
|
||||
were a porch torch, geometrically defensible).
|
||||
**ROOT CAUSE (fix 4 — structurally forced; fixes 1–3 were
|
||||
real-but-adjacent):** the teleport capture flipped `pCell` to
|
||||
**0xA9B4017A — the hall's porch EnvCell** (the portal is a SERVER
|
||||
object standing inside a look-in cell), and the headless replay of the
|
||||
captured indoor frame proved the look-in flood ADMITS 0x017A (14 cells
|
||||
incl. the porch — `Issue131SetupProbeTests.Diagnostic_LookInFlood_*`).
|
||||
The partition routes server objects to the dynamics-last pass, where
|
||||
(a) the viewcone has NO entries for look-in cells → culled, and (b)
|
||||
even un-culled they would z-fail post-seal beyond the root's door plane
|
||||
(the #118 lesson). This is exactly AP-33's recorded "look-in DYNAMICS
|
||||
are not drawn (deferred)" — the deferred case was the town portal.
|
||||
Outdoors the merge path puts the porch in the main cone → drawn →
|
||||
"appears when I walk out."
|
||||
|
||||
**Fix 3:** `DrawBuildingLookIns` pass 2 invokes `DrawCellParticles` per
|
||||
look-in cell with its static bucket (same callback as the main per-cell
|
||||
pass; no-clip slice when the cell has no slot).
|
||||
**Fix 4:** look-in-cell DYNAMICS draw inside `DrawBuildingLookIns`
|
||||
pass 2 (with the statics, whole — AP-33's over-include), and their
|
||||
emitters ride the same `DrawCellParticles` call (fix 3). Retail
|
||||
equivalent: the nested DrawCells draws the cell's objects
|
||||
(`DrawObjCellForDummies` pc:432878+). No double-draw: dynamics-last
|
||||
keeps culling them (cell absent from the main cone);
|
||||
DrawDynamicsParticles only sees dynamics-last cone survivors.
|
||||
|
||||
**Gate:** stand inside, look out the doorway at the town portal — the
|
||||
swirl renders through the door.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue