Tensorflow.graphics slerp interpolation module.
Spherical linear interpolation (slerp) is defined for both quaternions and for regular M-D vectors, and act slightly differently because of inherent ambiguity of quaternions. This module has two functions returning the interpolation weights for quaternions (quaternion_weights) and for vectors (vector_weights), which can then be used in a weighted sum to calculate the final interpolated quaternions and vectors. A helper interpolate function is also provided.
The main differences between two methods are: vector_weights: can get any M-D tensor as input, does not expect normalized vectors as input, returns unnormalized outputs (in general) for unnormalized inputs.
quaternion_weights: expects M-D tensors with a last dimension of 4, assumes normalized input, checks for ambiguity by looking at the angle between quaternions, returns normalized quaternions naturally.
class InterpolationType: Defines interpolation methods for slerp module.
interpolate(...): Applies slerp to vectors or quaternions.
interpolate_with_weights(...): Interpolates vectors by taking their weighted sum.
quaternion_weights(...): Calculates slerp weights for two normalized quaternions.
vector_weights(...): Spherical linear interpolation (slerp) between two unnormalized vectors.