OSDN Git Service

fix NumBones bug
authorKazuhiko Kobayashi <chototsu_moushinp@yahoo.co.jp>
Wed, 22 Feb 2012 16:56:19 +0000 (01:56 +0900)
committerKazuhiko Kobayashi <chototsu_moushinp@yahoo.co.jp>
Wed, 22 Feb 2012 16:56:19 +0000 (01:56 +0900)
src/projectkyoto/jme3/mmd/PMDLoaderGLSLSkinning2.java
src/projectkyoto/jme3/mmd/PMDNode.java

index cf0c532..8579155 100755 (executable)
@@ -158,7 +158,7 @@ public class PMDLoaderGLSLSkinning2 implements AssetLoader{
             PMDGeometry geom = new PMDGeometry("geom" + meshCount++);
             geom.setMesh(mesh);
             setupMaterial(pmdMaterial, geom);
-            System.out.println(node.attachChild(geom));
+            node.attachChild(geom);
             skinMeshList.add(mesh);
         }
 //        System.out.println("child size = "+node.getChildren().size()+" "+meshList.size()+" "+skinMeshList.size());
@@ -368,13 +368,13 @@ public class PMDLoaderGLSLSkinning2 implements AssetLoader{
             geom.setGlslSkinningMaterial(mat);
             geom.setNoSkinningMaterial(mat);
         } else {
+            PMDMesh mesh = (PMDMesh)geom.getMesh();
             mat = createMaterial(m, true);
             geom.setMaterial(mat);
             geom.setGlslSkinningMaterial(mat);
+            mat.setInt("NumBones", mesh.boneIndexArray.length);
             mat = createMaterial(m, false);
             geom.setNoSkinningMaterial(mat);
-            PMDMesh mesh = (PMDMesh)geom.getMesh();
-//            mat.setInt("NumBones", mesh.boneIndexArray.length);
 
         }
         geom.setPmdMaterial(m);
@@ -401,7 +401,7 @@ public class PMDLoaderGLSLSkinning2 implements AssetLoader{
             }
         }
         if (skinning) {
-            mat.setInt("NumBones", meshConverter.getMaxBoneSize());
+//            mat.setInt("NumBones", meshConverter.getMaxBoneSize());
         }
         float alpha = m.getMaterial().getFaceColor().getAlpha();
         if (alpha > 0.99f) {
index 843aa52..2434b51 100755 (executable)
@@ -957,7 +957,7 @@ boolean setBoneMatricesFlag = true;
                             skinMesh.setSkinvb2(skinMesh0.getSkinvb2().clone());
                             skinMesh.setBuffer(skinMesh0.getBuffer(Type.Normal).clone());
                             skinMesh.setSkinnb2(skinMesh0.getSkinnb2().clone());
-                            skinMesh.setBuffer(skinMesh0.getBuffer(Type.TexCoord).clone());
+                            skinMesh.setBuffer(skinMesh0.getBuffer(Type.TexCoord));
                         }
                         newPMDNode.skinTargets[skinMeshCount++] = (PMDSkinMesh)mesh;
                     }