Root cause (pinned by the new deterministic exit-walk harness, NOT guessed):
under an interior render root, the exit-portal SEAL stamps the door fan at
TRUE depth after the gated full depth clear, and T1's "ALL dynamics last"
pass then drew the outdoor-classified player depth-tested - every fragment
beyond the door plane z-failed against the seal across the whole aperture.
Harness measured the full window: from the moment the sphere center crosses
the plane until the eye follows (~2.6 m of camera lag, ~2.2 s at walk speed)
the player is invisible; while straddling, the beyond-plane body half clips
at the plane. The handoff's three cone-level candidates are all EXONERATED:
the cone walk passes every step; (eye, ViewerCellId) come from the same
SweepEye call with camera-update-before-visibility-read in the same frame;
the side-test window is sub-epsilon under healthy resolution.
Retail oracle (grep-named-first): PView::DrawCells 0x005a4840 runs
LScape::draw FIRST (pc:432719), then the gated depth clear (pc:432731-32)
and the exit-portal seals (pc:432785-86); outdoor cell objects draw inside
the landscape stage (DrawBlock 0x005a17c0 -> DrawSortCell pc:430124), and
an object draws once per overlapped shadow cell (pc:430056-64) - the
straddling body composes from both stages, neither half clips.
Fix: RetailPViewRenderer assigns dynamics to the OUTSIDE stage under an
interior root when outdoor-classified OR sphere-straddling an exit-portal
plane of their flood-visible cell (DynamicDrawsInOutsideStage - pure, the
harness drives it as the ordering contract); they ride the landscape slice
draw (pre-clear, seal-protected) with the same per-slice cone test as
outdoor statics. Indoor dynamics keep the last pass (retail loop C);
straddlers draw in both (retail shadow dual-draw). Outdoor roots keep
all-dynamics-last - the BR-2 punch-after-dynamics lesson (
|
||
|---|---|---|
| .. | ||
| Wb | ||
| CameraCollisionIndoorTests.cs | ||
| CameraCollisionUpdateViewerTests.cs | ||
| CameraControllerTests.cs | ||
| CellViewDedupTests.cs | ||
| CellVisibilityFromRootTests.cs | ||
| CellVisibilityPortalPolygonsTests.cs | ||
| ClipFrameAssemblerTests.cs | ||
| ClipFrameLayoutTests.cs | ||
| ClipPlaneSetTests.cs | ||
| CornerFloodReplayTests.cs | ||
| EntityClipTests.cs | ||
| HouseExitWalkReplayTests.cs | ||
| IndoorDrawPlanTests.cs | ||
| InteriorEntityPartitionTests.cs | ||
| Issue113DrawingBspFilterTests.cs | ||
| Issue113MeetingHallFloodTests.cs | ||
| OutdoorCellNodeTests.cs | ||
| PhysicsCameraCollisionProbeTests.cs | ||
| PortalProjectionTests.cs | ||
| PortalViewTests.cs | ||
| PortalVisibilityBuilderTests.cs | ||
| PortalVisibilityRobustnessTests.cs | ||
| RetailChaseCameraTests.cs | ||
| ScreenPolygonClipTests.cs | ||