Преглед на файлове

Fix loading base material

sebavan преди 5 години
родител
ревизия
6432d6a245
променени са 2 файла, в които са добавени 9 реда и са изтрити 11 реда
  1. 5 6
      loaders/src/glTF/2.0/Extensions/KHR_materials_clearcoat.ts
  2. 4 5
      loaders/src/glTF/2.0/Extensions/KHR_materials_specular.ts

+ 5 - 6
loaders/src/glTF/2.0/Extensions/KHR_materials_clearcoat.ts

@@ -53,14 +53,13 @@ export class KHR_materials_clearcoat implements IGLTFLoaderExtension {
     public loadMaterialPropertiesAsync(context: string, material: IMaterial, babylonMaterial: Material): Nullable<Promise<void>> {
         return GLTFLoader.LoadExtensionAsync<IKHR_materials_clearcoat>(context, material, this.name, (extensionContext, extension) => {
             const promises = new Array<Promise<any>>();
-            promises.push(this._loader.loadMaterialBasePropertiesAsync(context, material, babylonMaterial));
-            promises.push(this._loadClearCoatPropertiesAsync(extensionContext, material, extension, babylonMaterial));
-            this._loader.loadMaterialAlphaProperties(context, material, babylonMaterial);
+            promises.push(this._loader.loadMaterialPropertiesAsync(context, material, babylonMaterial));
+            promises.push(this._loadClearCoatPropertiesAsync(extensionContext, extension, babylonMaterial));
             return Promise.all(promises).then(() => { });
         });
     }
 
-    private _loadClearCoatPropertiesAsync(context: string, material: IMaterial, properties: IKHR_materials_clearcoat, babylonMaterial: Material): Promise<void> {
+    private _loadClearCoatPropertiesAsync(context: string, properties: IKHR_materials_clearcoat, babylonMaterial: Material): Promise<void> {
         if (!(babylonMaterial instanceof PBRMaterial)) {
             throw new Error(`${context}: Material type not supported`);
         }
@@ -69,7 +68,7 @@ export class KHR_materials_clearcoat implements IGLTFLoaderExtension {
 
         babylonMaterial.clearCoat.isEnabled = true;
 
-        if (properties.clearcoatFactor) {
+        if (properties.clearcoatFactor != undefined) {
             babylonMaterial.clearCoat.intensity = properties.clearcoatFactor;
         }
         else {
@@ -83,7 +82,7 @@ export class KHR_materials_clearcoat implements IGLTFLoaderExtension {
             }));
         }
 
-        if (properties.clearcoatRoughnessFactor) {
+        if (properties.clearcoatRoughnessFactor != undefined) {
             babylonMaterial.clearCoat.roughness = properties.clearcoatRoughnessFactor;
         }
         else {

+ 4 - 5
loaders/src/glTF/2.0/Extensions/KHR_materials_specular.ts

@@ -49,19 +49,18 @@ export class KHR_materials_specular implements IGLTFLoaderExtension {
     public loadMaterialPropertiesAsync(context: string, material: IMaterial, babylonMaterial: Material): Nullable<Promise<void>> {
         return GLTFLoader.LoadExtensionAsync<IKHR_materials_specular>(context, material, this.name, (extensionContext, extension) => {
             const promises = new Array<Promise<any>>();
-            promises.push(this._loader.loadMaterialBasePropertiesAsync(context, material, babylonMaterial));
-            promises.push(this._loadSpecularPropertiesAsync(extensionContext, material, extension, babylonMaterial));
-            this._loader.loadMaterialAlphaProperties(context, material, babylonMaterial);
+            promises.push(this._loader.loadMaterialPropertiesAsync(context, material, babylonMaterial));
+            promises.push(this._loadSpecularPropertiesAsync(extensionContext, extension, babylonMaterial));
             return Promise.all(promises).then(() => { });
         });
     }
 
-    private _loadSpecularPropertiesAsync(context: string, material: IMaterial, properties: IKHR_materials_specular, babylonMaterial: Material): Promise<void> {
+    private _loadSpecularPropertiesAsync(context: string, properties: IKHR_materials_specular, babylonMaterial: Material): Promise<void> {
         if (!(babylonMaterial instanceof PBRMaterial)) {
             throw new Error(`${context}: Material type not supported`);
         }
 
-        if (properties.specularFactor) {
+        if (properties.specularFactor !== undefined) {
             babylonMaterial.metallicF0Factor = properties.specularFactor;
         }