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
@@ -72,6 +72,15 @@ enum class EVoxelAnchorPolicy : uint8
|
||||
FullVisual UMETA(DisplayName = "Full Visual") // rendered too (a second local viewpoint)
|
||||
};
|
||||
|
||||
/** Versioned Core mesh recipe. Hybrid requires tagged sharp plan features and affects only Core meshes.
|
||||
* Recette de maillage Core versionnee. Hybrid exige des fonctions planaires balisees et ne touche qu'au Core. */
|
||||
UENUM(BlueprintType)
|
||||
enum class EVoxelForgeCoreMesherRecipe : uint8
|
||||
{
|
||||
MarchingCubesV1 UMETA(DisplayName = "Marching Cubes V1"),
|
||||
WorldAssemblerHybridV1 UMETA(DisplayName = "World Assembler Hybrid V1")
|
||||
};
|
||||
|
||||
/** A non-player streaming center: keep a small box of level-0 tiles loaded around Actor so it has
|
||||
* collision wherever it is. Plain internal struct (weak ptr is GC-safe without reflection). */
|
||||
struct FVoxelStreamingAnchor
|
||||
@@ -269,6 +278,11 @@ public:
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Voxel World|Core", meta = (DisplayName = "Use VoxelForge Core"))
|
||||
bool bUseVoxelForgeCore = false;
|
||||
|
||||
/** Core-only, versioned mesher selection. Default keeps the existing Core hashes and geometry.
|
||||
* Recette reservee au Core; la valeur par defaut conserve les hachages et la geometrie actuels. */
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Voxel World|Core", meta = (DisplayName = "Core Mesher Recipe"))
|
||||
EVoxelForgeCoreMesherRecipe CoreMesherRecipe = EVoxelForgeCoreMesherRecipe::MarchingCubesV1;
|
||||
|
||||
/** Core-only clipmap radius, in level-0 Core tiles. Does not read Settings->ClipRadius. */
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Voxel World|Core", meta = (ClampMin = "1", ClampMax = "64"))
|
||||
int32 CoreClipRadius = 3;
|
||||
@@ -330,6 +344,7 @@ public:
|
||||
uint64 CollisionSubmittedCycles = 0;
|
||||
uint64 CollisionSubmittedFrame = 0;
|
||||
bool bBodyUpdatedEventSeen = false;
|
||||
bool bPooledComponent = false;
|
||||
uint64 BodyUpdatedEventCycles = 0;
|
||||
uint64 BodyUpdatedEventFrame = 0;
|
||||
bool bPhysicsStateReadyAtBodyUpdate = false;
|
||||
|
||||
Reference in new issue
Block a user