wip(tunnels): room wins over tunnels -- no shelf, smooth mouths; stopped before final checks
Stopped by the owner (he wanted his PC back to play) after most acceptance was in. Measured with the owner's assets: the shelf across rooms came from the tunnel core reasserting solid below its floor inside room volumes, plus the landing-floor post. Room ownership now suppresses the tunnel bottom in the generic tunnel SDF, the core evaluator and both native fallbacks: tunnel-attributed solid inside rooms 469 -> 0, and a matched-camera re-render shows the slab gone. Trimmed mouth endpoints now take their height from the room's own vertical zero crossing (join offsets -2.08/+0.40 -> -1.13/-0.71 voxels). Mouth surface periodic amplitude 1.49 cm floor / 0 cm wall (degree-six trend removal; raw local-median audit 6.19 cm kept). Canonical walk Connected, 42,870 fit / 17,413 walk-reachable (was 41,184 / 13,879); export 141,054 triangles, geometry hash 86A99075. Launches use an isolated engine saved/config directory so the owner's editor settings are not rewritten. NOT DONE: the -voxel.CrtFma3=0 export comparison, TilePostReachProof / DetSinCos / strate crossing, the perf pair vs the experimental tip, the EditorSettings.ini diff. Unvalidated in game. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MmSoF64BbRFmk9C3p1VsBJ
This commit is contained in:
1 parent
01cb9d47f1
commit
d01af4606d
5 files changed
+821
-51
No files matched your search
@@ -3826,7 +3826,8 @@ namespace
|
||||
const FVector& Position = S.LastWorldPosition;
|
||||
S.LastTunnelCoreWorldEvaluation = VoxelCaveMorphology::EvaluateTunnelCoreWorld(
|
||||
Position.X, Position.Y, Position.Z, GetCache(), nullptr,
|
||||
VoxelGenLOD::ShouldUseSpatialIndex(false));
|
||||
VoxelGenLOD::ShouldUseSpatialIndex(false),
|
||||
&S.LastWarpedPosition);
|
||||
S.LastTunnelCoreEvaluationPosition = Position;
|
||||
S.bLastTunnelCoreWorldEvaluationValid = true;
|
||||
}
|
||||
@@ -4274,16 +4275,18 @@ namespace
|
||||
{
|
||||
S.LastTunnelCoreWorldEvaluation = VoxelCaveMorphology::EvaluateTunnelCoreWorld(
|
||||
WorldX, WorldY, WorldZ, GetCache(), nullptr,
|
||||
bUseSpatialIndex);
|
||||
bUseSpatialIndex, &S.LastWarpedPosition);
|
||||
S.LastTunnelCoreEvaluationPosition = S.LastWorldPosition;
|
||||
S.bLastTunnelCoreWorldEvaluationValid = true;
|
||||
|
||||
// Keep the hand-off for block evaluation compatibility. Both floor flags are
|
||||
// permanently false; the authored floor is part of the tunnel shape itself.
|
||||
// Keep the room-owned bottom hand-off for block evaluation compatibility. The
|
||||
// authored floor remains part of the tunnel shape, but it must not win inside a
|
||||
// room's own volume.
|
||||
InOut.bHasTunnelCoreWorldEvaluation = true;
|
||||
InOut.TunnelCoreWorldSDF = S.LastTunnelCoreWorldEvaluation.SDF;
|
||||
InOut.bTunnelCoreSupportFloor = false;
|
||||
InOut.bTunnelCoreRoomFloor = false;
|
||||
InOut.bTunnelCoreRoomFloor =
|
||||
S.LastTunnelCoreWorldEvaluation.bRoomFloor;
|
||||
InOut.bHasTunnelCoreSweptFloor =
|
||||
S.LastTunnelCoreWorldEvaluation.bHasSweptFloor;
|
||||
InOut.TunnelCoreSweptFloorZ =
|
||||
|
||||
Reference in new issue
Block a user