瀏覽代碼

Merge pull request #744 from BabylonJS/clone-bug-fix

Bug fix for material cloning problem
Raanan Weber 10 年之前
父節點
當前提交
1889193dd1
共有 2 個文件被更改,包括 25 次插入9 次删除
  1. 12 4
      src/Materials/babylon.standardMaterial.js
  2. 13 5
      src/Materials/babylon.standardMaterial.ts

+ 12 - 4
src/Materials/babylon.standardMaterial.js

@@ -796,10 +796,18 @@ var BABYLON;
             newStandardMaterial.useReflectionFresnelFromSpecular = this.useReflectionFresnelFromSpecular;
             newStandardMaterial.useSpecularOverAlpha = this.useSpecularOverAlpha;
             newStandardMaterial.roughness = this.roughness;
-            newStandardMaterial.diffuseFresnelParameters = this.diffuseFresnelParameters.clone();
-            newStandardMaterial.emissiveFresnelParameters = this.emissiveFresnelParameters.clone();
-            newStandardMaterial.reflectionFresnelParameters = this.reflectionFresnelParameters.clone();
-            newStandardMaterial.opacityFresnelParameters = this.opacityFresnelParameters.clone();
+            if (this.diffuseFresnelParameters && this.diffuseFresnelParameters.clone) {
+                newStandardMaterial.diffuseFresnelParameters = this.diffuseFresnelParameters.clone();
+            }
+            if (this.emissiveFresnelParameters && this.emissiveFresnelParameters.clone) {
+                newStandardMaterial.emissiveFresnelParameters = this.emissiveFresnelParameters.clone();
+            }
+            if (this.reflectionFresnelParameters && this.reflectionFresnelParameters.clone) {
+                newStandardMaterial.reflectionFresnelParameters = this.reflectionFresnelParameters.clone();
+            }
+            if (this.opacityFresnelParameters && this.opacityFresnelParameters.clone) {
+                newStandardMaterial.opacityFresnelParameters = this.opacityFresnelParameters.clone();
+            }
             return newStandardMaterial;
         };
         // Statics

+ 13 - 5
src/Materials/babylon.standardMaterial.ts

@@ -970,10 +970,18 @@
             newStandardMaterial.useSpecularOverAlpha = this.useSpecularOverAlpha;
             newStandardMaterial.roughness = this.roughness;
 
-            newStandardMaterial.diffuseFresnelParameters = this.diffuseFresnelParameters.clone();
-            newStandardMaterial.emissiveFresnelParameters = this.emissiveFresnelParameters.clone();
-            newStandardMaterial.reflectionFresnelParameters = this.reflectionFresnelParameters.clone();
-            newStandardMaterial.opacityFresnelParameters = this.opacityFresnelParameters.clone();
+            if (this.diffuseFresnelParameters && this.diffuseFresnelParameters.clone) {
+                newStandardMaterial.diffuseFresnelParameters = this.diffuseFresnelParameters.clone();
+            }
+            if (this.emissiveFresnelParameters && this.emissiveFresnelParameters.clone) {
+                newStandardMaterial.emissiveFresnelParameters = this.emissiveFresnelParameters.clone();
+            }
+            if (this.reflectionFresnelParameters && this.reflectionFresnelParameters.clone) {
+                newStandardMaterial.reflectionFresnelParameters = this.reflectionFresnelParameters.clone();
+            }
+            if (this.opacityFresnelParameters && this.opacityFresnelParameters.clone) {
+                newStandardMaterial.opacityFresnelParameters = this.opacityFresnelParameters.clone();
+            }
 
             return newStandardMaterial;
         }
@@ -990,4 +998,4 @@
         public static FresnelEnabled = true;
         public static LightmapEnabled = true;
     }
-} 
+}