Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Letwory <nathan@letworyinteractive.com>2011-08-18 13:14:27 +0400
committerNathan Letwory <nathan@letworyinteractive.com>2011-08-18 13:14:27 +0400
commit475e0b8c0288e6f55d89d19489534884335744c4 (patch)
tree3772cb7643c51fab978bbcc089e5c5ab4838b17d /source/blender/collada
parenta46f36c9b6c22d0082f820847c1b60acdf17c08b (diff)
Apply [#28287] COLLADA fix for inverse bind matrix of skin controller
Patch by Pelle Johnsen
Diffstat (limited to 'source/blender/collada')
-rw-r--r--source/blender/collada/ArmatureExporter.cpp9
1 files changed, 2 insertions, 7 deletions
diff --git a/source/blender/collada/ArmatureExporter.cpp b/source/blender/collada/ArmatureExporter.cpp
index b033c780530..1c81c0b6e76 100644
--- a/source/blender/collada/ArmatureExporter.cpp
+++ b/source/blender/collada/ArmatureExporter.cpp
@@ -368,17 +368,12 @@ std::string ArmatureExporter::add_inv_bind_mats_source(Object *ob_arm, ListBase
bPoseChannel *pchan = get_pose_channel(pose, def->name);
- float pose_mat[4][4];
float mat[4][4];
float world[4][4];
float inv_bind_mat[4][4];
- // pose_mat is the same as pchan->pose_mat, but without the rotation
- unit_m4(pose_mat);
- translate_m4(pose_mat, pchan->pose_head[0], pchan->pose_head[1], pchan->pose_head[2]);
-
- // make world-space matrix, pose_mat is armature-space
- mul_m4_m4m4(world, pose_mat, ob_arm->obmat);
+ // make world-space matrix, arm_mat is armature-space
+ mul_m4_m4m4(world, pchan->bone->arm_mat, ob_arm->obmat);
invert_m4_m4(mat, world);
converter.mat4_to_dae(inv_bind_mat, mat);