1
0
Fork 0

Physics Interpolation - fix client interpolation pump

Client interpolation pump is moved AFTER the physics tick, after physics objects have been moved.
This is necessary because the `current` transform is also updated during the pump.
This commit is contained in:
lawnjelly 2025-02-10 10:40:23 +00:00
parent 36d90c73a8
commit 3286b7fb37
1 changed files with 7 additions and 7 deletions

View File

@ -506,13 +506,6 @@ void SceneTree::iteration_prepare() {
// are flushed before pumping the interpolation prev and currents.
flush_transform_notifications();
RenderingServer::get_singleton()->tick();
#ifndef _3D_DISABLED
// Any objects performing client physics interpolation
// should be given an opportunity to keep their previous transforms
// up to date before each new physics tick.
_client_physics_interpolation.physics_process();
#endif
}
}
@ -552,6 +545,13 @@ void SceneTree::iteration_end() {
// to be flushed to the RenderingServer before finishing a physics tick.
if (_physics_interpolation_enabled) {
flush_transform_notifications();
#ifndef _3D_DISABLED
// Any objects performing client physics interpolation
// should be given an opportunity to keep their previous transforms
// up to date.
_client_physics_interpolation.physics_process();
#endif
}
}