wip(assembler): M2 round 3 -- opt-in hybrid sharp mesher (WorldAssemblerHybridV1) in the Unreal Core route
Default MarchingCubesV1 unchanged (W1/W8/W16 = round-6 hashes). Hybrid DC only in LOD0 interior cells with tagged features; tile-border cells and LOD1+ stay MC. BuildHost: fixtures repeat exactly, cooked collision bounds = render bounds, same-LOD borders pass, sampled SurfaceWorld cliff bit-identical to MC. Open: tagged tiles cost 5.7-6.7x MC; corner-top field contact error 20 cm; 5 MC doorway LOD cases. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MmSoF64BbRFmk9C3p1VsBJ
This commit is contained in:
1 parent
a3b7d2015e
commit
22a6b30494
21 files changed
+3009
-23
No files matched your search
@@ -482,3 +482,47 @@ fix, the actor test passed. The final rerun after gating the manifest hash on th
|
||||
passed in 9m20s with 3,880,357,888 bytes peak sampled private memory (3.61 GiB). No `0xC0000142`
|
||||
retry or new UECC folder occurred. The owner's project was not opened or built and no `.uasset` was
|
||||
edited.
|
||||
|
||||
### M2 round-3 hybrid mesher integration (2026-10-10)
|
||||
|
||||
`WorldAssemblerHybridV1` is an opt-in Core recipe; `MarchingCubesV1` and
|
||||
`bUseVoxelForgeCore=false` remain the defaults. Tagged type-2 plan boxes use sharp hybrid cells only
|
||||
at LOD0 interior cells. Tile-border cells and LOD1+ use MC, with the existing skirt retained. The
|
||||
full BuildHost actor commandlet passed its W1/W8/W16 matrix at the round-6 Core hashes,
|
||||
anchor/edit/travel checks, height agreement, switch-off gate, Blueprint carve/fill, native
|
||||
SurfaceWorld route and five cooked collision contacts. It ran in null-RHI BuildHost for 11 minutes
|
||||
and logged zero engine errors. A PowerShell status-format cast initially made the outer wrapper
|
||||
return 1 after the engine had passed; the script was fixed, focused fixture and cliff checks
|
||||
returned 0, and the corrected full wrapper rerun also returned 0 in 11m06s at a sampled 3.73 GiB
|
||||
peak.
|
||||
|
||||
The BuildHost fixture plan has nine stable type-2 feature boxes for the corner, doorway, riser and
|
||||
ledge, plus the existing type-4 SurfaceWorld cliff. Five contacts hit the Pawn channel and the same
|
||||
RMC component; direct component traces agreed with world traces, and cooked Chaos body bounds
|
||||
matched render bounds. Field contact error ranged from 0 to 20.332 cm. The separate sampled native
|
||||
cliff check passed bit-identity: 10,231 vertices, 10,360 triangles, mesh hash
|
||||
`0xfc7bd7a3cf997992`. Same-LOD independent borders passed with 63 segments; the 125-phase LOD0/LOD1
|
||||
doorway probe had no contours over 50 cm and a 22.844 cm worst mismatch.
|
||||
|
||||
That LOD probe is not a topology proof. The standalone full transition suite still records five MC
|
||||
doorway failures out of 625, with skirts serving as the current repair. At the 25 cm Core grid, the
|
||||
17.68 cm corner bevel is 0.35 of a LOD1 sample and may round off or pop at the threshold. Null RHI
|
||||
cannot show or measure this visually; owner review remains necessary.
|
||||
|
||||
Plugin fixture timings show a 5.66–6.70× hybrid/MC meshing cost on the tagged sharp fixtures; the
|
||||
organic cave is 0.992× MC. See the M2 round-3 tables and complete failed-run ledger in
|
||||
[`WorldAssemblerM2/REPORT.md`](Research/WorldAssemblerM2/REPORT.md). BuildHost artifacts include
|
||||
the owner-previewable [`surface_hybrid_fixture_plan.json`](Research/WorldAssemblerM2/round3/surface_hybrid_fixture_plan.json).
|
||||
|
||||
Owner preview: duplicate the settings asset, import the fixture manifest through
|
||||
`SourceWorldAssemblyManifestJson` / `ImportWorldAssemblyManifestJson`, enable Core on the test
|
||||
`AVoxelWorld`, and select `World Assembler Hybrid V1`. Review the corner and doorway while crossing
|
||||
the LOD distance, then compare riser and ledge contacts. The owner builds the plugin and judges the
|
||||
live view. No owner `.uasset`, project build, or editor session was used here.
|
||||
|
||||
New source files are the mirrored private headers
|
||||
`Source/VoxelForge/Private/VoxelHybridSharpMesher.h` and
|
||||
`Standalone/Source/VoxelForge/Private/VoxelHybridSharpMesher.h`; no new `.cpp` or generated header
|
||||
was added. Likely compile touchpoints are `VoxelWorld.h/.cpp`, `VoxelTypes.h`,
|
||||
`VoxelMarchingCubesMesher.h/.cpp`, both hybrid mesher headers, the Core public header and
|
||||
`VoxelForgeCore.cpp`, `VoxelForgeExploreCommandlet.cpp`, and `VoxelForgeEditor.Build.cs`.
|
||||
Reference in new issue
Block a user