Pārlūkot izejas kodu

Merge pull request #2544 from bghgary/handedness-fix

Fix a few issues with handedness in a number of places
David Catuhe 8 gadi atpakaļ
vecāks
revīzija
a188045900

+ 0 - 1
loaders/src/glTF/2.0/babylon.glTFLoader.ts

@@ -193,7 +193,6 @@ module BABYLON.GLTF2 {
         private _addRightHandToLeftHandRootTransform(): void {
             var rootMesh = new Mesh("root", this._babylonScene);
             rootMesh.scaling = new Vector3(1, 1, -1);
-            rootMesh.rotationQuaternion = new Quaternion(0, 1, 0, 0);
 
             var nodes = this._gltf.nodes;
             for (var i = 0; i < nodes.length; i++) {

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

@@ -581,7 +581,7 @@
                         
                         defines.REFLECTION = true;
                         defines.GAMMAREFLECTION = reflectionTexture.gammaSpace;
-                        defines.REFLECTIONMAP_OPPOSITEZ = reflectionTexture.invertZ;
+                        defines.REFLECTIONMAP_OPPOSITEZ = this.getScene().useRightHandedSystem ? !reflectionTexture.invertZ : reflectionTexture.invertZ;
                         defines.LODINREFLECTIONALPHA = reflectionTexture.lodLevelInAlpha;
 
                         if (reflectionTexture.coordinatesMode === Texture.INVCUBIC_MODE) {

+ 3 - 2
src/babylon.scene.ts

@@ -3715,14 +3715,15 @@
 
                 var camera: TargetCamera;
                 var radius = worldSize.length() * 1.5;
+                var sign = this.useRightHandedSystem ? -1 : 1;
                 if (createArcRotateCamera) {
-                    var arcRotateCamera = new ArcRotateCamera("default camera", 4.712, 1.571, radius, worldCenter, this);
+                    var arcRotateCamera = new ArcRotateCamera("default camera", (Math.PI / 2) * sign, Math.PI / 2, radius, worldCenter, this);
                     arcRotateCamera.lowerRadiusLimit = radius * 0.01;
                     arcRotateCamera.wheelPrecision = 100 / radius;
                     camera = arcRotateCamera;
                 }
                 else {
-                    var freeCamera = new FreeCamera("default camera", new Vector3(worldCenter.x, worldCenter.y, this.useRightHandedSystem ? -radius : radius), this);
+                    var freeCamera = new FreeCamera("default camera", new Vector3(worldCenter.x, worldCenter.y, radius * sign), this);
                     freeCamera.setTarget(worldCenter);
                     camera = freeCamera;
                 }

BIN
tests/validation/ReferenceImages/pbrglossy.png


BIN
tests/validation/ReferenceImages/pbrrough.png