probe(render): [dyn-route] DynamicLast admission trace + rain PASS note
The owner''s through-wall remote-player report (standing in 0xF4180101,
a player parented at 0xF4180112 - the south hall, geometrically
unseeable through the cathedral - renders through opaque walls; from
0xF4180104 he is correctly hidden). The DynamicLast admission chain
has three gates (indoor / old-apparatus look-in exclusion /
SphereVisibleInCell against old-assembly cell planes), and gate 3
carries a known trapdoor: a zero-plane scissor-fallback slice is
PASS-ALL. This trace logs, per entity ON CHANGE: parent cell, look-in
exclusion hits, the viewcone verdict, and the cell''s lifted-plane
shape, so one 0104<->0101 crossing with the remote player in place
pins the admitting gate. Rain gate 75eab42f is owner-PASSED.
Hermetic 6,762/0.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
75eab42f3c
commit
4686a1ac74
3 changed files with 53 additions and 2 deletions
|
|
@ -1143,8 +1143,10 @@ internal sealed class RenderScenePViewFrameBuilder
|
|||
private int _dynamicCount;
|
||||
|
||||
// ACDREAM_PROBE_WALK_ROOT companion (throwaway): rate limiter for the
|
||||
// [walk-dyn] outside-stage classification dump.
|
||||
// [walk-dyn] outside-stage classification dump, plus the [dyn-route]
|
||||
// per-entity on-change admission cache.
|
||||
private uint _probeDynFrameCounter;
|
||||
private readonly Dictionary<uint, string> _probeDynRouteStates = new();
|
||||
private int _dirtyCount;
|
||||
private RenderSceneGeneration _indexGeneration;
|
||||
private ulong _indexRevision;
|
||||
|
|
@ -1400,7 +1402,20 @@ internal sealed class RenderScenePViewFrameBuilder
|
|||
// would draw it after the boundary alpha drain and overpaint
|
||||
// nearer flames (the Holtburg candle-behind-door class).
|
||||
if (indoor && _lookInCellScratch.Contains(parentCellId!.Value))
|
||||
{
|
||||
if (AcDream.Core.Rendering.RenderingDiagnostics.ProbeWalkRootEnabled)
|
||||
{
|
||||
string state = $"parent={parentCellId.Value:x8} lookin-excluded";
|
||||
if (!_probeDynRouteStates.TryGetValue(record.Source.LocalEntityId, out string? prev)
|
||||
|| prev != state)
|
||||
{
|
||||
_probeDynRouteStates[record.Source.LocalEntityId] = state;
|
||||
Console.WriteLine(
|
||||
$"[dyn-route] id={record.Source.LocalEntityId:x} {state}");
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
Sphere(in record, out Vector3 center, out float radius);
|
||||
bool visible = indoor
|
||||
|
|
@ -1411,6 +1426,25 @@ internal sealed class RenderScenePViewFrameBuilder
|
|||
: input.Viewcone.SphereVisibleOutside(
|
||||
in center,
|
||||
radius);
|
||||
// ACDREAM_PROBE_WALK_ROOT companion (throwaway): the DynamicLast
|
||||
// admission trace for the through-wall remote-player report —
|
||||
// per entity, ON CHANGE: parent cell, look-in exclusion, the
|
||||
// viewcone verdict, and the cell's lifted-plane shape ("0" = a
|
||||
// pass-all zero-plane slice — the scissor-fallback trapdoor).
|
||||
if (AcDream.Core.Rendering.RenderingDiagnostics.ProbeWalkRootEnabled
|
||||
&& indoor)
|
||||
{
|
||||
string state =
|
||||
$"parent={parentCellId!.Value:x8} vis={(visible ? 1 : 0)} "
|
||||
+ $"cone={input.Viewcone.ProbeDescribeCell(parentCellId.Value)}";
|
||||
if (!_probeDynRouteStates.TryGetValue(record.Source.LocalEntityId, out string? prev)
|
||||
|| prev != state)
|
||||
{
|
||||
_probeDynRouteStates[record.Source.LocalEntityId] = state;
|
||||
Console.WriteLine(
|
||||
$"[dyn-route] id={record.Source.LocalEntityId:x} {state} route=DynamicLast");
|
||||
}
|
||||
}
|
||||
if (!visible)
|
||||
continue;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue