Просмотр исходного кода

fix(linalg/glsl): incorrect quat by vector3 multiplication

IllusionMan1212 1 год назад
Родитель
Сommit
1f5f417116
1 измененных файлов с 2 добавлено и 2 удалено
  1. 2 2
      core/math/linalg/glsl/linalg_glsl.odin

+ 2 - 2
core/math/linalg/glsl/linalg_glsl.odin

@@ -1724,7 +1724,7 @@ quatFromMat4 :: proc "c" (m: mat4) -> (q: quat) {
 @(require_results)
 quatMulVec3 :: proc "c" (q: quat, v: vec3) -> vec3 {
 	xyz := vec3{q.x, q.y, q.z}
-	t := cross(xyz, v)
+	t := cross(2.0 * xyz, v)
 	return v + q.w*t + cross(xyz, t)
 }
 
@@ -1832,7 +1832,7 @@ dquatFromDmat4 :: proc "c" (m: dmat4) -> (q: dquat) {
 @(require_results)
 dquatMulDvec3 :: proc "c" (q: dquat, v: dvec3) -> dvec3 {
 	xyz := dvec3{q.x, q.y, q.z}
-	t := cross(xyz, v)
+	t := cross(2.0 * xyz, v)
 	return v + q.w*t + cross(xyz, t)
 }