Procházet zdrojové kódy

Fix bug with multimaterials and PBR

David Catuhe před 8 roky
rodič
revize
2202157086

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 952 - 952
dist/preview release/babylon.d.ts


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 10 - 10
dist/preview release/babylon.js


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

@@ -48797,10 +48797,16 @@ var BABYLON;
         MultiMaterial.prototype.getClassName = function () {
         MultiMaterial.prototype.getClassName = function () {
             return "MultiMaterial";
             return "MultiMaterial";
         };
         };
-        MultiMaterial.prototype.isReady = function (mesh) {
+        MultiMaterial.prototype.isReadyForSubMesh = function (mesh, subMesh, useInstances) {
             for (var index = 0; index < this.subMaterials.length; index++) {
             for (var index = 0; index < this.subMaterials.length; index++) {
                 var subMaterial = this.subMaterials[index];
                 var subMaterial = this.subMaterials[index];
                 if (subMaterial) {
                 if (subMaterial) {
+                    if (this.subMaterials[index].isReadyForSubMesh) {
+                        if (!this.subMaterials[index].isReadyForSubMesh(mesh, subMesh, useInstances)) {
+                            return false;
+                        }
+                        continue;
+                    }
                     if (!this.subMaterials[index].isReady(mesh)) {
                     if (!this.subMaterials[index].isReady(mesh)) {
                         return false;
                         return false;
                     }
                     }

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 952 - 952
dist/preview release/babylon.module.d.ts


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 10 - 10
dist/preview release/babylon.worker.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 554 - 554
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.d.ts


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 8 - 8
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.js


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

@@ -35825,10 +35825,16 @@ var BABYLON;
         MultiMaterial.prototype.getClassName = function () {
         MultiMaterial.prototype.getClassName = function () {
             return "MultiMaterial";
             return "MultiMaterial";
         };
         };
-        MultiMaterial.prototype.isReady = function (mesh) {
+        MultiMaterial.prototype.isReadyForSubMesh = function (mesh, subMesh, useInstances) {
             for (var index = 0; index < this.subMaterials.length; index++) {
             for (var index = 0; index < this.subMaterials.length; index++) {
                 var subMaterial = this.subMaterials[index];
                 var subMaterial = this.subMaterials[index];
                 if (subMaterial) {
                 if (subMaterial) {
+                    if (this.subMaterials[index].isReadyForSubMesh) {
+                        if (!this.subMaterials[index].isReadyForSubMesh(mesh, subMesh, useInstances)) {
+                            return false;
+                        }
+                        continue;
+                    }
                     if (!this.subMaterials[index].isReady(mesh)) {
                     if (!this.subMaterials[index].isReady(mesh)) {
                         return false;
                         return false;
                     }
                     }

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 554 - 554
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.module.d.ts


+ 8 - 1
src/Materials/babylon.multiMaterial.ts

@@ -56,10 +56,17 @@
             return "MultiMaterial";
             return "MultiMaterial";
         }
         }
 
 
-        public isReady(mesh?: AbstractMesh): boolean {
+        public isReadyForSubMesh(mesh: AbstractMesh, subMesh: BaseSubMesh, useInstances?: boolean): boolean {
             for (var index = 0; index < this.subMaterials.length; index++) {
             for (var index = 0; index < this.subMaterials.length; index++) {
                 var subMaterial = this.subMaterials[index];
                 var subMaterial = this.subMaterials[index];
                 if (subMaterial) {
                 if (subMaterial) {
+                    if (this.subMaterials[index].isReadyForSubMesh) {
+                        if (!this.subMaterials[index].isReadyForSubMesh(mesh, subMesh, useInstances)) {
+                            return false;
+                        }
+                        continue;
+                    }
+
                     if (!this.subMaterials[index].isReady(mesh)) {
                     if (!this.subMaterials[index].isReady(mesh)) {
                         return false;
                         return false;
                     }
                     }