Browse Source

Fixed issues with forzen materials

David Catuhe 8 years ago
parent
commit
00b1cf94db

File diff suppressed because it is too large
+ 4 - 4
dist/preview release/babylon.core.js


File diff suppressed because it is too large
+ 5588 - 5588
dist/preview release/babylon.d.ts


File diff suppressed because it is too large
+ 4 - 4
dist/preview release/babylon.js


+ 3 - 9
dist/preview release/babylon.max.js

@@ -30242,14 +30242,8 @@ var BABYLON;
             if (maxSimultaneousLights === void 0) { maxSimultaneousLights = 4; }
             var lightIndex = 0;
             var depthValuesAlreadySet = false;
-            for (var index = 0; index < scene.lights.length; index++) {
-                var light = scene.lights[index];
-                if (!light.isEnabled()) {
-                    continue;
-                }
-                if (!light.canAffectMesh(mesh)) {
-                    continue;
-                }
+            for (var _i = 0, _a = mesh._lightSources; _i < _a.length; _i++) {
+                var light = _a[_i];
                 MaterialHelper.BindLightProperties(light, effect, lightIndex);
                 light.diffuse.scaleToRef(light.intensity, BABYLON.Tmp.Color3[0]);
                 effect.setColor4("vLightDiffuse" + lightIndex, BABYLON.Tmp.Color3[0], light.range);
@@ -31999,7 +31993,7 @@ var BABYLON;
                 }
                 effect.setColor3("vEmissiveColor", this.emissiveColor);
             }
-            if (!this.isFrozen) {
+            if (scene.getCachedEffect() !== effect || scene.getCachedMaterial() !== this || !this.isFrozen) {
                 // Diffuse
                 effect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);
                 // Lights

File diff suppressed because it is too large
+ 5588 - 5588
dist/preview release/babylon.module.d.ts


File diff suppressed because it is too large
+ 4 - 4
dist/preview release/babylon.noworker.js


+ 1 - 9
src/Materials/babylon.materialHelper.ts

@@ -259,16 +259,8 @@
         public static BindLights(scene: Scene, mesh: AbstractMesh, effect: Effect, defines: MaterialDefines, maxSimultaneousLights = 4) {
             var lightIndex = 0;
             var depthValuesAlreadySet = false;
-            for (var index = 0; index < scene.lights.length; index++) {
-                var light = scene.lights[index];
 
-                if (!light.isEnabled()) {
-                    continue;
-                }
-
-                if (!light.canAffectMesh(mesh)) {
-                    continue;
-                }
+            for (var light of mesh._lightSources) {
 
                 MaterialHelper.BindLightProperties(light, effect, lightIndex);
 

+ 1 - 1
src/Materials/babylon.standardMaterial.ts

@@ -1226,7 +1226,7 @@ module BABYLON {
                 effect.setColor3("vEmissiveColor", this.emissiveColor);
             }
 
-            if (!this.isFrozen) {
+            if (scene.getCachedEffect() !== effect || scene.getCachedMaterial() !== this || !this.isFrozen) {
                 // Diffuse
                 effect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);