David Catuhe 7 lat temu
rodzic
commit
ec47654d7f
55 zmienionych plików z 5757 dodań i 5736 usunięć
  1. 517 515
      dist/preview release/babylon.d.ts
  2. 12 12
      dist/preview release/babylon.js
  3. 11 4
      dist/preview release/babylon.max.js
  4. 517 515
      dist/preview release/babylon.module.d.ts
  5. 12 12
      dist/preview release/babylon.worker.js
  6. 2294 2292
      dist/preview release/customConfigurations/minimalGLTFViewer/babylon.d.ts
  7. 13 13
      dist/preview release/customConfigurations/minimalGLTFViewer/babylon.js
  8. 12 7
      dist/preview release/customConfigurations/minimalGLTFViewer/babylon.max.js
  9. 2294 2292
      dist/preview release/customConfigurations/minimalGLTFViewer/babylon.module.d.ts
  10. 1 3
      dist/preview release/materialsLibrary/babylon.backgroundMaterial.js
  11. 1 1
      dist/preview release/materialsLibrary/babylon.backgroundMaterial.min.js
  12. 1 1
      dist/preview release/materialsLibrary/babylon.cellMaterial.js
  13. 1 1
      dist/preview release/materialsLibrary/babylon.cellMaterial.min.js
  14. 1 1
      dist/preview release/materialsLibrary/babylon.customMaterial.js
  15. 2 2
      dist/preview release/materialsLibrary/babylon.customMaterial.min.js
  16. 1 1
      dist/preview release/materialsLibrary/babylon.fireMaterial.js
  17. 1 1
      dist/preview release/materialsLibrary/babylon.fireMaterial.min.js
  18. 1 1
      dist/preview release/materialsLibrary/babylon.furMaterial.js
  19. 1 1
      dist/preview release/materialsLibrary/babylon.furMaterial.min.js
  20. 1 1
      dist/preview release/materialsLibrary/babylon.gradientMaterial.js
  21. 1 1
      dist/preview release/materialsLibrary/babylon.gradientMaterial.min.js
  22. 1 1
      dist/preview release/materialsLibrary/babylon.lavaMaterial.js
  23. 1 1
      dist/preview release/materialsLibrary/babylon.lavaMaterial.min.js
  24. 1 1
      dist/preview release/materialsLibrary/babylon.normalMaterial.js
  25. 1 1
      dist/preview release/materialsLibrary/babylon.normalMaterial.min.js
  26. 1 1
      dist/preview release/materialsLibrary/babylon.shadowOnlyMaterial.js
  27. 1 1
      dist/preview release/materialsLibrary/babylon.shadowOnlyMaterial.min.js
  28. 1 1
      dist/preview release/materialsLibrary/babylon.simpleMaterial.js
  29. 1 1
      dist/preview release/materialsLibrary/babylon.simpleMaterial.min.js
  30. 1 1
      dist/preview release/materialsLibrary/babylon.terrainMaterial.js
  31. 1 1
      dist/preview release/materialsLibrary/babylon.terrainMaterial.min.js
  32. 1 1
      dist/preview release/materialsLibrary/babylon.triPlanarMaterial.js
  33. 1 1
      dist/preview release/materialsLibrary/babylon.triPlanarMaterial.min.js
  34. 1 1
      dist/preview release/materialsLibrary/babylon.waterMaterial.js
  35. 1 1
      dist/preview release/materialsLibrary/babylon.waterMaterial.min.js
  36. 13 15
      dist/preview release/materialsLibrary/babylonjs.materials.js
  37. 7 7
      dist/preview release/materialsLibrary/babylonjs.materials.min.js
  38. 2 7
      materialsLibrary/src/background/babylon.backgroundMaterial.ts
  39. 1 1
      materialsLibrary/src/cell/babylon.cellMaterial.ts
  40. 1 1
      materialsLibrary/src/custom/babylon.customMaterial.ts
  41. 1 1
      materialsLibrary/src/fire/babylon.fireMaterial.ts
  42. 1 1
      materialsLibrary/src/fur/babylon.furMaterial.ts
  43. 1 1
      materialsLibrary/src/gradient/babylon.gradientMaterial.ts
  44. 1 1
      materialsLibrary/src/lava/babylon.lavaMaterial.ts
  45. 1 1
      materialsLibrary/src/normal/babylon.normalMaterial.ts
  46. 1 1
      materialsLibrary/src/shadowOnly/babylon.shadowOnlyMaterial.ts
  47. 1 1
      materialsLibrary/src/simple/babylon.simpleMaterial.ts
  48. 1 1
      materialsLibrary/src/terrain/babylon.terrainMaterial.ts
  49. 1 1
      materialsLibrary/src/triPlanar/babylon.triPlanarMaterial.ts
  50. 1 1
      materialsLibrary/src/water/babylon.waterMaterial.ts
  51. 1 1
      src/Materials/PBR/babylon.pbrBaseMaterial.ts
  52. 8 0
      src/Materials/babylon.materialHelper.ts
  53. 1 3
      src/Materials/babylon.standardMaterial.ts
  54. 3 0
      src/Probes/babylon.reflectionProbe.ts
  55. 1 0
      src/babylon.scene.ts

