feat: improved slerp amount argument for camera controller
This commit is contained in:
parent
30d8182f4d
commit
a9bc57a175
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue