Browse Source

Fixed clean matrices for bones

David Catuhe 8 years ago
parent
commit
2546da6f0a

File diff suppressed because it is too large
+ 4549 - 4549
dist/preview release/babylon.d.ts


File diff suppressed because it is too large
+ 2 - 2
dist/preview release/babylon.js


+ 7 - 1
dist/preview release/babylon.max.js

@@ -28603,10 +28603,16 @@ var BABYLON;
             var size = matricesWeights.length;
             for (var i = 0; i < size; i += influencers) {
                 var weight = 0;
+                var biggerIndex = i;
+                var biggerWeight = 0;
                 for (var j = 0; j < influencers - 1; j++) {
                     weight += matricesWeights[i + j];
+                    if (matricesWeights[i + j] > biggerWeight) {
+                        biggerWeight = matricesWeights[i + j];
+                        biggerIndex = i + j;
+                    }
                 }
-                matricesWeights[i + (influencers - 1)] += Math.max(0, 1.0 - weight);
+                matricesWeights[biggerIndex] += Math.max(0, 1.0 - weight);
             }
         };
         Geometry.Parse = function (parsedVertexData, scene, rootUrl) {

File diff suppressed because it is too large
+ 4549 - 4549
dist/preview release/babylon.module.d.ts


File diff suppressed because it is too large
+ 2 - 2
dist/preview release/babylon.worker.js


File diff suppressed because it is too large
+ 1703 - 1703
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.d.ts


File diff suppressed because it is too large
+ 3 - 3
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.js


+ 7 - 1
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.max.js

@@ -28603,10 +28603,16 @@ var BABYLON;
             var size = matricesWeights.length;
             for (var i = 0; i < size; i += influencers) {
                 var weight = 0;
+                var biggerIndex = 0;
+                var biggerWeight = 0;
                 for (var j = 0; j < influencers - 1; j++) {
                     weight += matricesWeights[i + j];
+                    if (matricesWeights[i + j] > biggerWeight) {
+                        biggerWeight = matricesWeights[i + j];
+                        biggerIndex = i + j;
+                    }
                 }
-                matricesWeights[i + (influencers - 1)] += Math.max(0, 1.0 - weight);
+                matricesWeights[biggerIndex] += Math.max(0, 1.0 - weight);
             }
         };
         Geometry.Parse = function (parsedVertexData, scene, rootUrl) {

File diff suppressed because it is too large
+ 1703 - 1703
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.module.d.ts


+ 8 - 1
src/Mesh/babylon.geometry.ts

@@ -983,11 +983,18 @@
             let size = matricesWeights.length;
             for (var i = 0; i < size; i += influencers) {
                 let weight = 0;
+                let biggerIndex = i;
+                let biggerWeight = 0;
                 for (var j = 0; j < influencers - 1; j++) {
                     weight += matricesWeights[i + j];
+
+                    if (matricesWeights[i + j] > biggerWeight) {
+                        biggerWeight = matricesWeights[i + j];
+                        biggerIndex = i + j;
+                    }
                 }
 
-                matricesWeights[i + (influencers - 1)] += Math.max(0, 1.0 - weight);
+                matricesWeights[biggerIndex] += Math.max(0, 1.0 - weight);
             }
         }