Plik diff jest za duży
+ 517 - 515
dist/preview release/babylon.d.ts


Plik diff jest za duży
+ 12 - 12
dist/preview release/babylon.js


+ 11 - 4
dist/preview release/babylon.max.js

@@ -26371,6 +26371,13 @@ var BABYLON;
     var MaterialHelper = /** @class */ (function () {
         function MaterialHelper() {
         }
+        MaterialHelper.BindEyePosition = function (effect, scene) {
+            if (scene._forcedViewPosition) {
+                effect.setVector3("vEyePosition", scene._forcedViewPosition);
+                return;
+            }
+            effect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.globalPosition);
+        };
         MaterialHelper.PrepareDefinesForMergedUV = function (texture, defines, key) {
             defines._needUVs = true;
             defines[key] = true;
@@ -34121,9 +34128,7 @@ var BABYLON;
                 BABYLON.MaterialHelper.BindClipPlane(effect, scene);
                 // Colors
                 scene.ambientColor.multiplyToRef(this.ambientColor, this._globalAmbientColor);
-                if (scene.activeCamera) {
-                    effect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.globalPosition);
-                }
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
                 effect.setColor3("vAmbientColor", this._globalAmbientColor);
             }
             if (mustRebind || !this.isFrozen) {
@@ -35680,7 +35685,7 @@ var BABYLON;
                 BABYLON.MaterialHelper.BindClipPlane(this._activeEffect, scene);
                 // Colors
                 scene.ambientColor.multiplyToRef(this._ambientColor, this._globalAmbientColor);
-                var eyePosition = scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.globalPosition;
+                var eyePosition = scene._forcedViewPosition ? scene._forcedViewPosition : (scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.globalPosition);
                 var invertNormal = (scene.useRightHandedSystem === (scene._mirroredCameraPosition != null));
                 effect.setFloat4("vEyePosition", eyePosition.x, eyePosition.y, eyePosition.z, invertNormal ? -1 : 1);
                 effect.setColor3("vAmbientColor", this._globalAmbientColor);
@@ -73645,8 +73650,10 @@ var BABYLON;
                 _this.position.addToRef(_this._add, _this._target);
                 BABYLON.Matrix.LookAtLHToRef(_this.position, _this._target, BABYLON.Vector3.Up(), _this._viewMatrix);
                 scene.setTransformMatrix(_this._viewMatrix, _this._projectionMatrix);
+                scene._forcedViewPosition = _this.position;
             });
             this._renderTargetTexture.onAfterUnbindObservable.add(function () {
+                scene._forcedViewPosition = null;
                 scene.updateTransformMatrix(true);
             });
             if (scene.activeCamera) {

Plik diff jest za duży
+ 517 - 515
dist/preview release/babylon.module.d.ts


Plik diff jest za duży
+ 12 - 12
dist/preview release/babylon.worker.js


Plik diff jest za duży
+ 2294 - 2292
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.d.ts


Plik diff jest za duży
+ 13 - 13
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.js


+ 12 - 7
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.max.js

@@ -26371,6 +26371,13 @@ var BABYLON;
     var MaterialHelper = /** @class */ (function () {
         function MaterialHelper() {
         }
+        MaterialHelper.BindEyePosition = function (effect, scene) {
+            if (scene._forcedViewPosition) {
+                effect.setVector3("vEyePosition", scene._forcedViewPosition);
+                return;
+            }
+            effect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.globalPosition);
+        };
         MaterialHelper.PrepareDefinesForMergedUV = function (texture, defines, key) {
             defines._needUVs = true;
             defines[key] = true;
@@ -34121,9 +34128,7 @@ var BABYLON;
                 BABYLON.MaterialHelper.BindClipPlane(effect, scene);
                 // Colors
                 scene.ambientColor.multiplyToRef(this.ambientColor, this._globalAmbientColor);
-                if (scene.activeCamera) {
-                    effect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.globalPosition);
-                }
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
                 effect.setColor3("vAmbientColor", this._globalAmbientColor);
             }
             if (mustRebind || !this.isFrozen) {
@@ -35680,7 +35685,7 @@ var BABYLON;
                 BABYLON.MaterialHelper.BindClipPlane(this._activeEffect, scene);
                 // Colors
                 scene.ambientColor.multiplyToRef(this._ambientColor, this._globalAmbientColor);
-                var eyePosition = scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.globalPosition;
+                var eyePosition = scene._forcedViewPosition ? scene._forcedViewPosition : (scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.globalPosition);
                 var invertNormal = (scene.useRightHandedSystem === (scene._mirroredCameraPosition != null));
                 effect.setFloat4("vEyePosition", eyePosition.x, eyePosition.y, eyePosition.z, invertNormal ? -1 : 1);
                 effect.setColor3("vAmbientColor", this._globalAmbientColor);
@@ -73645,8 +73650,10 @@ var BABYLON;
                 _this.position.addToRef(_this._add, _this._target);
                 BABYLON.Matrix.LookAtLHToRef(_this.position, _this._target, BABYLON.Vector3.Up(), _this._viewMatrix);
                 scene.setTransformMatrix(_this._viewMatrix, _this._projectionMatrix);
+                scene._forcedViewPosition = _this.position;
             });
             this._renderTargetTexture.onAfterUnbindObservable.add(function () {
+                scene._forcedViewPosition = null;
                 scene.updateTransformMatrix(true);
             });
             if (scene.activeCamera) {
@@ -75936,9 +75943,7 @@ var BABYLON;
                 }
                 // Clip plane
                 BABYLON.MaterialHelper.BindClipPlane(this._activeEffect, scene);
