wip(unreal): round 4 -- strate-type coverage matrix; SurfaceWorld via exact legacy bridge
Luna, integration round 4 (owner requirement: Core must know every strate type). Coverage, Core vs legacy owner field (one probe per type, 686,000 LOD0 samples): TunnelNetwork approximate (2.17% signs differ); FlatPlain / CrystalChamber native slab fields missing (generic cave, 1.28%); Maze missing (13.3%); VerticalShafts missing (no shaft surface); FloatingIslands missing (95.8%); Underwater approximate + no water. SurfaceWorld: exact density (0 sign changes, LOD0-3 hashes match) through the copied legacy evaluator -- but at legacy cost: full view 23.1 s vs legacy 23.9 s (Core caves without surface 0.785 s). Passages: SlopedTunnel/VerticalShaft/Spiral pass walkability; Cascading (365/1,495) and Worm (109/1,490) FAIL. Transitions approximate (1.2-1.3%). BuildHost UBT + actor validation pass (SurfaceWorld layout: 2,553 visual keys, 448 LOD transitions, biome query). Small owner/Core capture pairs in core_strate_coverage/. 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
75210e56f3
commit
d696463c68
40 files changed
+373
-11
No files matched your search
@@ -134,6 +134,52 @@ namespace StandaloneOwnerLoader
|
||||
#undef VF_SURFACE_FIELD
|
||||
}
|
||||
|
||||
inline void ReadSlabParams(const VFJson::Value& J, FSlabGenerationParams& P)
|
||||
{
|
||||
#define VF_SLAB_FIELD(Name) ReadField(J, #Name, P.Name);
|
||||
VF_SLAB_FIELD(FloorRelativeHeight) VF_SLAB_FIELD(CeilingRelativeHeight)
|
||||
VF_SLAB_FIELD(FloorRoughness) VF_SLAB_FIELD(FloorRoughnessFrequency)
|
||||
VF_SLAB_FIELD(CeilingRoughness) VF_SLAB_FIELD(CeilingRoughnessFrequency)
|
||||
VF_SLAB_FIELD(ColumnDensity) VF_SLAB_FIELD(ColumnMinRadius)
|
||||
VF_SLAB_FIELD(ColumnMaxRadius) VF_SLAB_FIELD(ColumnSpacing)
|
||||
VF_SLAB_FIELD(BoundarySealThickness) VF_SLAB_FIELD(BaseDensity)
|
||||
#undef VF_SLAB_FIELD
|
||||
}
|
||||
|
||||
inline void ReadMazeParams(const VFJson::Value& J, FMazeGenerationParams& P)
|
||||
{
|
||||
#define VF_MAZE_FIELD(Name) ReadField(J, #Name, P.Name);
|
||||
VF_MAZE_FIELD(CellSize) VF_MAZE_FIELD(CorridorRadius)
|
||||
VF_MAZE_FIELD(BranchProbability) VF_MAZE_FIELD(Verticality)
|
||||
VF_MAZE_FIELD(SurfaceRoughness) VF_MAZE_FIELD(BoundarySealThickness)
|
||||
VF_MAZE_FIELD(BaseDensity)
|
||||
#undef VF_MAZE_FIELD
|
||||
}
|
||||
|
||||
inline void ReadVerticalShaftParams(const VFJson::Value& J, FVerticalShaftParams& P)
|
||||
{
|
||||
#define VF_SHAFT_FIELD(Name) ReadField(J, #Name, P.Name);
|
||||
VF_SHAFT_FIELD(ShaftSpacing) VF_SHAFT_FIELD(ShaftDensity)
|
||||
VF_SHAFT_FIELD(ShaftMinRadius) VF_SHAFT_FIELD(ShaftMaxRadius)
|
||||
VF_SHAFT_FIELD(CrossConnectChance) VF_SHAFT_FIELD(ConnectorRadius)
|
||||
VF_SHAFT_FIELD(LedgeSpacing) VF_SHAFT_FIELD(LedgeDepth)
|
||||
VF_SHAFT_FIELD(SurfaceRoughness) VF_SHAFT_FIELD(BoundarySealThickness)
|
||||
VF_SHAFT_FIELD(BaseDensity)
|
||||
#undef VF_SHAFT_FIELD
|
||||
}
|
||||
|
||||
inline void ReadFloatingIslandParams(const VFJson::Value& J, FFloatingIslandParams& P)
|
||||
{
|
||||
#define VF_ISLAND_FIELD(Name) ReadField(J, #Name, P.Name);
|
||||
VF_ISLAND_FIELD(IslandSpacing) VF_ISLAND_FIELD(IslandDensity)
|
||||
VF_ISLAND_FIELD(IslandMinRadius) VF_ISLAND_FIELD(IslandMaxRadius)
|
||||
VF_ISLAND_FIELD(ThicknessRatio) VF_ISLAND_FIELD(VerticalJitter)
|
||||
VF_ISLAND_FIELD(TopFlatten) VF_ISLAND_FIELD(SurfaceRoughness)
|
||||
VF_ISLAND_FIELD(SDFBlendRadius) VF_ISLAND_FIELD(BoundarySealThickness)
|
||||
VF_ISLAND_FIELD(BaseDensity)
|
||||
#undef VF_ISLAND_FIELD
|
||||
}
|
||||
|
||||
inline void ReadBiomeMap(const VFJson::Value& J, FBiomeMapParams& P)
|
||||
{
|
||||
ReadField(J,"CellSize",P.CellSize); ReadField(J,"WarpStrength",P.WarpStrength);
|
||||
@@ -194,6 +240,10 @@ namespace StandaloneOwnerLoader
|
||||
ReadField(J,"GeneratorType",Definition->GeneratorType);
|
||||
ReadField(J,"bEnableWorms",Definition->bEnableWorms);
|
||||
ReadGenerationParams(Slot.Get("generation_params"),Definition->GenerationParams);
|
||||
ReadSlabParams(J.Get("SlabParams"),Definition->SlabParams);
|
||||
ReadMazeParams(J.Get("MazeParams"),Definition->MazeParams);
|
||||
ReadVerticalShaftParams(J.Get("VerticalShaftParams"),Definition->VerticalShaftParams);
|
||||
ReadFloatingIslandParams(J.Get("FloatingIslandParams"),Definition->FloatingIslandParams);
|
||||
ReadDisturbances(Slot.Get("disturbances"),Definition->Disturbances);
|
||||
ReadPassageConfig(Slot.Get("passage_config"),Definition->PassageConfig);
|
||||
ReadSurfaceParams(J.Get("SurfaceParams"),Definition->SurfaceParams);
|
||||
|
||||
Reference in new issue
Block a user