wip(assembler): M3 round 3 -- separated islands + Unreal island route (owner build 18:46)

Islands read as separate (91.89% open sky at mid-height), underside cavity closed,
rim teeth were capture shading. Island manifest import + BuildHost proof passed on the
pre-cache tree; M1 SurfaceWorld and M2 V1/V2 gates passed.

Known open: final XY-column cache compiled in the owner build but is unverified;
island LOD0 p95 ~155 ms misses the 133 ms sprint deadline (legacy ~43 ms); the island
manifest only fits the BuildHost fixture layout (owner's world: Core init fails,
empty world) -> round 4 builds plans inside Unreal.

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-10 20:53:03 +02:00
1 parent 4afea7c802
commit 48fa028086
37 files changed
+3788 -107

No files matched your search

+11
View File
@@ -299,6 +299,17 @@ namespace StandaloneOwnerLoader
Error = "export voxel_size_cm does not match the standalone VOXEL_SIZE";
return false;
}
const VFJson::Value& OwnerVoxelSize = Root.Get("owner_voxel_size_cm");
const VFJson::Value& CoreVoxelSize = Root.Get("core_voxel_size_cm");
const VFJson::Value& OwnerToCoreScale = Root.Get("owner_to_core_length_scale");
if (!std::holds_alternative<std::nullptr_t>(OwnerVoxelSize.Data)
&& (!OwnerVoxelSize.IsNumber() || OwnerVoxelSize.Number() != 12.5
|| !CoreVoxelSize.IsNumber() || CoreVoxelSize.Number() != 25.0
|| !OwnerToCoreScale.IsNumber() || OwnerToCoreScale.Number() != 0.5))
{
Error = "owner-to-Core import scale must be 12.5 cm to 25 cm at a 0.5 length ratio";
return false;
}
Out.Seed = static_cast<int32>(Root.Get("seed").Integer());
Out.ClipRadius = static_cast<int32>(Root.Get("clip_radius").Integer(6));
Out.MaxClipLevel = static_cast<int32>(Root.Get("max_clip_level").Integer(8));
@@ -1741,7 +1741,8 @@ struct VOXELFORGE_API FFloatingIslandParams
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Islands", meta = (ClampMin = "0.0", ClampMax = "1.0"))
float IslandDensity = 0.5f;
// Island horizontal radius range (voxels): 12-24 m landmass diameters by default.
// Owner scale: 24–48 legacy voxels = 3–6 m radius at 12.5 cm/voxel (6–12 m diameter).
// Echelle proprietaire : 24–48 voxels legacy = rayon de 3–6 m a 12,5 cm/voxel (diametre 6–12 m).
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Islands", meta = (ClampMin = "2.0"))
float IslandMinRadius = 24.0f;
@@ -1765,7 +1766,8 @@ struct VOXELFORGE_API FFloatingIslandParams
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Islands", meta = (ClampMin = "0.0"))
float SurfaceRoughness = 3.0f;
// SmoothMin blend radius for merging overlapping islands (voxels): 1.5 m by default.
// SmoothMin blend radius: 6 legacy voxels = 0.75 m at the owner's 12.5 cm scale.
// Rayon de fusion SmoothMin : 6 voxels legacy = 0,75 m a l'echelle proprietaire de 12,5 cm.
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Islands", meta = (ClampMin = "0.0"))
float SDFBlendRadius = 6.0f;