Преглед изворни кода

Merge pull request #2822 from BabylonJS/master

Nightly
David Catuhe пре 8 година
родитељ
комит
baa70d32ae
67 измењених фајлова са 11696 додато и 11682 уклоњено
  1. 4721 4719
      dist/preview release/babylon.d.ts
  2. 31 31
      dist/preview release/babylon.js
  3. 28 17
      dist/preview release/babylon.max.js
  4. 4721 4719
      dist/preview release/babylon.module.d.ts
  5. 45 45
      dist/preview release/babylon.worker.js
  6. 987 985
      dist/preview release/customConfigurations/minimalGLTFViewer/babylon.d.ts
  7. 48 48
      dist/preview release/customConfigurations/minimalGLTFViewer/babylon.js
  8. 30 19
      dist/preview release/customConfigurations/minimalGLTFViewer/babylon.max.js
  9. 987 985
      dist/preview release/customConfigurations/minimalGLTFViewer/babylon.module.d.ts
  10. 2 2
      dist/preview release/loaders/babylon.glTF2FileLoader.js
  11. 1 1
      dist/preview release/loaders/babylon.glTF2FileLoader.min.js
  12. 2 2
      dist/preview release/loaders/babylon.glTFFileLoader.js
  13. 3 3
      dist/preview release/loaders/babylon.glTFFileLoader.min.js
  14. 0 1
      dist/preview release/materialsLibrary/babylon.cellMaterial.js
  15. 1 1
      dist/preview release/materialsLibrary/babylon.cellMaterial.min.js
  16. 0 1
      dist/preview release/materialsLibrary/babylon.customMaterial.d.ts
  17. 4 5
      dist/preview release/materialsLibrary/babylon.customMaterial.js
  18. 2 2
      dist/preview release/materialsLibrary/babylon.customMaterial.min.js
  19. 0 1
      dist/preview release/materialsLibrary/babylon.furMaterial.js
  20. 1 1
      dist/preview release/materialsLibrary/babylon.furMaterial.min.js
  21. 0 1
      dist/preview release/materialsLibrary/babylon.gradientMaterial.js
  22. 1 1
      dist/preview release/materialsLibrary/babylon.gradientMaterial.min.js
  23. 0 1
      dist/preview release/materialsLibrary/babylon.lavaMaterial.js
  24. 1 1
      dist/preview release/materialsLibrary/babylon.lavaMaterial.min.js
  25. 6 6
      dist/preview release/materialsLibrary/babylon.legacyPbrMaterial.js
  26. 3 3
      dist/preview release/materialsLibrary/babylon.legacyPbrMaterial.min.js
  27. 0 1
      dist/preview release/materialsLibrary/babylon.normalMaterial.js
  28. 1 1
      dist/preview release/materialsLibrary/babylon.normalMaterial.min.js
  29. 0 1
      dist/preview release/materialsLibrary/babylon.shadowOnlyMaterial.js
  30. 1 1
      dist/preview release/materialsLibrary/babylon.shadowOnlyMaterial.min.js
  31. 0 1
      dist/preview release/materialsLibrary/babylon.simpleMaterial.js
  32. 1 1
      dist/preview release/materialsLibrary/babylon.simpleMaterial.min.js
  33. 0 1
      dist/preview release/materialsLibrary/babylon.skyMaterial.js
  34. 1 1
      dist/preview release/materialsLibrary/babylon.skyMaterial.min.js
  35. 0 1
      dist/preview release/materialsLibrary/babylon.terrainMaterial.js
  36. 1 1
      dist/preview release/materialsLibrary/babylon.terrainMaterial.min.js
  37. 0 1
      dist/preview release/materialsLibrary/babylon.triPlanarMaterial.js
  38. 1 1
      dist/preview release/materialsLibrary/babylon.triPlanarMaterial.min.js
  39. 0 1
      dist/preview release/materialsLibrary/babylon.waterMaterial.js
  40. 1 1
      dist/preview release/materialsLibrary/babylon.waterMaterial.min.js
  41. 3 3
      loaders/src/glTF/2.0/babylon.glTFLoader.ts
  42. 0 1
      materialsLibrary/src/cell/babylon.cellMaterial.ts
  43. 5 6
      materialsLibrary/src/custom/babylon.customMaterial.ts
  44. 0 1
      materialsLibrary/src/fur/babylon.furMaterial.ts
  45. 0 1
      materialsLibrary/src/gradient/babylon.gradientMaterial.ts
  46. 0 1
      materialsLibrary/src/lava/babylon.lavaMaterial.ts
  47. 5 6
      materialsLibrary/src/legacyPBR/babylon.legacyPBRMaterial.ts
  48. 2 2
      materialsLibrary/src/legacyPBR/babylon.legacyPbrMaterial.js.include.fx
  49. 1 1
      materialsLibrary/src/legacyPBR/legacyPbrFragmentDeclaration.fx
  50. 1 1
      materialsLibrary/src/legacyPBR/legacyPbrUboDeclaration.fx
  51. 0 1
      materialsLibrary/src/normal/babylon.normalMaterial.ts
  52. 0 1
      materialsLibrary/src/shadowOnly/babylon.shadowOnlyMaterial.ts
  53. 0 1
      materialsLibrary/src/simple/babylon.simpleMaterial.ts
  54. 0 1
      materialsLibrary/src/sky/babylon.skyMaterial.ts
  55. 0 1
      materialsLibrary/src/terrain/babylon.terrainMaterial.ts
  56. 0 1
      materialsLibrary/src/triPlanar/babylon.triPlanarMaterial.ts
  57. 0 1
      materialsLibrary/src/water/babylon.waterMaterial.ts
  58. 24 7
      src/Cameras/Inputs/babylon.arcRotateCameraKeyboardMoveInput.ts
  59. 2 2
      src/Cameras/Inputs/babylon.arcRotateCameraPointersInput.ts
  60. 5 8
      src/Materials/PBR/babylon.pbrBaseMaterial.ts
  61. 0 1
      src/Materials/babylon.materialHelper.ts
  62. 5 6
      src/Materials/babylon.standardMaterial.ts
  63. 7 9
      src/Shaders/ShadersInclude/bumpFragmentFunctions.fx
  64. 1 1
      src/Shaders/ShadersInclude/defaultFragmentDeclaration.fx
  65. 1 1
      src/Shaders/ShadersInclude/defaultUboDeclaration.fx
  66. 1 1
      src/Shaders/ShadersInclude/pbrFragmentDeclaration.fx
  67. 1 1
      src/Shaders/ShadersInclude/pbrUboDeclaration.fx

