Browse Source

Correctly inspecting uvs and color arrays

Raanan Weber 10 năm trước cách đây
mục cha
commit
c8f5b70126

+ 3 - 3
Babylon/Mesh/babylon.meshSimplification.js

@@ -341,7 +341,7 @@ var BABYLON;
             };
             //var totalVertices = mesh.getTotalVertices();
             var totalVertices = submesh.verticesCount;
-            BABYLON.AsyncLoop.SyncAsyncForLoop(totalVertices, this.syncIterations / 2, vertexInit, function () {
+            BABYLON.AsyncLoop.SyncAsyncForLoop(totalVertices, (this.syncIterations / 4) >> 0, vertexInit, function () {
                 var indicesInit = function (i) {
                     var offset = (submesh.indexStart / 3) + i;
                     var pos = (offset * 3);
@@ -420,11 +420,11 @@ var BABYLON;
                         newNormalData.push(normalData[originalOffset * 3]);
                         newNormalData.push(normalData[(originalOffset * 3) + 1]);
                         newNormalData.push(normalData[(originalOffset * 3) + 2]);
-                        if (uvs.length) {
+                        if (uvs && uvs.length) {
                             newUVsData.push(uvs[(originalOffset * 2)]);
                             newUVsData.push(uvs[(originalOffset * 2) + 1]);
                         }
-                        else if (colorsData.length) {
+                        else if (colorsData && colorsData.length) {
                             newColorsData.push(colorsData[(originalOffset * 4)]);
                             newColorsData.push(colorsData[(originalOffset * 4) + 1]);
                             newColorsData.push(colorsData[(originalOffset * 4) + 2]);

+ 3 - 3
Babylon/Mesh/babylon.meshSimplification.ts

@@ -431,7 +431,7 @@
             };
             //var totalVertices = mesh.getTotalVertices();
             var totalVertices = submesh.verticesCount;
-            AsyncLoop.SyncAsyncForLoop(totalVertices, this.syncIterations / 2, vertexInit,() => {
+            AsyncLoop.SyncAsyncForLoop(totalVertices, (this.syncIterations / 4) >> 0, vertexInit,() => {
 
                 var indicesInit = (i) => {
                     var offset = (submesh.indexStart / 3) + i;
@@ -517,10 +517,10 @@
                         newNormalData.push(normalData[originalOffset * 3]);
                         newNormalData.push(normalData[(originalOffset * 3) + 1]);
                         newNormalData.push(normalData[(originalOffset * 3) + 2]);
-                        if (uvs.length) {
+                        if (uvs && uvs.length) {
                             newUVsData.push(uvs[(originalOffset * 2)]);
                             newUVsData.push(uvs[(originalOffset * 2) + 1]);
-                        } else if (colorsData.length) {
+                        } else if (colorsData && colorsData.length) {
                             newColorsData.push(colorsData[(originalOffset * 4)]);
                             newColorsData.push(colorsData[(originalOffset * 4) + 1]);
                             newColorsData.push(colorsData[(originalOffset * 4) + 2]);