forked from bartvdbraak/blender
Apply [#28287] COLLADA fix for inverse bind matrix of skin controller
Patch by Pelle Johnsen
This commit is contained in:
parent
a46f36c9b6
commit
475e0b8c02
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user