Разлика између датотеке није приказан због своје велике величине
+ 4721 - 4719
dist/preview release/babylon.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 31 - 31
dist/preview release/babylon.js


Разлика између датотеке није приказан због своје велике величине
+ 28 - 17
dist/preview release/babylon.max.js


Разлика између датотеке није приказан због своје велике величине
+ 4721 - 4719
dist/preview release/babylon.module.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 45 - 45
dist/preview release/babylon.worker.js


Разлика између датотеке није приказан због своје велике величине
+ 987 - 985
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 48 - 48
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.js


Разлика између датотеке није приказан због своје велике величине
+ 30 - 19
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.max.js


Разлика између датотеке није приказан због своје велике величине
+ 987 - 985
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.module.d.ts


+ 2 - 2
dist/preview release/loaders/babylon.glTF2FileLoader.js

@@ -1258,8 +1258,8 @@ var BABYLON;
                 }
                 if (material.normalTexture) {
                     babylonMaterial.bumpTexture = this.loadTexture(material.normalTexture);
-                    babylonMaterial.invertNormalMapX = true;
-                    babylonMaterial.invertNormalMapY = false;
+                    babylonMaterial.invertNormalMapX = !this._babylonScene.useRightHandedSystem;
+                    babylonMaterial.invertNormalMapY = this._babylonScene.useRightHandedSystem;
                     if (material.normalTexture.scale !== undefined) {
                         babylonMaterial.bumpTexture.level = material.normalTexture.scale;
                     }

Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
dist/preview release/loaders/babylon.glTF2FileLoader.min.js


+ 2 - 2
dist/preview release/loaders/babylon.glTFFileLoader.js

@@ -3416,8 +3416,8 @@ var BABYLON;
                 }
                 if (material.normalTexture) {
                     babylonMaterial.bumpTexture = this.loadTexture(material.normalTexture);
-                    babylonMaterial.invertNormalMapX = true;
-                    babylonMaterial.invertNormalMapY = false;
+                    babylonMaterial.invertNormalMapX = !this._babylonScene.useRightHandedSystem;
+                    babylonMaterial.invertNormalMapY = this._babylonScene.useRightHandedSystem;
                     if (material.normalTexture.scale !== undefined) {
                         babylonMaterial.bumpTexture.level = material.normalTexture.scale;
                     }

Разлика између датотеке није приказан због своје велике величине
+ 3 - 3
dist/preview release/loaders/babylon.glTFFileLoader.min.js


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

@@ -38,7 +38,6 @@ var BABYLON;
             _this.CUSTOMUSERLIGHTING = true;
             _this.CELLBASIC = true;
             _this.DEPTHPREPASS = false;
-            _this.USERIGHTHANDEDSYSTEM = false;
             _this.rebuild();
             return _this;
         }

Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
dist/preview release/materialsLibrary/babylon.cellMaterial.min.js


+ 0 - 1
dist/preview release/materialsLibrary/babylon.customMaterial.d.ts

@@ -60,7 +60,6 @@ declare module BABYLON {
         MORPHTARGETS_NORMAL: boolean;
         MORPHTARGETS_TANGENT: boolean;
         NUM_MORPH_INFLUENCERS: number;
-        USERIGHTHANDEDSYSTEM: boolean;
         IMAGEPROCESSING: boolean;
         VIGNETTE: boolean;
         VIGNETTEBLENDMODEMULTIPLY: boolean;

+ 4 - 5
dist/preview release/materialsLibrary/babylon.customMaterial.js

@@ -81,7 +81,6 @@ var BABYLON;
             _this.MORPHTARGETS_NORMAL = false;
             _this.MORPHTARGETS_TANGENT = false;
             _this.NUM_MORPH_INFLUENCERS = 0;
-            _this.USERIGHTHANDEDSYSTEM = false;
             _this.IMAGEPROCESSING = false;
             _this.VIGNETTE = false;
             _this.VIGNETTEBLENDMODEMULTIPLY = false;
@@ -641,7 +640,7 @@ var BABYLON;
                     "mBones",
                     "vClipPlane", "diffuseMatrix", "ambientMatrix", "opacityMatrix", "reflectionMatrix", "emissiveMatrix", "specularMatrix", "bumpMatrix", "lightmapMatrix", "refractionMatrix",
                     "diffuseLeftColor", "diffuseRightColor", "opacityParts", "reflectionLeftColor", "reflectionRightColor", "emissiveLeftColor", "emissiveRightColor", "refractionLeftColor", "refractionRightColor",
-                    "logarithmicDepthConstant", "vNormalReorderParams"
+                    "logarithmicDepthConstant", "vTangentSpaceParams"
                 ];
                 var samplers = ["diffuseSampler", "ambientSampler", "opacitySampler", "reflectionCubeSampler", "reflection2DSampler", "emissiveSampler", "specularSampler", "bumpSampler", "lightmapSampler", "refractionCubeSampler", "refraction2DSampler"];
                 var uniformBuffers = ["Material", "Scene"];