-                var eyePosition = scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.globalPosition;
-                // var invertNormal = (scene.useRightHandedSystem === (scene._mirroredCameraPosition != null));
-                effect.setFloat3("vEyePosition", eyePosition.x, eyePosition.y, eyePosition.z);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             if (mustRebind || !this.isFrozen) {
                 if (scene.lightsEnabled) {

Plik diff jest za duży
+ 2294 - 2292
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.module.d.ts


+ 1 - 3
dist/preview release/materialsLibrary/babylon.backgroundMaterial.js

@@ -671,9 +671,7 @@ var BABYLON;
                 }
                 // Clip plane
                 BABYLON.MaterialHelper.BindClipPlane(this._activeEffect, scene);
-                var eyePosition = scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.globalPosition;
-                // var invertNormal = (scene.useRightHandedSystem === (scene._mirroredCameraPosition != null));
-                effect.setFloat3("vEyePosition", eyePosition.x, eyePosition.y, eyePosition.z);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             if (mustRebind || !this.isFrozen) {
                 if (scene.lightsEnabled) {

Plik diff jest za duży
+ 1 - 1
dist/preview release/materialsLibrary/babylon.backgroundMaterial.min.js


+ 1 - 1
dist/preview release/materialsLibrary/babylon.cellMaterial.js

@@ -199,7 +199,7 @@ var BABYLON;
                 if (this.pointsCloud) {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.position);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             this._activeEffect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);
             // Lights

Plik diff jest za duży
+ 1 - 1
dist/preview release/materialsLibrary/babylon.cellMaterial.min.js


+ 1 - 1
dist/preview release/materialsLibrary/babylon.customMaterial.js

@@ -873,7 +873,7 @@ var BABYLON;
                 BABYLON.MaterialHelper.BindClipPlane(effect, scene);
                 // Colors
                 scene.ambientColor.multiplyToRef(this.ambientColor, this._globalAmbientColor);
-                effect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.position);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
                 effect.setColor3("vAmbientColor", this._globalAmbientColor);
             }
             if (this._mustRebind(scene, effect) || !this.isFrozen) {

Plik diff jest za duży
+ 2 - 2
dist/preview release/materialsLibrary/babylon.customMaterial.min.js


+ 1 - 1
dist/preview release/materialsLibrary/babylon.fireMaterial.js

@@ -186,7 +186,7 @@ var BABYLON;
                 if (this.pointsCloud) {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.position);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             this._activeEffect.setColor4("vDiffuseColor", this._scaledDiffuse, this.alpha * mesh.visibility);
             // View

Plik diff jest za duży
+ 1 - 1
dist/preview release/materialsLibrary/babylon.fireMaterial.min.js


+ 1 - 1
dist/preview release/materialsLibrary/babylon.furMaterial.js

@@ -251,7 +251,7 @@ var BABYLON;
                 if (this.pointsCloud) {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.position);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             this._activeEffect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);
             if (scene.lightsEnabled && !this.disableLighting) {

Plik diff jest za duży
+ 1 - 1
dist/preview release/materialsLibrary/babylon.furMaterial.min.js


+ 1 - 1
dist/preview release/materialsLibrary/babylon.gradientMaterial.js

@@ -213,7 +213,7 @@ var BABYLON;
                 if (this.pointsCloud) {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.position);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             this._activeEffect.setColor4("vDiffuseColor", this._scaledDiffuse, this.alpha * mesh.visibility);
             if (scene.lightsEnabled && !this.disableLighting) {

Plik diff jest za duży
+ 1 - 1
dist/preview release/materialsLibrary/babylon.gradientMaterial.min.js


+ 1 - 1
dist/preview release/materialsLibrary/babylon.lavaMaterial.js

@@ -240,7 +240,7 @@ var BABYLON;
                 if (this.pointsCloud) {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.position);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             this._activeEffect.setColor4("vDiffuseColor", this._scaledDiffuse, this.alpha * mesh.visibility);
             if (scene.lightsEnabled && !this.disableLighting) {

Plik diff jest za duży
+ 1 - 1
dist/preview release/materialsLibrary/babylon.lavaMaterial.min.js


+ 1 - 1
dist/preview release/materialsLibrary/babylon.normalMaterial.js

@@ -226,7 +226,7 @@ var BABYLON;
                 if (this.pointsCloud) {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.position);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             this._activeEffect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);
             // Lights

Plik diff jest za duży
+ 1 - 1
dist/preview release/materialsLibrary/babylon.normalMaterial.min.js


+ 1 - 1
dist/preview release/materialsLibrary/babylon.shadowOnlyMaterial.js

@@ -170,7 +170,7 @@ var BABYLON;
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
                 this._activeEffect.setFloat("alpha", this.alpha);
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.position);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             // Lights
             if (scene.lightsEnabled) {

Plik diff jest za duży
+ 1 - 1
dist/preview release/materialsLibrary/babylon.shadowOnlyMaterial.min.js


+ 1 - 1
dist/preview release/materialsLibrary/babylon.simpleMaterial.js

@@ -193,7 +193,7 @@ var BABYLON;
                 if (this.pointsCloud) {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.position);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             this._activeEffect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);
             // Lights

Plik diff jest za duży
+ 1 - 1
dist/preview release/materialsLibrary/babylon.simpleMaterial.min.js


+ 1 - 1
dist/preview release/materialsLibrary/babylon.terrainMaterial.js

@@ -228,7 +228,7 @@ var BABYLON;
                 if (this.pointsCloud) {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.position);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             this._activeEffect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);
             if (defines.SPECULARTERM) {

Plik diff jest za duży
+ 1 - 1
dist/preview release/materialsLibrary/babylon.terrainMaterial.min.js


+ 1 - 1
dist/preview release/materialsLibrary/babylon.triPlanarMaterial.js

@@ -229,7 +229,7 @@ var BABYLON;
                 if (this.pointsCloud) {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.position);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             this._activeEffect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);
             if (defines.SPECULARTERM) {

Plik diff jest za duży
+ 1 - 1
dist/preview release/materialsLibrary/babylon.triPlanarMaterial.min.js


+ 1 - 1
dist/preview release/materialsLibrary/babylon.waterMaterial.js

@@ -347,7 +347,7 @@ var BABYLON;
                 if (this.pointsCloud) {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.position);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             this._activeEffect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);
             if (defines.SPECULARTERM) {

Plik diff jest za duży
+ 1 - 1
dist/preview release/materialsLibrary/babylon.waterMaterial.min.js


+ 13 - 15
dist/preview release/materialsLibrary/babylonjs.materials.js

@@ -179,7 +179,7 @@ var BABYLON;
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
                 this._activeEffect.setFloat("alpha", this.alpha);
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.position);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             // Lights
             if (scene.lightsEnabled) {
@@ -420,7 +420,7 @@ var BABYLON;
                 if (this.pointsCloud) {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.position);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             this._activeEffect.setColor4("vDiffuseColor", this._scaledDiffuse, this.alpha * mesh.visibility);
             if (scene.lightsEnabled && !this.disableLighting) {
@@ -711,7 +711,7 @@ var BABYLON;
                 if (this.pointsCloud) {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.position);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             this._activeEffect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);
             // Lights
@@ -1030,7 +1030,7 @@ var BABYLON;
                 if (this.pointsCloud) {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.position);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             this._activeEffect.setColor4("vDiffuseColor", this._scaledDiffuse, this.alpha * mesh.visibility);
             if (scene.lightsEnabled && !this.disableLighting) {
@@ -1334,7 +1334,7 @@ var BABYLON;
                 if (this.pointsCloud) {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.position);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             this._activeEffect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);
             // Lights
@@ -1760,7 +1760,7 @@ var BABYLON;
                 if (this.pointsCloud) {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.position);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             this._activeEffect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);
             if (defines.SPECULARTERM) {
@@ -2198,7 +2198,7 @@ var BABYLON;
                 if (this.pointsCloud) {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.position);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             this._activeEffect.setColor4("vDiffuseColor", this._scaledDiffuse, this.alpha * mesh.visibility);
             // View
@@ -2583,7 +2583,7 @@ var BABYLON;
                 if (this.pointsCloud) {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.position);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             this._activeEffect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);
             if (scene.lightsEnabled && !this.disableLighting) {
@@ -3022,7 +3022,7 @@ var BABYLON;
                 if (this.pointsCloud) {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.position);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             this._activeEffect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);
             if (defines.SPECULARTERM) {
@@ -3410,7 +3410,7 @@ var BABYLON;
                 if (this.pointsCloud) {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.position);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             this._activeEffect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);
             if (defines.SPECULARTERM) {
@@ -4847,7 +4847,7 @@ var BABYLON;
                 BABYLON.MaterialHelper.BindClipPlane(effect, scene);
                 // Colors
                 scene.ambientColor.multiplyToRef(this.ambientColor, this._globalAmbientColor);
-                effect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.position);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
                 effect.setColor3("vAmbientColor", this._globalAmbientColor);
             }
             if (this._mustRebind(scene, effect) || !this.isFrozen) {
@@ -6225,7 +6225,7 @@ var BABYLON;
                 if (this.pointsCloud) {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.position);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             this._activeEffect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);
             // Lights
