Просмотр исходного кода

fixed position for bones with no animation curve and no skin

ncannasse 11 лет назад
Родитель
Сommit
80b29e1ccd
2 измененных файлов с 3 добавлено и 5 удалено
  1. 2 1
      h3d/fbx/Library.hx
  2. 1 4
      h3d/scene/Skin.hx

+ 2 - 1
h3d/fbx/Library.hx

@@ -765,6 +765,8 @@ class Library {
 			var jModel = ids.get(j.index);
 			var subDef = getParent(jModel, "Deformer", true);
 			var defMat = defaultModelMatrixes.get(jModel.getName());
+			j.defMat = defMat.toMatrix(leftHand);
+			
 			if( subDef == null ) {
 				// if we have skinned subs, we need to keep in joint hierarchy
 				if( j.subs.length > 0 || keepJoint(j) )
@@ -793,7 +795,6 @@ class Library {
 				hskins.set(def.getId(), skin);
 			}
 			j.transPos = h3d.Matrix.L(subDef.get("Transform").getFloats());
-			j.defMat = defMat.toMatrix(leftHand);
 			if( leftHand ) DefaultMatrixes.rightHandToLeft(j.transPos);
 			
 			var weights = subDef.getAll("Weights");

+ 1 - 4
h3d/scene/Skin.hx

@@ -142,10 +142,7 @@ class Skin extends Mesh {
 				var id = j.index;
 				var m = currentAbsPose[id];
 				var r = currentRelPose[id];
-				if( r == null ) {
-					var bid = j.bindIndex;
-					if( bid >= 0 ) r = j.defMat else continue;
-				}
+				if( r == null ) r = j.defMat;
 				if( j.parent == null )
 					m.multiply3x4(r, absPos);
 				else