@@ -705,7 +704,7 @@ var BABYLON;
             this._uniformBuffer.addUniform("lightmapMatrix", 16);
             this._uniformBuffer.addUniform("specularMatrix", 16);
             this._uniformBuffer.addUniform("bumpMatrix", 16);
-            this._uniformBuffer.addUniform("vNormalReorderParams", 4);
+            this._uniformBuffer.addUniform("vTangentSpaceParams", 2);
             this._uniformBuffer.addUniform("refractionMatrix", 16);
             this._uniformBuffer.addUniform("vRefractionInfos", 4);
             this._uniformBuffer.addUniform("vSpecularColor", 4);
@@ -797,10 +796,10 @@ var BABYLON;
                             this._uniformBuffer.updateFloat3("vBumpInfos", this._bumpTexture.coordinatesIndex, 1.0 / this._bumpTexture.level, this.parallaxScaleBias);
                             this._uniformBuffer.updateMatrix("bumpMatrix", this._bumpTexture.getTextureMatrix());
                             if (scene._mirroredCameraPosition) {
-                                this._uniformBuffer.updateFloat4("vNormalReorderParams", this.invertNormalMapX ? 0 : 1.0, this.invertNormalMapX ? 1.0 : -1.0, this.invertNormalMapY ? 0 : 1.0, this.invertNormalMapY ? 1.0 : -1.0);
+                                this._uniformBuffer.updateFloat2("vTangentSpaceParams", this.invertNormalMapX ? 1.0 : -1.0, this.invertNormalMapY ? 1.0 : -1.0);
                             }
                             else {
-                                this._uniformBuffer.updateFloat4("vNormalReorderParams", this.invertNormalMapX ? 1.0 : 0, this.invertNormalMapX ? -1.0 : 1.0, this.invertNormalMapY ? 1.0 : 0, this.invertNormalMapY ? -1.0 : 1.0);
+                                this._uniformBuffer.updateFloat2("vTangentSpaceParams", this.invertNormalMapX ? -1.0 : 1.0, this.invertNormalMapY ? -1.0 : 1.0);
                             }
                         }
                         if (this._refractionTexture && StandardMaterial_OldVer.RefractionTextureEnabled) {

Разлика између датотеке није приказан због своје велике величине
+ 2 - 2
dist/preview release/materialsLibrary/babylon.customMaterial.min.js


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

@@ -37,7 +37,6 @@ var BABYLON;
             _this.BonesPerMesh = 0;
             _this.INSTANCES = false;
             _this.HIGHLEVEL = false;
-            _this.USERIGHTHANDEDSYSTEM = false;
             _this.rebuild();
             return _this;
         }

Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
dist/preview release/materialsLibrary/babylon.furMaterial.min.js


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

@@ -68,7 +68,6 @@ var BABYLON;
             _this.NUM_BONE_INFLUENCERS = 0;
             _this.BonesPerMesh = 0;
             _this.INSTANCES = false;
-            _this.USERIGHTHANDEDSYSTEM = false;
             _this.rebuild();
             return _this;
         }

Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
dist/preview release/materialsLibrary/babylon.gradientMaterial.min.js


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

@@ -68,7 +68,6 @@ var BABYLON;
             _this.NUM_BONE_INFLUENCERS = 0;
             _this.BonesPerMesh = 0;
             _this.INSTANCES = false;
-            _this.USERIGHTHANDEDSYSTEM = false;
             _this.rebuild();
             return _this;
         }

Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
dist/preview release/materialsLibrary/babylon.lavaMaterial.min.js


Разлика између датотеке није приказан због своје велике величине
+ 6 - 6
dist/preview release/materialsLibrary/babylon.legacyPbrMaterial.js


Разлика између датотеке није приказан због своје велике величине
+ 3 - 3
dist/preview release/materialsLibrary/babylon.legacyPbrMaterial.min.js


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

@@ -68,7 +68,6 @@ var BABYLON;
             _this.NUM_BONE_INFLUENCERS = 0;
             _this.BonesPerMesh = 0;
             _this.INSTANCES = false;
-            _this.USERIGHTHANDEDSYSTEM = false;
             _this.rebuild();
             return _this;
         }

Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
dist/preview release/materialsLibrary/babylon.normalMaterial.min.js


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

@@ -28,7 +28,6 @@ var BABYLON;
             _this.NUM_BONE_INFLUENCERS = 0;
             _this.BonesPerMesh = 0;
             _this.INSTANCES = false;
-            _this.USERIGHTHANDEDSYSTEM = false;
             _this.rebuild();
             return _this;
         }

Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
dist/preview release/materialsLibrary/babylon.shadowOnlyMaterial.min.js


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

@@ -35,7 +35,6 @@ var BABYLON;
             _this.NUM_BONE_INFLUENCERS = 0;
             _this.BonesPerMesh = 0;
             _this.INSTANCES = false;
-            _this.USERIGHTHANDEDSYSTEM = false;
             _this.rebuild();
             return _this;
         }

Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
dist/preview release/materialsLibrary/babylon.simpleMaterial.min.js


+ 0 - 1
dist/preview release/materialsLibrary/babylon.skyMaterial.js

