From a9bc57a175c7dca4499868fb34f3db276d8e0801 Mon Sep 17 00:00:00 2001 From: Sara Date: Fri, 27 Sep 2024 16:07:58 +0200 Subject: [PATCH] feat: improved slerp amount argument for camera controller --- src/camera_controller.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/camera_controller.c b/src/camera_controller.c index cc772fc..23dac65 100644 --- a/src/camera_controller.c +++ b/src/camera_controller.c @@ -54,11 +54,10 @@ void CameraControllerTick(CameraController *self, double delta) { // ... and maximum frame step size float const step = self->rotation_speed * time_mul * delta; if(angle > 0.f) - target.rotation = QuaternionSlerp(current.rotation, target.rotation, fminf(fminf(step, angle) / angle, 0.99f)); + target.rotation = QuaternionSlerp(current.rotation, target.rotation, step); if(step > angle && self->time_rotated > delta) - self->time_rotated = fminf(self->time_rotated - 3.f * delta, self->max_speed_time * 0.5f); - else if(step > angle) - self->time_rotated = 0.f; - self->time_rotated += delta; + self->time_rotated -= delta; + else + self->time_rotated += delta; self->transform.tc->set_global_transform(self->transform.data, target); }