瀏覽代碼

Fix in normals calculations when Y is up axis.

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@8528 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
Kae..pl 14 年之前
父節點
當前提交
ae739ef441
共有 1 個文件被更改,包括 7 次插入2 次删除
  1. 7 2
      engine/src/blender/com/jme3/scene/plugins/blender/meshes/MeshHelper.java

+ 7 - 2
engine/src/blender/com/jme3/scene/plugins/blender/meshes/MeshHelper.java

@@ -194,7 +194,12 @@ public class MeshHelper extends AbstractBlenderHelper {
             int v3 = ((Number) mFace.getFieldValue("v3")).intValue();
             int v4 = ((Number) mFace.getFieldValue("v4")).intValue();
 
-            Vector3f n = FastMath.computeNormal(vertices[v1], vertices[v2], vertices[v3]);
+            Vector3f n;
+            if(fixUpAxis) {
+            	n = FastMath.computeNormal(vertices[v1], vertices[v3], vertices[v2]);
+            } else {
+            	n = FastMath.computeNormal(vertices[v1], vertices[v2], vertices[v3]);
+            }
             this.addNormal(n, normalMap, smooth, vertices[v1], vertices[v2], vertices[v3]);
             normalList.add(normalMap.get(vertices[v1]));
             normalList.add(normalMap.get(vertices[v2]));
@@ -489,7 +494,7 @@ public class MeshHelper extends AbstractBlenderHelper {
      *             this exception is thrown when the blend file structure is somehow invalid or corrupted
      */
     @SuppressWarnings("unchecked")
-    public Vector3f[] getVertices(Structure meshStructure, BlenderContext blenderContext) throws BlenderFileException {
+    private Vector3f[] getVertices(Structure meshStructure, BlenderContext blenderContext) throws BlenderFileException {
         int verticesAmount = ((Number) meshStructure.getFieldValue("totvert")).intValue();
         Vector3f[] vertices = new Vector3f[verticesAmount];
         if (verticesAmount == 0) {