passages: tunnels own their floor - flat-bottomed tube + solid shell (L109, v217) - pending visual review
Owner design: flat world-horizontal floor (0.50 m corner blend), 0.75 m solid shell written only where the host field is air (interiors union first and beat every shell), 5 m cubic mouth ramps. Removed route support restoration, deferred support, support columns, mouth-support restoration and their capsule checks (-5,129 / +1,641 lines). Near-ready @W12: FI 1.39 -> 0.86, TN 1.29 -> 0.90, VS 0.85 -> 0.74, SW 0.70 -> 0.76 s (more shell/skirt surface). All walk audits pass; Clang/GCC W1/W8/W12 deterministic; fast tier PASS; Linux UE builds; 6 UE arrival traces pass. OPEN ISSUE: open-air shell (e.g. passage 0-1, 1037-1489 m route span) shows a regular stepped banding pattern - not merged into assembler/world until fixed/approved. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
This commit is contained in:
1 parent
95cf8de107
commit
5ea01988c4
104 files changed
+7880
-5022
No files matched your search
@@ -24,37 +24,6 @@ struct FStandaloneParitySample
|
||||
int32 StrateIndex = INDEX_NONE;
|
||||
};
|
||||
|
||||
struct FStandalonePassageVoidCrossing
|
||||
{
|
||||
std::size_t passageIndex=0;
|
||||
std::size_t firstSegment=0;
|
||||
std::size_t lastSegment=0;
|
||||
std::uint64_t unsupportedSamples=0;
|
||||
double unsupportedLengthMetres=0.0;
|
||||
std::array<double,4> startPoint{};
|
||||
std::array<double,4> endPoint{};
|
||||
bool needsColumn=false;
|
||||
bool connectedAtStart=false;
|
||||
bool connectedAtEnd=false;
|
||||
std::int64_t centerXSubvoxels=0;
|
||||
std::int64_t centerYSubvoxels=0;
|
||||
std::int64_t topZSubvoxels=0;
|
||||
std::int64_t bottomZSubvoxels=0;
|
||||
std::int64_t minimumRadiusSubvoxels=0;
|
||||
std::int64_t nominalRadiusSubvoxels=0;
|
||||
std::int64_t maximumRadiusSubvoxels=0;
|
||||
double naturalSurfaceReliefMetres=0.0;
|
||||
double maximumRouteOffsetMetres=0.0;
|
||||
double maximumBoreRadiusMetres=0.0;
|
||||
bool needsRootTaper=false;
|
||||
};
|
||||
|
||||
struct FStandalonePassageVoidCrossingCache
|
||||
{
|
||||
std::mutex mutex;
|
||||
std::unordered_map<std::string,std::vector<FStandalonePassageVoidCrossing>> byLayout;
|
||||
};
|
||||
|
||||
struct FStandaloneOwnerWorld
|
||||
{
|
||||
std::unique_ptr<UVoxelSettings> Settings;
|
||||
@@ -81,8 +50,6 @@ struct FStandaloneOwnerWorld
|
||||
std::uint32_t StrateLayoutChunkSizeMicrometres = 8000000;
|
||||
std::int64_t StrateLayoutChunkWidthSubvoxels = 8192;
|
||||
bool bHasUnrealResolvedCorePlan = false;
|
||||
std::shared_ptr<FStandalonePassageVoidCrossingCache> PassageVoidCrossingCache =
|
||||
std::make_shared<FStandalonePassageVoidCrossingCache>();
|
||||
};
|
||||
|
||||
namespace StandaloneOwnerLoader
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -1580,37 +1580,17 @@ private:
|
||||
static_cast<unsigned long long>(D.islandSharedCacheConflictReplacements),
|
||||
static_cast<double>(D.islandSharedCacheLockWaitNanoseconds)/1000.0);
|
||||
if(D.passageComposerProfiled)
|
||||
std::printf("[PassageComposerTile] key=(%d,%d,%d,lod%d) worker_ms=%.3f samples=%llu native_field_calls=%llu features=%llu route_candidates=%llu mouth_candidates=%llu boundary_band_queries=%llu queries=%llu passage_iterations=%llu tile_bound_checks=%llu tile_bound_rejects=%llu tile_bound_skipped_iterations=%llu upper_mouth_checks=%llu column_candidates=%llu column_distance_calls=%llu negative_bounds=%llu negative_rejects=%llu positive_bounds=%llu positive_rejects=%llu carve_segment_visits=%llu smooth_carve_joins=%llu support_segment_visits=%llu smooth_support_joins=%llu support_capsule_checks=%llu later_bore_checks=%llu other_capsule_checks=%llu mouth_support_calls=%llu mouth_route_segment_checks=%llu relief_field_calls=%llu smoothstep_evaluations=%llu sweep_segments=%llu sweep_pairs=%llu sweep_outside_pairs=%llu sweep_min_updates=%llu sweep_base_samples=%llu sweep_detail_samples=%llu sweep_grid_samples=%llu sweep_no_influence_samples=%llu sweep_lookups=%llu sweep_cache_hits=%llu sweep_base_hits=%llu sweep_outside_hits=%llu sweep_missing=%llu\n",
|
||||
std::printf("[PassageComposerTile] key=(%d,%d,%d,lod%d) worker_ms=%.3f samples=%llu native_field_calls=%llu features=%llu route_candidates=%llu boundary_band_queries=%llu queries=%llu passage_iterations=%llu carve_segment_visits=%llu relief_field_calls=%llu sweep_segments=%llu sweep_pairs=%llu sweep_outside_pairs=%llu sweep_min_updates=%llu sweep_base_samples=%llu sweep_detail_samples=%llu sweep_grid_samples=%llu sweep_no_influence_samples=%llu sweep_lookups=%llu sweep_cache_hits=%llu sweep_base_hits=%llu sweep_outside_hits=%llu sweep_missing=%llu\n",
|
||||
Event.Key.Coord.X,Event.Key.Coord.Y,Event.Key.Coord.Z,Event.Key.Level,
|
||||
Event.WorkerMilliseconds,static_cast<unsigned long long>(Event.DensitySamples),
|
||||
static_cast<unsigned long long>(D.fieldCalls),
|
||||
static_cast<unsigned long long>(D.passageTileFeatureCount),
|
||||
static_cast<unsigned long long>(D.passageTileRouteSegmentCandidates),
|
||||
static_cast<unsigned long long>(D.passageTileMouthSegmentCandidates),
|
||||
static_cast<unsigned long long>(D.resolvedBoundaryBandQueries),
|
||||
static_cast<unsigned long long>(D.passageComposerQueries),
|
||||
static_cast<unsigned long long>(D.passageIterations),
|
||||
static_cast<unsigned long long>(D.passageTileBoundChecks),
|
||||
static_cast<unsigned long long>(D.passageTileBoundRejects),
|
||||
static_cast<unsigned long long>(D.passageTileBoundSkippedIterations),
|
||||
static_cast<unsigned long long>(D.passageUpperMouthFilterChecks),
|
||||
static_cast<unsigned long long>(D.passageColumnCandidates),
|
||||
static_cast<unsigned long long>(D.passageColumnDistanceCalls),
|
||||
static_cast<unsigned long long>(D.passageNegativeBoundChecks),
|
||||
static_cast<unsigned long long>(D.passageNegativeBoundRejects),
|
||||
static_cast<unsigned long long>(D.passagePositiveBoundChecks),
|
||||
static_cast<unsigned long long>(D.passagePositiveBoundRejects),
|
||||
static_cast<unsigned long long>(D.passageCarveSegmentVisits),
|
||||
static_cast<unsigned long long>(D.passageSmoothCarveJoins),
|
||||
static_cast<unsigned long long>(D.passageSupportSegmentVisits),
|
||||
static_cast<unsigned long long>(D.passageSmoothSupportJoins),
|
||||
static_cast<unsigned long long>(D.passageSupportCapsuleChecks),
|
||||
static_cast<unsigned long long>(D.passageLaterBoreChecks),
|
||||
static_cast<unsigned long long>(D.passageOtherCapsuleChecks),
|
||||
static_cast<unsigned long long>(D.passageMouthSupportCalls),
|
||||
static_cast<unsigned long long>(D.passageMouthRouteSegmentChecks),
|
||||
static_cast<unsigned long long>(D.passageReliefFieldCalls),
|
||||
static_cast<unsigned long long>(D.passageSmoothstepEvaluations),
|
||||
static_cast<unsigned long long>(D.passageSweepRouteSegmentCandidates),
|
||||
static_cast<unsigned long long>(D.passageSweepSegmentSamplePairs),
|
||||
static_cast<unsigned long long>(D.passageSweepOutsideInfluencePairs),
|
||||
|
||||
Reference in new issue
Block a user