Browse Source

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

Bug fix for material cloning problem
Raanan Weber 10 years ago
parent
commit
1889193dd1

+ 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;
     }
-} 
+}