@@ -26,7 +26,6 @@ var BABYLON;
             _this.FOG = false;
             _this.VERTEXCOLOR = false;
             _this.VERTEXALPHA = false;
-            _this.USERIGHTHANDEDSYSTEM = false;
             _this.rebuild();
             return _this;
         }

Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
dist/preview release/materialsLibrary/babylon.skyMaterial.min.js


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

@@ -37,7 +37,6 @@ var BABYLON;
             _this.NUM_BONE_INFLUENCERS = 0;
             _this.BonesPerMesh = 0;
             _this.INSTANCES = false;
-            _this.USERIGHTHANDEDSYSTEM = false;
             _this.rebuild();
             return _this;
         }

Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
dist/preview release/materialsLibrary/babylon.terrainMaterial.min.js


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

@@ -39,7 +39,6 @@ var BABYLON;
             _this.NUM_BONE_INFLUENCERS = 0;
             _this.BonesPerMesh = 0;
             _this.INSTANCES = false;
-            _this.USERIGHTHANDEDSYSTEM = false;
             _this.rebuild();
             return _this;
         }

Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
dist/preview release/materialsLibrary/babylon.triPlanarMaterial.min.js


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

@@ -41,7 +41,6 @@ var BABYLON;
             _this.FRESNELSEPARATE = false;
             _this.BUMPSUPERIMPOSE = false;
             _this.BUMPAFFECTSREFLECTION = false;
-            _this.USERIGHTHANDEDSYSTEM = false;
             _this.rebuild();
             return _this;
         }

Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
dist/preview release/materialsLibrary/babylon.waterMaterial.min.js


+ 3 - 3
loaders/src/glTF/2.0/babylon.glTFLoader.ts

@@ -1002,7 +1002,7 @@ module BABYLON.GLTF2 {
             if (this._blockPendingTracking) {
                 this.addLoaderNonBlockingPendingData(data);
                 return;
-            }            
+            }
             this._loaderPendingCount++;
         }
 
