Move particles between ticks
CI / build (push) Successful in 53s

The particle library moves particles by their velocity times a tick's time at
each tick; between ticks, the adapter (ModelInstance::render's call to
ParticleSystem::render, redirected after checking it) draws them moved on by
their velocity times the time since, then moves each back by its own velocity:
ParticleSystem::render sorts them by distance, reordering them in memory, so
restoring saved positions in order scrambled them. Like ParticleSystem::render,
it only reads particles when there's a group (the library throws without one,
which crashed the client).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
dhkatzandClaude Opus 5.5 committed 2026-10-28 22:21:58 -07:00
1 parent 869eb19a1f
commit 9d0faecf4d
3 files changed
+103 -3

No files matched your search

+3 -1
View File
@@ -97,7 +97,9 @@ their animations a fraction of a frame on (ModelInstance::render's call to updat
between keyframes; animations held, looping or starting are posed as they are), and the camera where its easing (a
share 0.4 of the way to its target per step) has brought it, `1 - 0.6^fraction` of the way (CameraController's
getCameraTransform, in its exported vtable). Nothing is predicted: both are what the next step would give, at the
fraction. Still at 30 per second: particles, crossfades between animations, gaze.
fraction; and particles moved on by their velocity times the time since the step (ModelInstance::render's call to
ParticleSystem::render, redirected), then back by the same (the client sorts them by distance as it draws them, which
reorders them). Still at 30 per second: crossfades between animations, gaze.
Next: sharing pipelines between views (each view's scene compiles its own).