Intermediate Function Is Improperly Done
The formula for calculating the intermediate for a SQUAD interpolation is exp((log(next * invQuat) + log(prev * invQuat)) / static_cast<T>(-4)) * curr; The current code uses addition instead of multiplication (based on http://web.mit.edu/2.998/www/QuaternionReport1.pdf)
This commit is contained in:
parent
20b3f4bd42
commit
8bbbbfcafd
@ -45,7 +45,7 @@ namespace glm
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
tquat<T, Q> invQuat = inverse(curr);
|
tquat<T, Q> invQuat = inverse(curr);
|
||||||
return exp((log(next + invQuat) + log(prev + invQuat)) / static_cast<T>(-4)) * curr;
|
return exp((log(next * invQuat) + log(prev * invQuat)) / static_cast<T>(-4)) * curr;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T, qualifier Q>
|
template<typename T, qualifier Q>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user