Kaynağa Gözat

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)
thechosenone124 7 yıl önce
ebeveyn
işleme
8bbbbfcafd
1 değiştirilmiş dosya ile 1 ekleme ve 1 silme
  1. 1 1
      glm/gtx/quaternion.inl

+ 1 - 1
glm/gtx/quaternion.inl

@@ -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>