[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28926] trunk/blender/release/scripts/io/ export_fbx.py: [#22301] Fix for 22300 : Blender 2.52 FBX exporter doesn' t export correct FBX

Campbell Barton ideasman42 at gmail.com
Sun May 23 08:43:43 CEST 2010


Revision: 28926
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28926
Author:   campbellbarton
Date:     2010-05-23 08:43:43 +0200 (Sun, 23 May 2010)

Log Message:
-----------
[#22301] Fix for 22300 : Blender 2.52 FBX exporter doesn't export correct FBX
patch from Mariusz Borsa (wrotki) 

edited the patch to stay closer to the original function.

Modified Paths:
--------------
    trunk/blender/release/scripts/io/export_fbx.py

Modified: trunk/blender/release/scripts/io/export_fbx.py
===================================================================
--- trunk/blender/release/scripts/io/export_fbx.py	2010-05-23 06:00:08 UTC (rev 28925)
+++ trunk/blender/release/scripts/io/export_fbx.py	2010-05-23 06:43:43 UTC (rev 28926)
@@ -1504,17 +1504,14 @@
         file.write('\n\t\tPolygonVertexIndex: ')
         i=-1
         for f in me.faces:
-            fi = [v for v in f.verts]
-            # fi = [v_index for j, v_index in enumerate(f.verts) if v_index != 0 or j != 3]
-# 			fi = [v.index for v in f]
+            fi = f.verts[:]
 
-            # flip the last index, odd but it looks like
-            # this is how fbx tells one face from another
-            fi[-1] = -(fi[-1]+1)
+            # last index XORd w. -1 indicates end of face
+            fi[-1] = fi[-1] ^ -1
             fi = tuple(fi)
+
             if i==-1:
                 if len(fi) == 3:	file.write('%i,%i,%i' % fi )
-# 				if len(f) == 3:		file.write('%i,%i,%i' % fi )
                 else:				file.write('%i,%i,%i,%i' % fi )
                 i=0
             else:
@@ -1522,10 +1519,26 @@
                     file.write('\n\t\t')
                     i=0
                 if len(fi) == 3:	file.write(',%i,%i,%i' % fi )
-# 				if len(f) == 3:		file.write(',%i,%i,%i' % fi )
                 else:				file.write(',%i,%i,%i,%i' % fi )
             i+=1
 
+        # write loose edges as faces.
+        for ed in me.edges:
+            if ed.loose:
+                ed_val = ed.verts[:]
+                ed_val = ed_val[0], ed_val[-1] ^ -1
+
+                if i==-1:
+                    file.write('%i,%i' % ed_val)
+                    i=0
+                else:
+                    if i==13:
+                        file.write('\n\t\t')
+                        i=0
+                    file.write(',%i,%i' % ed_val)
+            i+=1
+
+
         file.write('\n\t\tEdges: ')
         i=-1
         for ed in me.edges:
@@ -2960,8 +2973,7 @@
     # --------------------------- Footer
     if world:
         m = world.mist
-        has_mist = m.enabled
-# 		has_mist = world.mode & 1
+        has_mist = m.use_mist
         mist_intense = m.intensity
         mist_start = m.start
         mist_end = m.depth





More information about the Bf-blender-cvs mailing list