Selaa lähdekoodia

Merge pull request #1385 from garyhsums/fix/use-right-handed-system

Use right handed system for glTF loader
David Catuhe 9 vuotta sitten
vanhempi
commit
cdd0a65245

+ 3 - 1
loaders/glTF/babylon.glTFFileLoader.js

@@ -732,7 +732,6 @@ var BABYLON;
         }
         // Apply geometry
         geometry.setAllVerticesData(vertexData, false);
-        newMesh.flipFaces(true);
         newMesh.computeWorldMatrix(true);
         // Apply submeshes
         newMesh.subMeshes = [];
@@ -1274,6 +1273,7 @@ var BABYLON;
             shaderMaterial.id = mat;
             shaderMaterial.onError = onShaderCompileError(program, shaderMaterial);
             shaderMaterial.onCompiled = onShaderCompileSuccess(gltfRuntime, shaderMaterial, technique, material, unTreatedUniforms);
+            shaderMaterial.sideOrientation = BABYLON.Material.CounterClockWiseSideOrientation;
             if (states.functions) {
                 var functions = states.functions;
                 if (functions.cullFace && functions.cullFace[0] !== BABYLON.ECullingType.BACK) {
@@ -1372,6 +1372,7 @@ var BABYLON;
         * Import meshes
         */
         GLTFFileLoader.prototype.importMesh = function (meshesNames, scene, data, rootUrl, meshes, particleSystems, skeletons) {
+            scene.useRightHandedSystem = true;
             var parsedData = JSON.parse(data);
             var gltfRuntime = this._createGlTFRuntime(parsedData, scene, rootUrl);
             gltfRuntime.importOnlyMeshes = true;
@@ -1411,6 +1412,7 @@ var BABYLON;
         * Load scene
         */
         GLTFFileLoader.prototype.load = function (scene, data, rootUrl) {
+            scene.useRightHandedSystem = true;
             var parsedData = JSON.parse(data);
             var gltfRuntime = this._createGlTFRuntime(parsedData, scene, rootUrl);
             // Create nodes

+ 6 - 2
loaders/glTF/babylon.glTFFileLoader.ts

@@ -788,7 +788,6 @@
         // Apply geometry
         geometry.setAllVerticesData(vertexData, false);
 
-        newMesh.flipFaces(true);
         newMesh.computeWorldMatrix(true);
 
         // Apply submeshes
@@ -1454,7 +1453,8 @@
             shaderMaterial.id = mat;
             shaderMaterial.onError = onShaderCompileError(program, shaderMaterial);
             shaderMaterial.onCompiled = onShaderCompileSuccess(gltfRuntime, shaderMaterial, technique, material, unTreatedUniforms);
-            
+            shaderMaterial.sideOrientation = Material.CounterClockWiseSideOrientation;
+
             if (states.functions) {
                 var functions = states.functions;
                 if (functions.cullFace && functions.cullFace[0] !== ECullingType.BACK) {
@@ -1578,6 +1578,8 @@
         * Import meshes
         */
         public importMesh(meshesNames: any, scene: Scene, data: any, rootUrl: string, meshes: AbstractMesh[], particleSystems: ParticleSystem[], skeletons: Skeleton[]): boolean {
+            scene.useRightHandedSystem = true;
+
             var parsedData = JSON.parse(data);
             var gltfRuntime = this._createGlTFRuntime(parsedData, scene, rootUrl);
             gltfRuntime.importOnlyMeshes = true;
@@ -1626,6 +1628,8 @@
         * Load scene
         */
         public load(scene: Scene, data: string, rootUrl: string): boolean {
+            scene.useRightHandedSystem = true;
+
             var parsedData = JSON.parse(data);
             var gltfRuntime = this._createGlTFRuntime(parsedData, scene, rootUrl);