From 475e0b8c0288e6f55d89d19489534884335744c4 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Thu, 18 Aug 2011 09:14:27 +0000 Subject: Apply [#28287] COLLADA fix for inverse bind matrix of skin controller Patch by Pelle Johnsen --- source/blender/collada/ArmatureExporter.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) (limited to 'source/blender/collada') 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); -- cgit v1.2.3