Luna::Simd::quatslerp_f4
float4 quatslerp_f4(float4 a, float4 b, f32 t)
Interpolates between two unit quaternions a
and b
using spherical linear interpolation, and stores the result in dst
.
OMEGA := ACOS(DOT4(a, b))
WA := SIN((1.0 - t) * OMEGA) / SIN(OMEGA)
WB := SIN(t * OMEGA) / SIN(OMEGA)
dst.x = a.x * WA + b.x * WB
dst.y = a.y * WA + b.y * WB
dst.z = a.z * WA + b.z * WB
dst.w = a.w * WA + b.w * WB