[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3270] contrib/py/scripts/addons/ io_scene_cod: Added option to export vertex colors as alpha transparency ( not necessarily grayscale colors, simple luminance conversion is used).

Sebastian Nell codemanx at gmx.de
Mon Apr 16 00:54:40 CEST 2012


Revision: 3270
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3270
Author:   codemanx
Date:     2012-04-15 22:54:39 +0000 (Sun, 15 Apr 2012)
Log Message:
-----------
Added option to export vertex colors as alpha transparency (not necessarily grayscale colors, simple luminance conversion is used). Needed for custom, waving models to using CoD's flag shader. Would be nicer if Blender had vcol alpha support. Furthermore, minor style clean-ups.

Modified Paths:
--------------
    contrib/py/scripts/addons/io_scene_cod/__init__.py
    contrib/py/scripts/addons/io_scene_cod/export_xanim.py
    contrib/py/scripts/addons/io_scene_cod/export_xmodel.py
    contrib/py/scripts/addons/io_scene_cod/import_xanim.py
    contrib/py/scripts/addons/io_scene_cod/import_xmodel.py

Modified: contrib/py/scripts/addons/io_scene_cod/__init__.py
===================================================================
--- contrib/py/scripts/addons/io_scene_cod/__init__.py	2012-04-15 17:42:05 UTC (rev 3269)
+++ contrib/py/scripts/addons/io_scene_cod/__init__.py	2012-04-15 22:54:39 UTC (rev 3270)
@@ -34,7 +34,7 @@
 bl_info = {
     "name": "Blender-CoD - Add-On for Call of Duty modding (alpha 3)",
     "author": "CoDEmanX, Flybynyt",
-    "version": (0, 3, 4),
+    "version": (0, 3, 5),
     "blender": (2, 62, 3),
     "location": "File > Import  |  File > Export",
     "description": "Export models to *.XMODEL_EXPORT and animations to *.XANIM_EXPORT",
@@ -159,6 +159,12 @@
         default=True
         )
 
+    use_vertex_colors_alpha = BoolProperty(
+        name="As alpha",
+        description="Turn RGB vertex colors into grayscale (average value) and use it as alpha transparency. White is 1 (opaque), black 0 (invisible)",
+        default=False
+        )
+
     use_apply_modifiers = BoolProperty(
         name="Apply Modifiers",
         description="Apply all mesh modifiers except Armature (preview resolution)",
@@ -252,10 +258,6 @@
         col.enabled = bool(meshes_selected)
 
         col = layout.column(align=True)
-        col.active = self.use_version == '6'
-        col.prop(self, "use_vertex_colors")
-
-        col = layout.column(align=True)
         col.prop(self, "use_apply_modifiers")
 
         col = layout.column(align=True)
@@ -265,6 +267,15 @@
         else:
             col.prop(self, "use_armature")
 
+        if self.use_version == '6':
+
+            row = layout.row(align=True)
+            row.prop(self, "use_vertex_colors")
+
+            sub = row.split()
+            sub.active = self.use_vertex_colors
+            sub.prop(self, "use_vertex_colors_alpha")
+
         col = layout.column(align=True)
         col.label("Advanced:")
 

Modified: contrib/py/scripts/addons/io_scene_cod/export_xanim.py
===================================================================
--- contrib/py/scripts/addons/io_scene_cod/export_xanim.py	2012-04-15 17:42:05 UTC (rev 3269)
+++ contrib/py/scripts/addons/io_scene_cod/export_xanim.py	2012-04-15 22:54:39 UTC (rev 3270)
@@ -40,8 +40,7 @@
          use_frame_start=1,
          use_frame_end=250,
          use_notetrack=True,
-         use_notetrack_format='1'
-         ):
+         use_notetrack_format='1'):
 
     armature = None
     last_frame_current = context.scene.frame_current

