|
|
@@ -175,7 +175,8 @@ namespace glm
|
|
|
mat<3, 3, T, Q> Result;
|
|
|
|
|
|
Result[2] = -direction;
|
|
|
- Result[0] = normalize(cross(up, Result[2]));
|
|
|
+ vec<3, T, Q> const& Right = cross(up, Result[2]);
|
|
|
+ Result[0] = Right * inversesqrt(max(static_cast<T>(0.00001), dot(Right, Right)));
|
|
|
Result[1] = cross(Result[2], Result[0]);
|
|
|
|
|
|
return quat_cast(Result);
|
|
|
@@ -187,7 +188,8 @@ namespace glm
|
|
|
mat<3, 3, T, Q> Result;
|
|
|
|
|
|
Result[2] = direction;
|
|
|
- Result[0] = normalize(cross(up, Result[2]));
|
|
|
+ vec<3, T, Q> const& Right = cross(up, Result[2]);
|
|
|
+ Result[0] = Right * inversesqrt(max(static_cast<T>(0.00001), dot(Right, Right)));
|
|
|
Result[1] = cross(Result[2], Result[0]);
|
|
|
|
|
|
return quat_cast(Result);
|