@@ -6978,9 +6978,7 @@ var BABYLON;
                 }
                 // Clip plane
                 BABYLON.MaterialHelper.BindClipPlane(this._activeEffect, scene);
-                var eyePosition = scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.globalPosition;
-                // var invertNormal = (scene.useRightHandedSystem === (scene._mirroredCameraPosition != null));
-                effect.setFloat3("vEyePosition", eyePosition.x, eyePosition.y, eyePosition.z);
+                BABYLON.MaterialHelper.BindEyePosition(effect, scene);
             }
             if (mustRebind || !this.isFrozen) {
                 if (scene.lightsEnabled) {

Plik diff jest za duży
+ 7 - 7
dist/preview release/materialsLibrary/babylonjs.materials.min.js


+ 2 - 7
materialsLibrary/src/background/babylon.backgroundMaterial.ts

@@ -824,13 +824,8 @@ namespace BABYLON {
 
                 // Clip plane
                 MaterialHelper.BindClipPlane(this._activeEffect, scene);
-
-                var eyePosition = scene._mirroredCameraPosition ? scene._mirroredCameraPosition : (<Camera>scene.activeCamera).globalPosition;
-                // var invertNormal = (scene.useRightHandedSystem === (scene._mirroredCameraPosition != null));
-                effect.setFloat3("vEyePosition",
-                    eyePosition.x,
-                    eyePosition.y,
-                    eyePosition.z);
+                
+                MaterialHelper.BindEyePosition(effect, scene);
             }
 
             if (mustRebind || !this.isFrozen) {

+ 1 - 1
materialsLibrary/src/cell/babylon.cellMaterial.ts

@@ -240,7 +240,7 @@ module BABYLON {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
 
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : (<Camera>scene.activeCamera).position);                
+                MaterialHelper.BindEyePosition(effect, scene);               
             }
 
             this._activeEffect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);

+ 1 - 1
materialsLibrary/src/custom/babylon.customMaterial.ts

@@ -1106,7 +1106,7 @@ module BABYLON {
                 // Colors
                 scene.ambientColor.multiplyToRef(this.ambientColor, this._globalAmbientColor);
 
-                effect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : (<Camera>scene.activeCamera).position);
+                MaterialHelper.BindEyePosition(effect, scene);
                 effect.setColor3("vAmbientColor", this._globalAmbientColor);
             }
 

