From d2468d9f04d454effce847ef664f1a3929f2ed21 Mon Sep 17 00:00:00 2001 From: Shyotl Date: Wed, 25 Feb 2015 20:53:14 -0600 Subject: [PATCH] Fix issue with rigged normals when not using hardware skinning. --- indra/newview/llvoavatar.cpp | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 3378242b3..41c12b68c 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -8932,20 +8932,14 @@ void LLVOAvatar::updateSoftwareSkinnedVertices(const LLMeshSkinInfo* skin, const final_mat.add(src); } - LLVector4a& v = vol_face.mPositions[j]; - LLVector4a t; - LLVector4a dst; - bind_shape_matrix.affineTransform(v, t); - final_mat.affineTransform(t, dst); - pos[j] = dst; + final_mat.mul(bind_shape_matrix); + final_mat.affineTransform(vol_face.mPositions[j], pos[j]); if (norm) { - LLVector4a& n = vol_face.mNormals[j]; - bind_shape_matrix.rotate(n, t); - final_mat.rotate(t, dst); - dst.normalize3fast(); - norm[j] = dst; + final_mat.invert(); + final_mat.transpose(); + final_mat.affineTransform(vol_face.mNormals[j], norm[j]); } } }