wip(assembler): M1 round 6 -- owner walk fixes: 25 cm geometry scale, one height datum, carve/fill sign, faster relief meshing

Owner saw content floating above native terrain, spiky triangles, reversed carve/fill and late relief.
Causes: shared mesher placed Core tiles on a 12.5 cm grid; content/atmosphere asked strate ranges in
12.5 cm voxels; Core edits add density where the legacy diff subtracts. Horizon LOD8 bridge edge
5.657 -> 2.265 cells. Relief mesh p95 60.8 -> 42.0 ms (LOD0). New BuildHost checks for scale, height,
blueprint carve/fill and per-kind streaming lag.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MmSoF64BbRFmk9C3p1VsBJ
This commit is contained in:
Fr0zkaandClaude Opus 5.5 committed 2026-10-09 20:39:24 +02:00
1 parent f67b519e75
commit 61633cb492
18 files changed
+1708 -142

No files matched your search

+14 -2
View File
@@ -847,8 +847,9 @@ settings or assets.
When enabled, `AVoxelWorld` uses Core desired keys and priorities, compiles/generates through Unreal
tasks, carries `Epoch` through the existing MPSC result queues, and uploads converted payloads through
RealtimeMesh and its collision cook. Core voxel coordinates use 25 cm per voxel; Core tile keys are
retained, and Core mesh vertices are already in centimetres. High-level legacy brush dimensions are
scaled from 12.5 cm voxel units to Core units so their physical size stays the same. Edits use
retained, and Core mesh vertices are already in centimetres. High-level legacy brush dimensions and
density strength are scaled from 12.5 cm voxel units to Core units so their physical effect stays the
same. Edits use
sequenced `applyEditTransaction` calls after in-flight Core work drains, then regenerate Core's
affected keys under a new epoch. Existing streaming anchors participate; the headless move proof
covers `CollisionOnly` policy.
@@ -882,6 +883,17 @@ content hash. The collision gate defers out-of-desired-set Core support tiles un
compilation admits them, so collision work cannot publish a competing tile before the native
surface region snapshot. Existing cave Core strates still use the no-manifest snapshot path.
Round 6 corrects the Core 25 cm ↔ legacy 12.5 cm boundary in `VoxelWorld.cpp`,
`VoxelContentManager.cpp`, and `VoxelAtmosphereManager.cpp`. `VoxelMarchingCubesMesher` now exposes
`GeometryVoxelSizeCm` so Core geometry is emitted at 25 cm while legacy stays at its 12.5 cm
default. The Core bridge adapts carve/fill signs and scales Blueprint brush radius, extent, falloff
and strength. `Standalone/Core/src/FarShellsInternal.h` subdivides LOD7+ far-stratum repairs, and
`Standalone/Core/src/VoxelForgeCore.cpp` enables a guarded heightfield Z-band path for unhashed
native tiles, combining ground/cap heights with intersecting bounded 3D feature extents; overlapping
edits keep the full mesh path. The BuildHost commandlet adds height-anchor agreement, brush
sign/size, geometry and per-tile-kind pawn-lag checks; see round 6 in
[`Standalone/ASSEMBLER_M1_REPORT.md`](Standalone/ASSEMBLER_M1_REPORT.md).
[OwnerWorldLoader.h](Standalone/Source/OwnerWorldLoader.h) now reads SlabParams, MazeParams,
VerticalShaftParams, and FloatingIslandParams. The shape-world evaluator still lacks their native
terrain fields: FlatPlain, CrystalChamber, Maze, VerticalShafts, FloatingIslands, and water