瀏覽代碼

Fix LOD issue

David Catuhe 7 年之前
父節點
當前提交
b359d192c2

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


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


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


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


+ 4 - 3
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.max.js

@@ -76443,19 +76443,20 @@ var BABYLON;
                             if (!material) {
                                 throw new Error(context + ": Failed to find material " + primitive.material);
                             }
+                            var capturedIndex = index;
                             _this._loadMaterial("#/materials/" + material.index, material, function (babylonMaterial, isNew) {
                                 if (isNew && _this._parent.onMaterialLoaded) {
                                     _this._parent.onMaterialLoaded(babylonMaterial);
                                 }
                                 if (_this._parent.onBeforeMaterialReadyAsync) {
                                     _this._addLoaderPendingData(material);
-                                    _this._parent.onBeforeMaterialReadyAsync(babylonMaterial, node.babylonMesh, subMaterials[index] != null, function () {
-                                        subMaterials[index] = babylonMaterial;
+                                    _this._parent.onBeforeMaterialReadyAsync(babylonMaterial, node.babylonMesh, subMaterials[capturedIndex] != null, function () {
+                                        subMaterials[capturedIndex] = babylonMaterial;
                                         _this._removeLoaderPendingData(material);
                                     });
                                 }
                                 else {
-                                    subMaterials[index] = babylonMaterial;
+                                    subMaterials[capturedIndex] = babylonMaterial;
                                 }
                             });
                         }

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


+ 4 - 3
dist/preview release/loaders/babylon.glTF2FileLoader.js

@@ -633,19 +633,20 @@ var BABYLON;
                             if (!material) {
                                 throw new Error(context + ": Failed to find material " + primitive.material);
                             }
+                            var capturedIndex = index;
                             _this._loadMaterial("#/materials/" + material.index, material, function (babylonMaterial, isNew) {
                                 if (isNew && _this._parent.onMaterialLoaded) {
                                     _this._parent.onMaterialLoaded(babylonMaterial);
                                 }
                                 if (_this._parent.onBeforeMaterialReadyAsync) {
                                     _this._addLoaderPendingData(material);
-                                    _this._parent.onBeforeMaterialReadyAsync(babylonMaterial, node.babylonMesh, subMaterials[index] != null, function () {
-                                        subMaterials[index] = babylonMaterial;
+                                    _this._parent.onBeforeMaterialReadyAsync(babylonMaterial, node.babylonMesh, subMaterials[capturedIndex] != null, function () {
+                                        subMaterials[capturedIndex] = babylonMaterial;
                                         _this._removeLoaderPendingData(material);
                                     });
                                 }
                                 else {
-                                    subMaterials[index] = babylonMaterial;
+                                    subMaterials[capturedIndex] = babylonMaterial;
                                 }
                             });
                         }

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


+ 4 - 3
dist/preview release/loaders/babylon.glTFFileLoader.js

@@ -2739,19 +2739,20 @@ var BABYLON;
                             if (!material) {
                                 throw new Error(context + ": Failed to find material " + primitive.material);
                             }
+                            var capturedIndex = index;
                             _this._loadMaterial("#/materials/" + material.index, material, function (babylonMaterial, isNew) {
                                 if (isNew && _this._parent.onMaterialLoaded) {
                                     _this._parent.onMaterialLoaded(babylonMaterial);
                                 }
                                 if (_this._parent.onBeforeMaterialReadyAsync) {
                                     _this._addLoaderPendingData(material);
-                                    _this._parent.onBeforeMaterialReadyAsync(babylonMaterial, node.babylonMesh, subMaterials[index] != null, function () {
-                                        subMaterials[index] = babylonMaterial;
+                                    _this._parent.onBeforeMaterialReadyAsync(babylonMaterial, node.babylonMesh, subMaterials[capturedIndex] != null, function () {
+                                        subMaterials[capturedIndex] = babylonMaterial;
                                         _this._removeLoaderPendingData(material);
                                     });
                                 }
                                 else {
-                                    subMaterials[index] = babylonMaterial;
+                                    subMaterials[capturedIndex] = babylonMaterial;
                                 }
                             });
                         }

File diff suppressed because it is too large
+ 1 - 1
dist/preview release/loaders/babylon.glTFFileLoader.min.js


+ 4 - 3
dist/preview release/loaders/babylonjs.loaders.js

@@ -3692,19 +3692,20 @@ var BABYLON;
                             if (!material) {
                                 throw new Error(context + ": Failed to find material " + primitive.material);
                             }
+                            var capturedIndex = index;
                             _this._loadMaterial("#/materials/" + material.index, material, function (babylonMaterial, isNew) {
                                 if (isNew && _this._parent.onMaterialLoaded) {
                                     _this._parent.onMaterialLoaded(babylonMaterial);
                                 }
                                 if (_this._parent.onBeforeMaterialReadyAsync) {
                                     _this._addLoaderPendingData(material);
-                                    _this._parent.onBeforeMaterialReadyAsync(babylonMaterial, node.babylonMesh, subMaterials[index] != null, function () {
-                                        subMaterials[index] = babylonMaterial;
+                                    _this._parent.onBeforeMaterialReadyAsync(babylonMaterial, node.babylonMesh, subMaterials[capturedIndex] != null, function () {
+                                        subMaterials[capturedIndex] = babylonMaterial;
                                         _this._removeLoaderPendingData(material);
                                     });
                                 }
                                 else {
-                                    subMaterials[index] = babylonMaterial;
+                                    subMaterials[capturedIndex] = babylonMaterial;
                                 }
                             });
                         }

File diff suppressed because it is too large
+ 1 - 1
dist/preview release/loaders/babylonjs.loaders.min.js


+ 4 - 3
loaders/src/glTF/2.0/babylon.glTFLoader.ts

@@ -428,6 +428,7 @@ module BABYLON.GLTF2 {
                             throw new Error(context + ": Failed to find material " + primitive.material);
                         }
 
+                        var capturedIndex = index;
                         this._loadMaterial("#/materials/" + material.index, material, (babylonMaterial, isNew) => {
                             if (isNew && this._parent.onMaterialLoaded) {
                                 this._parent.onMaterialLoaded(babylonMaterial);
@@ -435,12 +436,12 @@ module BABYLON.GLTF2 {
 
                             if (this._parent.onBeforeMaterialReadyAsync) {
                                 this._addLoaderPendingData(material);
-                                this._parent.onBeforeMaterialReadyAsync(babylonMaterial, node.babylonMesh, subMaterials[index] != null, () => {
-                                    subMaterials[index] = babylonMaterial;
+                                this._parent.onBeforeMaterialReadyAsync(babylonMaterial, node.babylonMesh, subMaterials[capturedIndex] != null, () => {
+                                    subMaterials[capturedIndex] = babylonMaterial;
                                     this._removeLoaderPendingData(material);
                                 });
                             } else {
-                                subMaterials[index] = babylonMaterial;
+                                subMaterials[capturedIndex] = babylonMaterial;
                             }
                         });
                     }