+ 1 - 1
materialsLibrary/src/fire/babylon.fireMaterial.ts

@@ -225,7 +225,7 @@ module BABYLON {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
 
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : (<Camera>scene.activeCamera).position);                
+                MaterialHelper.BindEyePosition(effect, scene);               
             }
 
             this._activeEffect.setColor4("vDiffuseColor", this._scaledDiffuse, this.alpha * mesh.visibility);

+ 1 - 1
materialsLibrary/src/fur/babylon.furMaterial.ts

@@ -321,7 +321,7 @@ module BABYLON {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
 
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : (<Camera>scene.activeCamera).position);                
+                MaterialHelper.BindEyePosition(effect, scene);               
             }
 
             this._activeEffect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);

+ 1 - 1
materialsLibrary/src/gradient/babylon.gradientMaterial.ts

@@ -254,7 +254,7 @@ module BABYLON {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
 
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : (<Camera>scene.activeCamera).position);                
+                MaterialHelper.BindEyePosition(effect, scene);              
             }
 
             this._activeEffect.setColor4("vDiffuseColor", this._scaledDiffuse, this.alpha * mesh.visibility);

+ 1 - 1
materialsLibrary/src/lava/babylon.lavaMaterial.ts

@@ -295,7 +295,7 @@ module BABYLON {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
 
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : (<Camera>scene.activeCamera).position);
+                MaterialHelper.BindEyePosition(effect, scene);
             }
 
             this._activeEffect.setColor4("vDiffuseColor", this._scaledDiffuse, this.alpha * mesh.visibility);

