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

+30 -2
View File
@@ -1085,8 +1085,9 @@ tasks. Preserve §8.10 streaming, cancellation, epoch, collision-handoff, and pe
Core `Vec3d` positions and tile keys are in voxel space, one voxel is 25 cm, and Core mesh vertex
positions are already in centimetres. The bridge copies those mesh positions directly; player,
anchor, query, and edit inputs convert world centimetres using the Core scale. High-level brushes
that historically express dimensions in the plugin's 12.5 cm voxels scale radius, extent, and falloff
by 12.5/25 to preserve physical dimensions. The low-level `ApplyModification` path expects active
that historically express dimensions and density strength in the plugin's 12.5 cm voxels scale
radius, extent, falloff, and strength by 12.5/25 to preserve their physical effect. The low-level
`ApplyModification` path expects active
voxel units. Tile keys remain Core keys; only legacy material lookup maps Core tile spans into the
existing strate chunk layout.
@@ -1241,6 +1242,33 @@ in [`Standalone/ASSEMBLER_M1_REPORT.md`](Standalone/ASSEMBLER_M1_REPORT.md). Bui
replace the owner's project build or visual walk; cap lighting and the pointed native ridge peaks
remain owner review items.
### 8.21 Native SurfaceWorld height, brush and far-mesh corrections — integration round 6
Core tile keys and density coordinates use 25 cm voxels; the shared plugin mesher and
`UVoxelStrateManager` retain the legacy 12.5 cm scale. The Core bridge now maps Core-local height
queries to manager coordinates by 0.5 and maps returned bounds back by 2.0. Native content, water,
landmark, decoration and atmosphere anchors use the same manifest `Heightfield2D` ground/cap data
as the terrain. These conversions are gated by `bUseVoxelForgeCore`; the legacy branch keeps its
prior units and behavior. `UVoxelMarchingCubesMesher` has an explicit geometry voxel size: Core sets
25 cm, while legacy callers retain the 12.5 cm default. Material and biome lookups remain in their
legacy coordinate space.
Blueprint-callable carve/fill and high-level brush dimensions cross the scale boundary at 0.5,
including strength. Legacy diff modifications subtract their strength; Core edit evaluation adds its
density offset, so the adapter negates the legacy strength once. Public carve forces the airward sign
and fill forces the solidward sign. Low-level active-Core modification units remain Core units.
LOD8 far-stratum boundary repairs now sample crossings across a subdivided 4×4 coarse patch and only
emit a patch when each sample has a source-field crossing. This replaces the former broad single
quad. The BuildHost geometry audit keeps a two-cell maximum edge at LOD0/1 and allows four coarse
cells at LOD7+ to include shallow far-LOD transitions while still rejecting the prior 5.66-cell
horizon slab. It checks near-LOD normal direction and unit normals at every audited LOD. The mesher
emits reversed triangle order (`0,2,1`) for RealtimeMesh; the audit reports that expected order
separately from normal direction. The opt-in native heightfield path narrows vertical mesher rows to
sampled ground/cap heights plus the Z bounds of intersecting type-2/type-4 manifest features. Hash captures and tiles
with overlapping player edits or another strate keep the full mesh range. See round 6 of the M1
report for per-kind streaming results and validation limits.
## 9. Multiplayer model (listen-server first, dedicated-friendly)
> **Status: transport is DESIGN ONLY — nothing is networked in-tree yet** (no `Replicated`/`HasAuthority`/RPCs; a