fix: stagger particle lifecycle respawn
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled

This commit is contained in:
OpenAI Codex
2026-09-05 10:36:07 +08:00
parent c7acefcb21
commit 7929052c58
5 changed files with 46 additions and 12 deletions

View File

@@ -53,7 +53,7 @@ constexpr float EarthCircumferenceMeters = 40075016.68557849f;
// moves about 100 m (roughly 0.65 px at z9), while a 30 m/s sample remains
// below a four-pixel segment at that zoom.
constexpr float VisualSimulationSecondsPerRealSecond = 1200.0f;
constexpr float ParticleLifecycleSeconds = 3600.0f;
constexpr float ParticleLifecycleSeconds = 14400.0f;
constexpr float TrailFadeReferenceFramesPerSecond = 60.0f;
std::atomic_uint64_t nextGpuGeneration{0};
@@ -463,9 +463,12 @@ public:
if (resources->formalDisplay && now - resources->lastLifecycleLog >= std::chrono::seconds(1)) {
resources->lastLifecycleLog = now;
Log::Info(Event::Render,
"ParticleLifecycle: activeSlots=" + std::to_string(resources->particleCount) +
" respawn=GPU_HASH_ON_INVALID_OR_AGE_EXPIRED lifecycleSeconds=" +
std::to_string(ParticleLifecycleSeconds) +
"ParticleLifecycle: configuredSlots=" + std::to_string(resources->particleCount) +
" initialAge=HASH_STAGGERED maxAge=HASH_JITTERED_0.75_1.25 "
"lifecycleBaseSimulationSeconds=" + std::to_string(ParticleLifecycleSeconds) +
" lifecycleBaseRealSeconds=" +
std::to_string(ParticleLifecycleSeconds / VisualSimulationSecondsPerRealSecond) +
" respawn=GPU_HASH_ON_INVALID_OR_AGE_EXPIRED"
" fieldId=" + resources->field.fieldID + " simulationFrame=" +
std::to_string(resources->committedFrame) + " readback=disabled");
}