From bf26f029f92cac2857c886c246b3df11de75d773 Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Mon, 16 Jul 2012 13:47:19 -0700 Subject: [PATCH] Fix some skinning-related transformations --- components/nifogre/ogre_nif_loader.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/components/nifogre/ogre_nif_loader.cpp b/components/nifogre/ogre_nif_loader.cpp index 7a7b9e572..cffab724e 100644 --- a/components/nifogre/ogre_nif_loader.cpp +++ b/components/nifogre/ogre_nif_loader.cpp @@ -546,7 +546,7 @@ class NIFMeshLoader : Ogre::ManualResourceLoader Ogre::Matrix4 mat(Ogre::Matrix4::IDENTITY); mat.makeTransform(data->bones[b].trafo.trans, Ogre::Vector3(data->bones[b].trafo.scale), Ogre::Quaternion(data->bones[b].trafo.rotation)); - mat = mat * bones[b]->getWorldTransform(); + mat = bones[b]->getWorldTransform() * mat; const std::vector &weights = data->bones[b].weights; for(size_t i = 0;i < weights.size();i++) @@ -559,9 +559,9 @@ class NIFMeshLoader : Ogre::ManualResourceLoader { for(size_t j = 0;j < 3;j++) { - newNorms[index][j] += mat[0][j]*srcNorms[index][0] * weight; - newNorms[index][j] += mat[1][j]*srcNorms[index][1] * weight; - newNorms[index][j] += mat[2][j]*srcNorms[index][2] * weight; + newNorms[index][j] += mat[j][0]*srcNorms[index][0] * weight; + newNorms[index][j] += mat[j][1]*srcNorms[index][1] * weight; + newNorms[index][j] += mat[j][2]*srcNorms[index][2] * weight; } } }