[Bf-extensions-cvs] [aeb4cb0] master: Fix T41808: FBX exporter does not properly position and rotate group instances

Bastien Montagne noreply at git.blender.org
Sat Sep 13 18:44:21 CEST 2014


Commit: aeb4cb010eb497e3c511edcad05e8d8831a1ca12
Author: Bastien Montagne
Date:   Sat Sep 13 18:40:32 2014 +0200
Branches: master
https://developer.blender.org/rBAaeb4cb010eb497e3c511edcad05e8d8831a1ca12

Fix T41808: FBX exporter does not properly position and rotate group instances

Forward/Up axes to FBX system was still wrong. Not happy with finding such issue
at this stage of development. :/ Hopefully now we are OK (at least, checked
all orientations with same basice file in Unity, all were imported OK).

===================================================================

M	io_scene_fbx/fbx_utils.py
M	io_scene_fbx_experimental/fbx_utils.py

===================================================================

diff --git a/io_scene_fbx/fbx_utils.py b/io_scene_fbx/fbx_utils.py
index d661cea..b751025 100644
--- a/io_scene_fbx/fbx_utils.py
+++ b/io_scene_fbx/fbx_utils.py
@@ -100,31 +100,30 @@ FBX_LIGHT_DECAY_TYPES = {
 
 RIGHT_HAND_AXES = {
     # Up, Front -> FBX values (tuples of (axis, sign), Up, Front, Coord).
-    # Note: Since we always stay in right-handed system, third coord sign is always positive!
-    ('X',  'Y'):  ((0, 1),  (1, -1),  (2, 1)),
-    ('X',  '-Y'): ((0, 1),  (1, 1), (2, 1)),
-    ('X',  'Z'):  ((0, 1),  (2, -1),  (1, 1)),
-    ('X',  '-Z'): ((0, 1),  (2, 1), (1, 1)),
-    ('-X', 'Y'):  ((0, -1), (1, -1),  (2, 1)),
-    ('-X', '-Y'): ((0, -1), (1, 1), (2, 1)),
-    ('-X', 'Z'):  ((0, -1), (2, -1),  (1, 1)),
-    ('-X', '-Z'): ((0, -1), (2, 1), (1, 1)),
-    ('Y',  'X'):  ((1, 1),  (0, -1),  (2, 1)),
-    ('Y',  '-X'): ((1, 1),  (0, 1), (2, 1)),
-    ('Y',  'Z'):  ((1, 1),  (2, -1),  (0, 1)),
-    ('Y',  '-Z'): ((1, 1),  (2, 1), (0, 1)),
-    ('-Y', 'X'):  ((1, -1), (0, -1),  (2, 1)),
-    ('-Y', '-X'): ((1, -1), (0, 1), (2, 1)),
-    ('-Y', 'Z'):  ((1, -1), (2, -1),  (0, 1)),
-    ('-Y', '-Z'): ((1, -1), (2, 1), (0, 1)),
-    ('Z',  'X'):  ((2, 1),  (0, -1),  (1, 1)),
-    ('Z',  '-X'): ((2, 1),  (0, 1), (1, 1)),
-    ('Z',  'Y'):  ((2, 1),  (1, -1),  (0, 1)),  # Blender system!
-    ('Z',  '-Y'): ((2, 1),  (1, 1), (0, 1)),
-    ('-Z', 'X'):  ((2, -1), (0, -1),  (1, 1)),
-    ('-Z', '-X'): ((2, -1), (0, 1), (1, 1)),
-    ('-Z', 'Y'):  ((2, -1), (1, -1),  (0, 1)),
-    ('-Z', '-Y'): ((2, -1), (1, 1), (0, 1)),
+    ('X',  'Y'):  ((0, 1),  (1, 1),  (2, 1)),
+    ('X',  '-Y'): ((0, 1),  (1, -1), (2, -1)),
+    ('X',  'Z'):  ((0, 1),  (2, 1),  (1, -1)),
+    ('X',  '-Z'): ((0, 1),  (2, -1), (1, 1)),
+    ('-X', 'Y'):  ((0, -1), (1, 1),  (2, -1)),
+    ('-X', '-Y'): ((0, -1), (1, -1), (2, 1)),
+    ('-X', 'Z'):  ((0, -1), (2, 1),  (1, 1)),
+    ('-X', '-Z'): ((0, -1), (2, -1), (1, -1)),
+    ('Y',  'X'):  ((1, 1),  (0, 1),  (2, -1)),
+    ('Y',  '-X'): ((1, 1),  (0, -1), (2, 1)),
+    ('Y',  'Z'):  ((1, 1),  (2, 1),  (0, 1)),
+    ('Y',  '-Z'): ((1, 1),  (2, -1), (0, -1)),
+    ('-Y', 'X'):  ((1, -1), (0, 1),  (2, 1)),
+    ('-Y', '-X'): ((1, -1), (0, -1), (2, -1)),
+    ('-Y', 'Z'):  ((1, -1), (2, 1),  (0, -1)),
+    ('-Y', '-Z'): ((1, -1), (2, -1), (0, 1)),
+    ('Z',  'X'):  ((2, 1),  (0, 1),  (1, 1)),
+    ('Z',  '-X'): ((2, 1),  (0, -1), (1, -1)),
+    ('Z',  'Y'):  ((2, 1),  (1, 1),  (0, -1)),
+    ('Z',  '-Y'): ((2, 1),  (1, -1), (0, 1)),  # Blender system!
+    ('-Z', 'X'):  ((2, -1), (0, 1),  (1, -1)),
+    ('-Z', '-X'): ((2, -1), (0, -1), (1, 1)),
+    ('-Z', 'Y'):  ((2, -1), (1, 1),  (0, 1)),
+    ('-Z', '-Y'): ((2, -1), (1, -1), (0, -1)),
 }
 
 
diff --git a/io_scene_fbx_experimental/fbx_utils.py b/io_scene_fbx_experimental/fbx_utils.py
index f0eeca0..369d9ab 100644
--- a/io_scene_fbx_experimental/fbx_utils.py
+++ b/io_scene_fbx_experimental/fbx_utils.py
@@ -100,31 +100,30 @@ FBX_LIGHT_DECAY_TYPES = {
 
 RIGHT_HAND_AXES = {
     # Up, Front -> FBX values (tuples of (axis, sign), Up, Front, Coord).
-    # Note: Since we always stay in right-handed system, third coord sign is always positive!
-    ('X',  'Y'):  ((0, 1),  (1, -1),  (2, 1)),
-    ('X',  '-Y'): ((0, 1),  (1, 1), (2, 1)),
-    ('X',  'Z'):  ((0, 1),  (2, -1),  (1, 1)),
-    ('X',  '-Z'): ((0, 1),  (2, 1), (1, 1)),
-    ('-X', 'Y'):  ((0, -1), (1, -1),  (2, 1)),
-    ('-X', '-Y'): ((0, -1), (1, 1), (2, 1)),
-    ('-X', 'Z'):  ((0, -1), (2, -1),  (1, 1)),
-    ('-X', '-Z'): ((0, -1), (2, 1), (1, 1)),
-    ('Y',  'X'):  ((1, 1),  (0, -1),  (2, 1)),
-    ('Y',  '-X'): ((1, 1),  (0, 1), (2, 1)),
-    ('Y',  'Z'):  ((1, 1),  (2, -1),  (0, 1)),
-    ('Y',  '-Z'): ((1, 1),  (2, 1), (0, 1)),
-    ('-Y', 'X'):  ((1, -1), (0, -1),  (2, 1)),
-    ('-Y', '-X'): ((1, -1), (0, 1), (2, 1)),
-    ('-Y', 'Z'):  ((1, -1), (2, -1),  (0, 1)),
-    ('-Y', '-Z'): ((1, -1), (2, 1), (0, 1)),
-    ('Z',  'X'):  ((2, 1),  (0, -1),  (1, 1)),
-    ('Z',  '-X'): ((2, 1),  (0, 1), (1, 1)),
-    ('Z',  'Y'):  ((2, 1),  (1, -1),  (0, 1)),  # Blender system!
-    ('Z',  '-Y'): ((2, 1),  (1, 1), (0, 1)),
-    ('-Z', 'X'):  ((2, -1), (0, -1),  (1, 1)),
-    ('-Z', '-X'): ((2, -1), (0, 1), (1, 1)),
-    ('-Z', 'Y'):  ((2, -1), (1, -1),  (0, 1)),
-    ('-Z', '-Y'): ((2, -1), (1, 1), (0, 1)),
+    ('X',  'Y'):  ((0, 1),  (1, 1),  (2, 1)),
+    ('X',  '-Y'): ((0, 1),  (1, -1), (2, -1)),
+    ('X',  'Z'):  ((0, 1),  (2, 1),  (1, -1)),
+    ('X',  '-Z'): ((0, 1),  (2, -1), (1, 1)),
+    ('-X', 'Y'):  ((0, -1), (1, 1),  (2, -1)),
+    ('-X', '-Y'): ((0, -1), (1, -1), (2, 1)),
+    ('-X', 'Z'):  ((0, -1), (2, 1),  (1, 1)),
+    ('-X', '-Z'): ((0, -1), (2, -1), (1, -1)),
+    ('Y',  'X'):  ((1, 1),  (0, 1),  (2, -1)),
+    ('Y',  '-X'): ((1, 1),  (0, -1), (2, 1)),
+    ('Y',  'Z'):  ((1, 1),  (2, 1),  (0, 1)),
+    ('Y',  '-Z'): ((1, 1),  (2, -1), (0, -1)),
+    ('-Y', 'X'):  ((1, -1), (0, 1),  (2, 1)),
+    ('-Y', '-X'): ((1, -1), (0, -1), (2, -1)),
+    ('-Y', 'Z'):  ((1, -1), (2, 1),  (0, -1)),
+    ('-Y', '-Z'): ((1, -1), (2, -1), (0, 1)),
+    ('Z',  'X'):  ((2, 1),  (0, 1),  (1, 1)),
+    ('Z',  '-X'): ((2, 1),  (0, -1), (1, -1)),
+    ('Z',  'Y'):  ((2, 1),  (1, 1),  (0, -1)),
+    ('Z',  '-Y'): ((2, 1),  (1, -1), (0, 1)),  # Blender system!
+    ('-Z', 'X'):  ((2, -1), (0, 1),  (1, -1)),
+    ('-Z', '-X'): ((2, -1), (0, -1), (1, 1)),
+    ('-Z', 'Y'):  ((2, -1), (1, 1),  (0, 1)),
+    ('-Z', '-Y'): ((2, -1), (1, -1), (0, -1)),
 }



More information about the Bf-extensions-cvs mailing list