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

+16 -5
View File
@@ -426,7 +426,8 @@ public:
* @param Position - World-space center of the carve brush
* @param Radius - Brush radius in legacy Runtime voxels (12.5 cm); Core converts it to
* 25 cm voxels to preserve the physical brush size.
* @param Strength - How aggressively to carve (default 10, higher = deeper)
* @param Strength - Legacy Runtime density offset; Core scales it to 25 cm units.
* Offset de densite Runtime historique; Core le convertit en unite de 25 cm.
*/
UFUNCTION(BlueprintCallable, Category = "Voxel World|Modification")
void CarveAtPosition(FVector Position, float Radius = 6.0f, float Strength = 10.0f);
@@ -438,7 +439,8 @@ public:
* @param Position - World-space center of the fill brush
* @param Radius - Brush radius in legacy Runtime voxels (12.5 cm); Core converts it to
* 25 cm voxels to preserve the physical brush size.
* @param Strength - How aggressively to fill (default 10, higher = more solid)
* @param Strength - Legacy Runtime density offset; Core scales it to 25 cm units.
* Offset de densite Runtime historique; Core le convertit en unite de 25 cm.
*/
UFUNCTION(BlueprintCallable, Category = "Voxel World|Modification")
void FillAtPosition(FVector Position, float Radius = 6.0f, float Strength = 10.0f);
@@ -446,7 +448,8 @@ public:
/**
* Box brush carve/fill. Position is world-space (Unreal units); ExtentVoxels is the
* box half-size in legacy Runtime voxels (12.5 cm). Core converts it to 25 cm voxels.
* Strength magnitude controls aggressiveness (sign forced).
* Strength is a legacy-voxel density offset; Core scales it to 25 cm units and forces its sign.
* La force est un decalage de densite historique; Core la convertit en unite de 25 cm et impose le signe.
*/
UFUNCTION(BlueprintCallable, Category = "Voxel World|Modification")
void CarveBox(FVector Position, FVector ExtentVoxels, float Strength = 12.0f);
@@ -455,8 +458,9 @@ public:
void FillBox(FVector Position, FVector ExtentVoxels, float Strength = 12.0f);
/**
* Capsule brush carve/fill between two world-space points (Unreal units), with a tube radius
* in legacy Runtime voxels (12.5 cm). Core converts it to 25 cm voxels.
* Capsule brush carve/fill between two world-space points (Unreal units). Tube radius and density offset
* use legacy Runtime voxels (12.5 cm); Core converts both to 25 cm units.
* Creuse/remplit une capsule entre deux points monde. Rayon et decalage Runtime historique sont convertis en unite Core de 25 cm.
* Great for boring tunnels or laying solid pillars/walls.
*/
UFUNCTION(BlueprintCallable, Category = "Voxel World|Modification")
@@ -572,6 +576,11 @@ public:
UFUNCTION(BlueprintPure, Category = "Voxel World|Strate")
int32 GetStrateAtPosition(FVector WorldPosition) const;
// Convert actor-local physical Z to/from UVoxelStrateManager's legacy 12.5 cm space.
// Convertit Z local physique vers/depuis l'espace historique de UVoxelStrateManager.
float ToStrateManagerLocalZ(float LocalZCm) const;
float FromStrateManagerLocalZ(float ManagerLocalZCm) const;
/**
* Probe the biome field at a world location (e.g. a mouse line-trace hit). Returns the dominant +
* neighbour biome, the climate fields, the border blend weight, and the dominant biome's decoration
@@ -626,6 +635,8 @@ public:
private:
friend class FScopedGenerationPause;
friend class UVoxelContentManager;
friend class UVoxelAtmosphereManager;
#if WITH_EDITOR
/** Last editor research-field selection applied to loaded tiles. */