@@ -1100,8 +1100,8 @@ module BABYLON.GLTF2 {
 
             if (material.normalTexture) {
                 babylonMaterial.bumpTexture = this.loadTexture(material.normalTexture);
-                babylonMaterial.invertNormalMapX = true;
-                babylonMaterial.invertNormalMapY = false;
+                babylonMaterial.invertNormalMapX = !this._babylonScene.useRightHandedSystem;
+                babylonMaterial.invertNormalMapY = this._babylonScene.useRightHandedSystem;
                 if (material.normalTexture.scale !== undefined) {
                     babylonMaterial.bumpTexture.level = material.normalTexture.scale;
                 }

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

@@ -19,7 +19,6 @@ module BABYLON {
         public CUSTOMUSERLIGHTING = true;
         public CELLBASIC = true;
         public DEPTHPREPASS = false;
-        public USERIGHTHANDEDSYSTEM = false;
 
         constructor() {
             super();

+ 5 - 6
materialsLibrary/src/custom/babylon.customMaterial.ts

@@ -63,7 +63,6 @@ module BABYLON {
         public MORPHTARGETS_NORMAL = false;
         public MORPHTARGETS_TANGENT = false;
         public NUM_MORPH_INFLUENCERS = 0;
-        public USERIGHTHANDEDSYSTEM = false;
 
         public IMAGEPROCESSING = false;
         public VIGNETTE = false;
@@ -823,7 +822,7 @@ module BABYLON {
                     "mBones",
                     "vClipPlane", "diffuseMatrix", "ambientMatrix", "opacityMatrix", "reflectionMatrix", "emissiveMatrix", "specularMatrix", "bumpMatrix", "lightmapMatrix", "refractionMatrix",
                     "diffuseLeftColor", "diffuseRightColor", "opacityParts", "reflectionLeftColor", "reflectionRightColor", "emissiveLeftColor", "emissiveRightColor", "refractionLeftColor", "refractionRightColor",
-                    "logarithmicDepthConstant", "vNormalReorderParams"
+                    "logarithmicDepthConstant", "vTangentSpaceParams"
                 ];
 
                 var samplers = ["diffuseSampler", "ambientSampler", "opacitySampler", "reflectionCubeSampler", "reflection2DSampler", "emissiveSampler", "specularSampler", "bumpSampler", "lightmapSampler", "refractionCubeSampler", "refraction2DSampler"]
@@ -900,7 +899,7 @@ module BABYLON {
             this._uniformBuffer.addUniform("lightmapMatrix", 16);
             this._uniformBuffer.addUniform("specularMatrix", 16);
             this._uniformBuffer.addUniform("bumpMatrix", 16);
-            this._uniformBuffer.addUniform("vNormalReorderParams", 4);            
+            this._uniformBuffer.addUniform("vTangentSpaceParams", 2);
             this._uniformBuffer.addUniform("refractionMatrix", 16);
             this._uniformBuffer.addUniform("vRefractionInfos", 4);
             this._uniformBuffer.addUniform("vSpecularColor", 4);
@@ -1016,10 +1015,10 @@ module BABYLON {
                             this._uniformBuffer.updateMatrix("bumpMatrix", this._bumpTexture.getTextureMatrix());
 
                             if (scene._mirroredCameraPosition) {
-                                this._uniformBuffer.updateFloat4("vNormalReorderParams", this.invertNormalMapX ? 0 : 1.0, this.invertNormalMapX ? 1.0 : -1.0, this.invertNormalMapY ? 0 : 1.0, this.invertNormalMapY ? 1.0 : -1.0);
+                                this._uniformBuffer.updateFloat2("vTangentSpaceParams", this.invertNormalMapX ? 1.0 : -1.0, this.invertNormalMapY ? 1.0 : -1.0);
                             } else {
-                                this._uniformBuffer.updateFloat4("vNormalReorderParams", this.invertNormalMapX ? 1.0 : 0, this.invertNormalMapX ? -1.0 : 1.0, this.invertNormalMapY ? 1.0 : 0, this.invertNormalMapY ? -1.0 : 1.0);
-                            }                                                          
+                                this._uniformBuffer.updateFloat2("vTangentSpaceParams", this.invertNormalMapX ? -1.0 : 1.0, this.invertNormalMapY ? -1.0 : 1.0);
+                            }
                         }
 
                         if (this._refractionTexture && StandardMaterial_OldVer.RefractionTextureEnabled) {

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

@@ -18,7 +18,6 @@ module BABYLON {
         public BonesPerMesh = 0;
         public INSTANCES = false;
         public HIGHLEVEL = false;
-        public USERIGHTHANDEDSYSTEM = false;
 
         constructor() {
             super();

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

@@ -49,7 +49,6 @@ module BABYLON {
         public NUM_BONE_INFLUENCERS = 0;
         public BonesPerMesh = 0;
         public INSTANCES = false;
-        public USERIGHTHANDEDSYSTEM = false;
 
         constructor() {
             super();

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

@@ -49,7 +49,6 @@ module BABYLON {
         public NUM_BONE_INFLUENCERS = 0;
         public BonesPerMesh = 0;
         public INSTANCES = false;
-        public USERIGHTHANDEDSYSTEM = false;
 
         constructor() {
             super();

+ 5 - 6
materialsLibrary/src/legacyPBR/babylon.legacyPBRMaterial.ts

@@ -1139,7 +1139,7 @@ module BABYLON {
                         "vSphericalXX", "vSphericalYY", "vSphericalZZ",
                         "vSphericalXY", "vSphericalYZ", "vSphericalZX",
                         "vMicrosurfaceTextureLods",
-                        "vCameraInfos", "vNormalReorderParams"
+                        "vCameraInfos", "vTangentSpaceParams"
                 ];
 
                 var samplers = ["albedoSampler", "ambientSampler", "opacitySampler", "reflectionCubeSampler", "reflection2DSampler", "emissiveSampler", "reflectivitySampler", "microSurfaceSampler", "bumpSampler", "lightmapSampler", "refractionCubeSampler", "refraction2DSampler"];
@@ -1218,7 +1218,7 @@ module BABYLON {
             this._uniformBuffer.addUniform("reflectivityMatrix", 16);
             this._uniformBuffer.addUniform("microSurfaceSamplerMatrix", 16);
             this._uniformBuffer.addUniform("bumpMatrix", 16);
-            this._uniformBuffer.addUniform("vNormalReorderParams", 4);
+            this._uniformBuffer.addUniform("vTangentSpaceParams", 2);
             this._uniformBuffer.addUniform("refractionMatrix", 16);
             this._uniformBuffer.addUniform("reflectionMatrix", 16);
 
@@ -1364,12 +1364,11 @@ module BABYLON {
                             this._uniformBuffer.updateFloat3("vBumpInfos", this.bumpTexture.coordinatesIndex, 1.0 / this.bumpTexture.level, this.parallaxScaleBias);
                             this._uniformBuffer.updateMatrix("bumpMatrix", this.bumpTexture.getTextureMatrix());
 
-
                             if (this._myScene._mirroredCameraPosition) {
-                                this._uniformBuffer.updateFloat4("vNormalReorderParams", this.invertNormalMapX ? 0 : 1.0, this.invertNormalMapX ? 1.0 : -1.0, this.invertNormalMapY ? 0 : 1.0, this.invertNormalMapY ? 1.0 : -1.0);
+                                this._uniformBuffer.updateFloat2("vTangentSpaceParams", this.invertNormalMapX ? 1.0 : -1.0, this.invertNormalMapY ? 1.0 : -1.0);
                             } else {
-                                this._uniformBuffer.updateFloat4("vNormalReorderParams", this.invertNormalMapX ? 1.0 : 0, this.invertNormalMapX ? -1.0 : 1.0, this.invertNormalMapY ? 1.0 : 0, this.invertNormalMapY ? -1.0 : 1.0);
-                            }                              
+                                this._uniformBuffer.updateFloat2("vTangentSpaceParams", this.invertNormalMapX ? -1.0 : 1.0, this.invertNormalMapY ? -1.0 : 1.0);
+                            }
                         }
 
                         if (this.refractionTexture && StandardMaterial.RefractionTextureEnabled) {

Разлика између датотеке није приказан због своје велике величине
+ 2 - 2
materialsLibrary/src/legacyPBR/babylon.legacyPbrMaterial.js.include.fx


+ 1 - 1
materialsLibrary/src/legacyPBR/legacyPbrFragmentDeclaration.fx

@@ -36,7 +36,7 @@ uniform vec3 vAmbientInfos;
 
 #ifdef BUMP
 uniform vec3 vBumpInfos;
-uniform vec4 vNormalReorderParams;
+uniform vec2 vTangentSpaceParams;
 #endif
 
 #ifdef OPACITY	

+ 1 - 1
materialsLibrary/src/legacyPBR/legacyPbrUboDeclaration.fx

@@ -20,7 +20,7 @@ uniform Material
 	uniform mat4 reflectivityMatrix;
 	uniform mat4 microSurfaceSamplerMatrix;
 	uniform mat4 bumpMatrix;
-	uniform vec4 vNormalReorderParams;
+	uniform vec2 vTangentSpaceParams;
 	uniform mat4 refractionMatrix;
 	uniform mat4 reflectionMatrix;
 

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

@@ -49,7 +49,6 @@ module BABYLON {
         public NUM_BONE_INFLUENCERS = 0;
         public BonesPerMesh = 0;
         public INSTANCES = false;
-        public USERIGHTHANDEDSYSTEM = false;
 
         constructor() {
             super();

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

@@ -9,7 +9,6 @@ module BABYLON {
         public NUM_BONE_INFLUENCERS = 0;
         public BonesPerMesh = 0;
         public INSTANCES = false;
-        public USERIGHTHANDEDSYSTEM = false;
 
         constructor() {
             super();

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

@@ -16,7 +16,6 @@ module BABYLON {
         public NUM_BONE_INFLUENCERS = 0;
         public BonesPerMesh = 0;
         public INSTANCES = false;
-        public USERIGHTHANDEDSYSTEM = false;
 
         constructor() {
             super();

+ 0 - 1
materialsLibrary/src/sky/babylon.skyMaterial.ts

@@ -7,7 +7,6 @@ module BABYLON {
         public FOG = false;
         public VERTEXCOLOR = false;
         public VERTEXALPHA = false;
-        public USERIGHTHANDEDSYSTEM = false;
 
         constructor() {
             super();

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

@@ -19,7 +19,6 @@ module BABYLON {
         public NUM_BONE_INFLUENCERS = 0;
         public BonesPerMesh = 0;
         public INSTANCES = false;
-        public USERIGHTHANDEDSYSTEM = false;
 
         constructor() {
             super();

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

@@ -22,7 +22,6 @@ module BABYLON {
         public NUM_BONE_INFLUENCERS = 0;
         public BonesPerMesh = 0;
         public INSTANCES = false;
-        public USERIGHTHANDEDSYSTEM = false;
 
         constructor() {
             super();

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

@@ -22,7 +22,6 @@ module BABYLON {
         public FRESNELSEPARATE = false;
         public BUMPSUPERIMPOSE = false;
         public BUMPAFFECTSREFLECTION = false;
-        public USERIGHTHANDEDSYSTEM = false;
 
         constructor() {
             super();

+ 24 - 7
src/Cameras/Inputs/babylon.arcRotateCameraKeyboardMoveInput.ts

@@ -16,12 +16,19 @@ module BABYLON {
         public keysRight = [39];
 
         @serialize()
-        public keysReset = [111];        
+        public keysReset = [220];
 
         @serialize()
-        public panningSensibility: number = 50.0;        
+        public panningSensibility: number = 300.0;
+
+        @serialize()
+        public zoomingSensibility: number = 50.0;
+
+        @serialize()
+        public useAltToZoom: boolean = true;
 
         private _ctrlPressed: boolean;
+        private _altPressed: boolean;
         private _onCanvasBlurObserver: Observer<Engine>;
         private _onKeyboardObserver: Observer<KeyboardInfo>;
         private _engine: Engine;
@@ -44,7 +51,8 @@ module BABYLON {
 
                 if (info.type === KeyboardEventTypes.KEYDOWN) {
                     this._ctrlPressed = evt.ctrlKey;
-                    
+                    this._altPressed = evt.altKey;
+
                     if (this.keysUp.indexOf(evt.keyCode) !== -1 ||
                         this.keysDown.indexOf(evt.keyCode) !== -1 ||
                         this.keysLeft.indexOf(evt.keyCode) !== -1 ||
@@ -62,7 +70,8 @@ module BABYLON {
                             }
                         }
                     }
-                } else {
+                }
+                else {
                     if (this.keysUp.indexOf(evt.keyCode) !== -1 ||
                         this.keysDown.indexOf(evt.keyCode) !== -1 ||
                         this.keysLeft.indexOf(evt.keyCode) !== -1 ||
@@ -110,19 +119,27 @@ module BABYLON {
                     } else if (this.keysUp.indexOf(keyCode) !== -1) {
                         if (this._ctrlPressed && this.camera._useCtrlForPanning) {
                             camera.inertialPanningY += 1 / this.panningSensibility;
-                        } else {
+                        }
+                        else if (this._altPressed && this.useAltToZoom) {
+                            camera.inertialRadiusOffset -= 1 / this.zoomingSensibility;
+                        }
+                        else {
                             camera.inertialBetaOffset -= 0.01;
                         }
                     } else if (this.keysRight.indexOf(keyCode) !== -1) {
                         if (this._ctrlPressed && this.camera._useCtrlForPanning) {
                             camera.inertialPanningX += 1 / this.panningSensibility;
-                        } else {                        
+                        } else {
                             camera.inertialAlphaOffset += 0.01;
                         }
                     } else if (this.keysDown.indexOf(keyCode) !== -1) {
                         if (this._ctrlPressed && this.camera._useCtrlForPanning) {
                             camera.inertialPanningY -= 1 / this.panningSensibility;
-                        } else {
+                        }
+                        else if (this._altPressed && this.useAltToZoom) {
+                            camera.inertialRadiusOffset += 1 / this.zoomingSensibility;
+                        }
+                        else {
                             camera.inertialBetaOffset += 0.01;
                         }
                     } else if (this.keysReset.indexOf(keyCode) !== -1) {

+ 2 - 2
src/Cameras/Inputs/babylon.arcRotateCameraPointersInput.ts

@@ -17,7 +17,7 @@ module BABYLON {
         public pinchPrecision = 6.0;
 
         @serialize()
-        public panningSensibility: number = 50.0;
+        public panningSensibility: number = 3000.0;
 
         @serialize()
         public multiTouchPanning: boolean = true;
@@ -61,7 +61,7 @@ module BABYLON {
                     }
 
                     // Manage panning with pan button click
-                    this._isPanClick = evt.button === this.camera._panningMouseButton && evt.pointerType !== "mouse";
+                    this._isPanClick = evt.button === this.camera._panningMouseButton;
 
                     // manage pointers
                     cacheSoloPointer = { x: evt.clientX, y: evt.clientY, pointerId: evt.pointerId, type: evt.pointerType };

+ 5 - 8
src/Materials/PBR/babylon.pbrBaseMaterial.ts

@@ -112,7 +112,6 @@
         public USEPHYSICALLIGHTFALLOFF = false;
         public TWOSIDEDLIGHTING = false;
         public SHADOWFLOAT = false;
-        public USERIGHTHANDEDSYSTEM = false;
         public CLIPPLANE = false;
         public POINTSIZE = false;
         public FOG = false;
@@ -740,8 +739,6 @@
                         else {
                             defines.PARALLAX = false;
                         }
-
-                        defines.USERIGHTHANDEDSYSTEM = scene.useRightHandedSystem;
                     } else {
                         defines.BUMP = false;
                     }
@@ -929,7 +926,7 @@
                         "vSphericalXX", "vSphericalYY", "vSphericalZZ",
                         "vSphericalXY", "vSphericalYZ", "vSphericalZX",
                         "vReflectionMicrosurfaceInfos", "vRefractionMicrosurfaceInfos",
-                        "vNormalReorderParams"
+                        "vTangentSpaceParams"
                 ];
 
                 var samplers = ["albedoSampler", "reflectivitySampler", "ambientSampler", "emissiveSampler", 
@@ -1005,7 +1002,7 @@
             this._uniformBuffer.addUniform("reflectivityMatrix", 16);
             this._uniformBuffer.addUniform("microSurfaceSamplerMatrix", 16);
             this._uniformBuffer.addUniform("bumpMatrix", 16);
-            this._uniformBuffer.addUniform("vNormalReorderParams", 4);
+            this._uniformBuffer.addUniform("vTangentSpaceParams", 2);
             this._uniformBuffer.addUniform("refractionMatrix", 16);
             this._uniformBuffer.addUniform("reflectionMatrix", 16);
 
@@ -1142,10 +1139,10 @@
                             MaterialHelper.BindTextureMatrix(this._bumpTexture, this._uniformBuffer, "bump");
 
                             if (scene._mirroredCameraPosition) {
-                                this._uniformBuffer.updateFloat4("vNormalReorderParams", this._invertNormalMapX ? 0 : 1.0, this._invertNormalMapX ? 1.0 : -1.0, this._invertNormalMapY ? 0 : 1.0, this._invertNormalMapY ? 1.0 : -1.0);
+                                this._uniformBuffer.updateFloat2("vTangentSpaceParams", this._invertNormalMapX ? 1.0 : -1.0, this._invertNormalMapY ? 1.0 : -1.0);
                             } else {
-                                this._uniformBuffer.updateFloat4("vNormalReorderParams", this._invertNormalMapX ? 1.0 : 0, this._invertNormalMapX ? -1.0 : 1.0, this._invertNormalMapY ? 1.0 : 0, this._invertNormalMapY ? -1.0 : 1.0);
-                            }                                                         
+                                this._uniformBuffer.updateFloat2("vTangentSpaceParams", this._invertNormalMapX ? -1.0 : 1.0, this._invertNormalMapY ? -1.0 : 1.0);
+                            }
                         }
 
                         if (refractionTexture && StandardMaterial.RefractionTextureEnabled) {

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

@@ -29,7 +29,6 @@
                 defines["LOGARITHMICDEPTH"] = useLogarithmicDepth;
                 defines["POINTSIZE"] = (pointsCloud || scene.forcePointsCloud);
                 defines["FOG"] = (scene.fogEnabled && mesh.applyFog && scene.fogMode !== Scene.FOGMODE_NONE && fogEnabled);
-                defines["USERIGHTHANDEDSYSTEM"] = scene.useRightHandedSystem;
             }
         }
 

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

@@ -69,7 +69,6 @@ module BABYLON {
         public MORPHTARGETS_NORMAL = false;
         public MORPHTARGETS_TANGENT = false;
         public NUM_MORPH_INFLUENCERS = 0;
-        public USERIGHTHANDEDSYSTEM = false;
 
         public IMAGEPROCESSING = false;
         public VIGNETTE = false;
@@ -843,7 +842,7 @@ module BABYLON {
                     "mBones",
                     "vClipPlane", "diffuseMatrix", "ambientMatrix", "opacityMatrix", "reflectionMatrix", "emissiveMatrix", "specularMatrix", "bumpMatrix", "lightmapMatrix", "refractionMatrix",
                     "diffuseLeftColor", "diffuseRightColor", "opacityParts", "reflectionLeftColor", "reflectionRightColor", "emissiveLeftColor", "emissiveRightColor", "refractionLeftColor", "refractionRightColor",
-                    "logarithmicDepthConstant", "vNormalReorderParams"
+                    "logarithmicDepthConstant", "vTangentSpaceParams"
                 ];
 
                 var samplers = ["diffuseSampler", "ambientSampler", "opacitySampler", "reflectionCubeSampler", "reflection2DSampler", "emissiveSampler", "specularSampler", "bumpSampler", "lightmapSampler", "refractionCubeSampler", "refraction2DSampler"]
@@ -920,7 +919,7 @@ module BABYLON {
             this._uniformBuffer.addUniform("lightmapMatrix", 16);
             this._uniformBuffer.addUniform("specularMatrix", 16);
             this._uniformBuffer.addUniform("bumpMatrix", 16);
-            this._uniformBuffer.addUniform("vNormalReorderParams", 4);
+            this._uniformBuffer.addUniform("vTangentSpaceParams", 2);
             this._uniformBuffer.addUniform("refractionMatrix", 16);
             this._uniformBuffer.addUniform("vRefractionInfos", 4);
             this._uniformBuffer.addUniform("vSpecularColor", 4);
@@ -1039,10 +1038,10 @@ module BABYLON {
                             MaterialHelper.BindTextureMatrix(this._bumpTexture, this._uniformBuffer, "bump");
 
                             if (scene._mirroredCameraPosition) {
-                                this._uniformBuffer.updateFloat4("vNormalReorderParams", this.invertNormalMapX ? 0 : 1.0, this.invertNormalMapX ? 1.0 : -1.0, this.invertNormalMapY ? 0 : 1.0, this.invertNormalMapY ? 1.0 : -1.0);
+                                this._uniformBuffer.updateFloat2("vTangentSpaceParams", this.invertNormalMapX ? 1.0 : -1.0, this.invertNormalMapY ? 1.0 : -1.0);
                             } else {
-                                this._uniformBuffer.updateFloat4("vNormalReorderParams", this.invertNormalMapX ? 1.0 : 0, this.invertNormalMapX ? -1.0 : 1.0, this.invertNormalMapY ? 1.0 : 0, this.invertNormalMapY ? -1.0 : 1.0);
-                            }                           
+                                this._uniformBuffer.updateFloat2("vTangentSpaceParams", this.invertNormalMapX ? -1.0 : 1.0, this.invertNormalMapY ? -1.0 : 1.0);
+                            }
                         }
 
                         if (this._refractionTexture && StandardMaterial.RefractionTextureEnabled) {

+ 7 - 9
src/Shaders/ShadersInclude/bumpFragmentFunctions.fx

@@ -27,22 +27,20 @@
 		vec3 dp2perp = cross(dp2, normal);
 		vec3 dp1perp = cross(normal, dp1);
 		vec3 tangent = dp2perp * duv1.x + dp1perp * duv2.x;
-		vec3 binormal = dp2perp * duv1.y + dp1perp * duv2.y;
+		vec3 bitangent = dp2perp * duv1.y + dp1perp * duv2.y;
 
-	#ifdef USERIGHTHANDEDSYSTEM
-		binormal = -binormal;
-	#endif
+		// invert the tangent/bitangent if requested
+		tangent *= vTangentSpaceParams.x;
+		bitangent *= vTangentSpaceParams.y;
 
-		// construct a scale-invariant frame 
-		float invmax = inversesqrt(max(dot(tangent, tangent), dot(binormal, binormal)));
-		return mat3(tangent * invmax, binormal * invmax, normal);
+		// construct a scale-invariant frame
+		float invmax = inversesqrt(max(dot(tangent, tangent), dot(bitangent, bitangent)));
+		return mat3(tangent * invmax, bitangent * invmax, normal);
 	}
 
 	vec3 perturbNormal(mat3 cotangentFrame, vec2 uv)
 	{
 		vec3 map = texture2D(bumpSampler, uv).xyz;
-		map.x = vNormalReorderParams.x + vNormalReorderParams.y * map.x;
-		map.y = vNormalReorderParams.z + vNormalReorderParams.w * map.y;
 
 		map = map * 255. / 127. - 128. / 127.;
 

+ 1 - 1
src/Shaders/ShadersInclude/defaultFragmentDeclaration.fx

@@ -27,7 +27,7 @@ uniform vec2 vLightmapInfos;
 
 #ifdef BUMP
 uniform vec3 vBumpInfos;
-uniform vec4 vNormalReorderParams;
+uniform vec2 vTangentSpaceParams;
 #endif
 
 #if defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_PROJECTION) || defined(REFRACTION)

+ 1 - 1
src/Shaders/ShadersInclude/defaultUboDeclaration.fx

@@ -27,7 +27,7 @@ uniform Material
 	mat4 lightmapMatrix;
 	mat4 specularMatrix;
 	mat4 bumpMatrix; 
-	vec4 vNormalReorderParams;
+	vec4 vTangentSpaceParams;
 	mat4 refractionMatrix;
 	vec4 vRefractionInfos;
 	vec4 vSpecularColor;

+ 1 - 1
src/Shaders/ShadersInclude/pbrFragmentDeclaration.fx

@@ -18,7 +18,7 @@ uniform vec3 vAmbientInfos;
 
 #ifdef BUMP
 uniform vec3 vBumpInfos;
-uniform vec4 vNormalReorderParams;
+uniform vec2 vTangentSpaceParams;
 #endif
 
 #ifdef OPACITY	

+ 1 - 1
src/Shaders/ShadersInclude/pbrUboDeclaration.fx

@@ -20,7 +20,7 @@ uniform Material
 	uniform mat4 reflectivityMatrix;
 	uniform mat4 microSurfaceSamplerMatrix;
 	uniform mat4 bumpMatrix;
-	uniform vec4 vNormalReorderParams;
+	uniform vec2 vTangentSpaceParams;
 	uniform mat4 refractionMatrix;
 	uniform mat4 reflectionMatrix;