+ 1 - 1
materialsLibrary/src/normal/babylon.normalMaterial.ts

@@ -263,7 +263,7 @@ module BABYLON {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
 
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : (<Camera>scene.activeCamera).position);                
+                MaterialHelper.BindEyePosition(effect, scene);            
             }
 
             this._activeEffect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);

+ 1 - 1
materialsLibrary/src/shadowOnly/babylon.shadowOnlyMaterial.ts

@@ -197,7 +197,7 @@ module BABYLON {
 
                 this._activeEffect.setFloat("alpha", this.alpha);
 
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : (<Camera>scene.activeCamera).position);                
+                MaterialHelper.BindEyePosition(effect, scene);             
             }
 
             // Lights

+ 1 - 1
materialsLibrary/src/simple/babylon.simpleMaterial.ts

@@ -229,7 +229,7 @@ module BABYLON {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
 
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : (<Camera>scene.activeCamera).position);                
+                MaterialHelper.BindEyePosition(effect, scene);            
             }
 
             this._activeEffect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);

+ 1 - 1
materialsLibrary/src/terrain/babylon.terrainMaterial.ts

@@ -300,7 +300,7 @@ module BABYLON {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
 
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : (<Camera>scene.activeCamera).position);                
+                MaterialHelper.BindEyePosition(effect, scene);             
             }
 
             this._activeEffect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);