Modified: contrib/py/scripts/addons/io_scene_cod/export_xmodel.py
===================================================================
--- contrib/py/scripts/addons/io_scene_cod/export_xmodel.py	2012-04-15 17:42:05 UTC (rev 3269)
+++ contrib/py/scripts/addons/io_scene_cod/export_xmodel.py	2012-04-15 22:54:39 UTC (rev 3270)
@@ -35,16 +35,16 @@
 def save(self, context, filepath="",
          use_version='6',
          use_selection=False,
-         use_vertex_colors=True,
          use_apply_modifiers=True,
          use_armature=True,
+         use_vertex_colors=True,
+         use_vertex_colors_alpha=False,
          use_vertex_cleanup=False,
          use_armature_pose=False,
          use_frame_start=1,
          use_frame_end=250,
          use_weight_min=False,
-         use_weight_min_threshold=0.010097
-         ):
+         use_weight_min_threshold=0.010097):
 
     # There's no context object right after object deletion, need to set one
     if context.object:
@@ -77,14 +77,14 @@
         result = _write(self, context, filepath,
                         use_version,
                         use_selection,
-                        use_vertex_colors,
                         use_apply_modifiers,
                         use_armature,
+                        use_vertex_colors,
+                        use_vertex_colors_alpha,
                         use_vertex_cleanup,
                         use_armature_pose,
                         use_weight_min,
-                        use_weight_min_threshold
-                        )
+                        use_weight_min_threshold)
     else:
 
         if use_frame_start < use_frame_end:
@@ -105,8 +105,8 @@
                                               use_frame_end + frame_order,
                                               frame_order
                                               ),
-                                        frame_min
-                                        ):
+                                        frame_min):
+
             # Set frame for export
             # Don't do it directly to frame_current, as to_mesh() won't use updated frame!
             context.scene.frame_set(frame)
@@ -117,9 +117,10 @@
             result = _write(self, context, filepath_frame,
                             use_version,
                             use_selection,
-                            use_vertex_colors,
                             use_apply_modifiers,
                             use_armature,
+                            use_vertex_colors,
+                            use_vertex_colors_alpha,
                             use_vertex_cleanup,
                             use_armature_pose,
                             use_weight_min,
@@ -143,14 +144,14 @@
 def _write(self, context, filepath,
            use_version,
            use_selection,
-           use_vertex_colors,
            use_apply_modifiers,
            use_armature,
+           use_vertex_colors,
+           use_vertex_colors_alpha,
            use_vertex_cleanup,
            use_armature_pose,
            use_weight_min,
-           use_weight_min_threshold
-           ):
+           use_weight_min_threshold):
 
     num_verts = 0
     num_verts_unique = 0
@@ -568,7 +569,14 @@
                             else:
                                 c = col.color4
 
-                            file.write("COLOR %.6f %.6f %.6f 1.000000\n" % (c[0], c[1], c[2]))
+                            if use_vertex_colors_alpha:
+
+                                # Turn RGB into grayscale (luminance conversion)
+                                c_lum = c[0] * 0.3 + c[1] * 0.59 + c[2] * 0.11
+                                file.write("COLOR 1.000000 1.000000 1.000000 %.6f\n" % c_lum)
+                            else:
+                                file.write("COLOR %.6f %.6f %.6f 1.000000\n" % (c[0], c[1], c[2]))
+
                         else:
                             file.write("COLOR 1.000000 1.000000 1.000000 1.000000\n")
 

Modified: contrib/py/scripts/addons/io_scene_cod/import_xanim.py
===================================================================
--- contrib/py/scripts/addons/io_scene_cod/import_xanim.py	2012-04-15 17:42:05 UTC (rev 3269)
+++ contrib/py/scripts/addons/io_scene_cod/import_xanim.py	2012-04-15 22:54:39 UTC (rev 3270)
@@ -32,4 +32,7 @@
 """
 
 def load(self, context, **keywords):
-	return {'FINISHED'}
+
+    #filepath = os.fsencode(filepath)
+
+    return {'FINISHED'}

Modified: contrib/py/scripts/addons/io_scene_cod/import_xmodel.py
===================================================================
--- contrib/py/scripts/addons/io_scene_cod/import_xmodel.py	2012-04-15 17:42:05 UTC (rev 3269)
+++ contrib/py/scripts/addons/io_scene_cod/import_xmodel.py	2012-04-15 22:54:39 UTC (rev 3270)
@@ -49,6 +49,8 @@
 
 def load(self, context, filepath=""):
 
+    filepath = os.fsencode(filepath)
+
     test_0 = []
     test_1 = []
     test_2 = []



More information about the Bf-extensions-cvs mailing list