Initialize particle trail history frame numbers

Fixes #88712

All particle trail sections were activated at once on the first cycle, instead
of being spread out over the trail's lifetime.

(cherry picked from commit 9b2d77a238)
This commit is contained in:
Per Melin 2024-03-01 13:17:25 +01:00 committed by Rémi Verschelde
parent 147b99ae2a
commit 7204d66b28
No known key found for this signature in database
GPG Key ID: C3336907360768E1
1 changed files with 5 additions and 0 deletions

View File

@ -1439,6 +1439,11 @@ void ParticlesStorage::update_particles() {
if (uint32_t(history_size) != particles->frame_history.size()) {
particles->frame_history.resize(history_size);
memset(particles->frame_history.ptr(), 0, sizeof(ParticlesFrameParams) * history_size);
// Set the frame number so that we are able to distinguish an uninitialized
// frame from the true frame number zero. See issue #88712 for details.
for (int i = 0; i < history_size; i++) {
particles->frame_history[i].frame = UINT32_MAX;
}
}
if (uint32_t(trail_steps) != particles->trail_params.size() || particles->frame_params_buffer.is_null()) {