wip(assembler): round L13 -- one density field for every route (multiplayer determinism fix)
Region pages fell back to the legacy GetDensityAt evaluator while the base shape used the Core manifest field, so a tile's density (and sometimes mesh) depended on streaming history. Pages are now bound to their world's base FStandaloneShapeWorld evaluator before publication; density, lattice, detail, classification and solid queries all delegate to it. WorldAssemblyEvaluatorVersion 5 -> 6. Route-parity audit: fails on L12 (5/5); after the fix 0 mismatches over 87 tile pairs (base/page, base/native-only, edited, two histories), 56 exact-query pairs, 2.3M page samples, 4 seeds/recipes. Page-tile proof audit: 1,274 blocks, 0 violations. The spawn and island worlds are unchanged; crossing output changed as intended. Reviewer interleaved spawn: +1.1% (noise). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CSFYgsdW8ejZSyiMf4qRSX
This commit is contained in:
1 parent
32b8670833
commit
976d012a86
10 files changed
+767
-11
No files matched your search
@@ -122,7 +122,8 @@ FVoxelMeshData UVoxelMarchingCubesMesher::GenerateMesh(FIntVector OriginVoxels,
|
||||
const FVoxelSharedDensityGrid* InSharedDensityGrid,
|
||||
std::vector<float>* OutDebugDensitySamples,
|
||||
FVoxelMarchingCubesStageTimings* OutStageTimings,
|
||||
FVoxelUniformBlockProofAuditStats* OutBlockProofAudit)
|
||||
FVoxelUniformBlockProofAuditStats* OutBlockProofAudit,
|
||||
bool bForceFullDensityCapture)
|
||||
{
|
||||
TRACE_CPUPROFILER_EVENT_SCOPE(VoxelForge_MesherGenerateMesh);
|
||||
const uint64 StageMesherStartCycles=OutStageTimings?FPlatformTime::Cycles64():0;
|
||||
@@ -865,7 +866,8 @@ FVoxelMeshData UVoxelMarchingCubesMesher::GenerateMesh(FIntVector OriginVoxels,
|
||||
// allocating the density grid; no samples are skipped for a tile that can contain
|
||||
// geometry, and the final geometry remains byte-identical because this path emits none.
|
||||
if (bHaveUniformBlock && bAllRelevantBlocksSame && bAllRelevantBlocksUniform
|
||||
&& !(Step == 2 && OutDebugDensitySamples != nullptr))
|
||||
&& !(Step == 2 && OutDebugDensitySamples != nullptr)
|
||||
&& !(bForceFullDensityCapture && OutDebugDensitySamples != nullptr))
|
||||
{
|
||||
return MeshData;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user