fix #132 (outdoor sibling): outdoor attached scene emitters move to the post-frame pass; sharpen the #131 probe

User gate on 20d1730: the candle is FIXED indoors ("now the candle
light is visible when I'm in the house when it is in front of the
opening") and the OUTDOOR sibling surfaced exactly as AP-34 recorded
("when I go out it is not showing unless I turn so the angle doesn't
put it in front of the opening"): under an OUTDOOR root the merged
building interiors draw AFTER the landscape stage (DrawEnvCellShells),
so a slice-drawn flame is overpainted by a punched aperture's interior
behind it.

Fix: outdoor roots SKIP the late-slice Scene-particle draw; attached
outdoor-static scene emitters draw in the POST-FRAME pass alongside the
T3 unattached pass, where depth is complete and flames composite
correctly against interiors. The owner-id set carries over from the
late slice (single full-screen slice outdoors); cell-pass and
dynamics-pass emitters keep their own passes (their owners are never in
the outdoor-static id set - no double-draw). Interior roots keep the
late-slice draw (their stage ends with the clear + seal discipline).
AP-34 row updated (the outdoor residual is now covered; the remaining
residual is translucent MESH batches within stage draw calls).

Portal swirl (#131): the user's "same results" on 20d1730 KILLS the
look-in-erasure hypothesis for the portal - the mesh now draws after
the look-ins and is still missing indoors. No further speculative fix;
the [outstage] probe now prints each outside-stage dynamic's
SourceGfxObjOrSetupId (portals have distinctive setups) and
[outstage-pt] lists up to 12 distinct UNMATCHED attached emitter owner
ids - the next capture identifies whether the portal entity reaches the
through-door draw at all, and where its emitters point.

Suites: App 259+1skip / Core 1439+2skip / UI 420 / Net 294 green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-06-12 19:26:04 +02:00
parent 20d17304d7
commit 87afbc0a42
4 changed files with 60 additions and 17 deletions

View file

@ -4670,8 +4670,23 @@ Background-dependence explained exactly.
**Fix:** the landscape stage's two-phase split (see #131 FIX 2): all
scene particles moved to the LATE phase, after the look-ins.
**Gate:** the candle at the original spot — flame stays visible when
the through-opening is behind it.
**Gate 1 result (user):** indoors FIXED ("now the candle light is
visible when I'm in the house when it is in front of the opening") —
but the OUTDOOR sibling surfaced ("when I go out it is not showing
unless I turn so the angle doesn't put it in front of the opening"):
under an OUTDOOR root the merged building interiors draw AFTER the
landscape stage, so a slice-drawn flame is overpainted by the punched
aperture's interior — the residual AP-34 had already recorded.
**Fix 2 (outdoor):** outdoor roots skip the slice Scene pass; attached
outdoor-static scene emitters draw in the POST-FRAME pass alongside the
T3 unattached pass (depth complete there — flames composite correctly
against interiors). The owner-id filter carries over; cell-pass and
dynamics-pass emitters keep their own passes (owners never in the
outdoor-static set → no double-draw).
**Gate:** both sides — indoors with the opening behind the candle, and
outdoors at the angle that previously erased it.
---