Browse Source

automatically increase shader max bones if we have not split

Nicolas Cannasse 11 năm trước cách đây
mục cha
commit
01a4aad65f
1 tập tin đã thay đổi với 9 bổ sung0 xóa
  1. 9 0
      h3d/scene/Skin.hx

+ 9 - 0
h3d/scene/Skin.hx

@@ -125,6 +125,15 @@ class Skin extends MultiMaterial {
 		jointsUpdated = true;
 		primitive = s.primitive;
 		skinShader = new h3d.shader.Skin();
+		var maxBones = 0;
+		if( skinData.splitJoints != null ) {
+			for( s in skinData.splitJoints )
+				if( s.joints.length > maxBones )
+					maxBones = s.joints.length;
+		} else
+			maxBones = skinData.boundJoints.length;
+		if( skinShader.MaxBones < maxBones )
+			skinShader.MaxBones = maxBones;
 		for( m in materials )
 			if( m != null ) {
 				m.mainPass.addShader(skinShader);