Quellcode durchsuchen

Fix broken material if pbrMetallicRoughness is undefined

Gary Hsu vor 8 Jahren
Ursprung
Commit
f8eb5323d1
1 geänderte Dateien mit 15 neuen und 17 gelöschten Zeilen
  1. 15 17
      loaders/src/glTF/2.0/babylon.glTFLoader.ts

+ 15 - 17
loaders/src/glTF/2.0/babylon.glTFLoader.ts

@@ -777,24 +777,22 @@ module BABYLON.GLTF2 {
             material.babylonMaterial.roughness = 1;
 
             var properties = material.pbrMetallicRoughness;
-            if (!properties) {
-                return;
-            }
-
-            material.babylonMaterial.albedoColor = properties.baseColorFactor ? Color3.FromArray(properties.baseColorFactor) : new Color3(1, 1, 1);
-            material.babylonMaterial.metallic = properties.metallicFactor === undefined ? 1 : properties.metallicFactor;
-            material.babylonMaterial.roughness = properties.roughnessFactor === undefined ? 1 : properties.roughnessFactor;
-
-            if (properties.baseColorTexture) {
-                material.babylonMaterial.albedoTexture = this._loadTexture(properties.baseColorTexture);
-                this._loadAlphaProperties(material);
-            }
+            if (properties) {
+                material.babylonMaterial.albedoColor = properties.baseColorFactor ? Color3.FromArray(properties.baseColorFactor) : new Color3(1, 1, 1);
+                material.babylonMaterial.metallic = properties.metallicFactor === undefined ? 1 : properties.metallicFactor;
+                material.babylonMaterial.roughness = properties.roughnessFactor === undefined ? 1 : properties.roughnessFactor;
+
+                if (properties.baseColorTexture) {
+                    material.babylonMaterial.albedoTexture = this._loadTexture(properties.baseColorTexture);
+                    this._loadAlphaProperties(material);
+                }
 
-            if (properties.metallicRoughnessTexture) {
-                material.babylonMaterial.metallicTexture = this._loadTexture(properties.metallicRoughnessTexture);
-                material.babylonMaterial.useMetallnessFromMetallicTextureBlue = true;
-                material.babylonMaterial.useRoughnessFromMetallicTextureGreen = true;
-                material.babylonMaterial.useRoughnessFromMetallicTextureAlpha = false;
+                if (properties.metallicRoughnessTexture) {
+                    material.babylonMaterial.metallicTexture = this._loadTexture(properties.metallicRoughnessTexture);
+                    material.babylonMaterial.useMetallnessFromMetallicTextureBlue = true;
+                    material.babylonMaterial.useRoughnessFromMetallicTextureGreen = true;
+                    material.babylonMaterial.useRoughnessFromMetallicTextureAlpha = false;
+                }
             }
 
             return material.babylonMaterial;