+ 1 - 1
materialsLibrary/src/triPlanar/babylon.triPlanarMaterial.ts

@@ -300,7 +300,7 @@ module BABYLON {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
 
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : (<Camera>scene.activeCamera).position);                
+                MaterialHelper.BindEyePosition(effect, scene);               
             }
 
             this._activeEffect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);

+ 1 - 1
materialsLibrary/src/water/babylon.waterMaterial.ts

@@ -425,7 +425,7 @@ module BABYLON {
                     this._activeEffect.setFloat("pointSize", this.pointSize);
                 }
 
-                this._activeEffect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : (<Camera>scene.activeCamera).position);
+                MaterialHelper.BindEyePosition(effect, scene);
             }
 
             this._activeEffect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);

+ 1 - 1
src/Materials/PBR/babylon.pbrBaseMaterial.ts

@@ -1265,7 +1265,7 @@
                 // Colors
                 scene.ambientColor.multiplyToRef(this._ambientColor, this._globalAmbientColor);
 
-                var eyePosition = scene._mirroredCameraPosition ? scene._mirroredCameraPosition : (<Camera>scene.activeCamera).globalPosition;
+                var eyePosition = scene._forcedViewPosition ? scene._forcedViewPosition : (scene._mirroredCameraPosition ? scene._mirroredCameraPosition : (<Camera>scene.activeCamera).globalPosition);
                 var invertNormal = (scene.useRightHandedSystem === (scene._mirroredCameraPosition != null));
                 effect.setFloat4("vEyePosition",
                     eyePosition.x,

+ 8 - 0
src/Materials/babylon.materialHelper.ts

@@ -1,6 +1,14 @@
 module BABYLON {
     export class MaterialHelper {
 
+        public static BindEyePosition(effect: Effect, scene: Scene): void {
+            if (scene._forcedViewPosition) {
+                effect.setVector3("vEyePosition", scene._forcedViewPosition);            
+                return;
+            }
+            effect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera!.globalPosition);            
+        }
+
         public static PrepareDefinesForMergedUV(texture: BaseTexture, defines: any, key: string): void {
             defines._needUVs = true;
             defines[key] = true;

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

@@ -1133,9 +1133,7 @@ module BABYLON {
                 // Colors
                 scene.ambientColor.multiplyToRef(this.ambientColor, this._globalAmbientColor);
 
-                if (scene.activeCamera) {
-                    effect.setVector3("vEyePosition", scene._mirroredCameraPosition ? scene._mirroredCameraPosition : scene.activeCamera.globalPosition);
-                }
+                MaterialHelper.BindEyePosition(effect, scene);
                 effect.setColor3("vAmbientColor", this._globalAmbientColor);
             }
 

+ 3 - 0
src/Probes/babylon.reflectionProbe.ts

@@ -50,9 +50,12 @@
                 Matrix.LookAtLHToRef(this.position, this._target, Vector3.Up(), this._viewMatrix);
 
                 scene.setTransformMatrix(this._viewMatrix, this._projectionMatrix);
+
+                scene._forcedViewPosition = this.position;
             });
 
             this._renderTargetTexture.onAfterUnbindObservable.add(() => {
+                scene._forcedViewPosition = null;
                 scene.updateTransformMatrix(true);
             });
 

+ 1 - 0
src/babylon.scene.ts

@@ -809,6 +809,7 @@
         private _alternateTransformMatrix: Matrix;
         private _useAlternateCameraConfiguration = false;
         private _alternateRendering = false;
+        public _forcedViewPosition: Nullable<Vector3>;
 
         public get _isAlternateRenderingEnabled(): boolean {
             return this._alternateRendering;