[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15324] trunk/blender/release/scripts/ DirectX8Exporter.py: [#13635] DirectX8Exporter with vertex colors

Campbell Barton ideasman42 at gmail.com
Mon Jun 23 02:21:56 CEST 2008


Revision: 15324
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15324
Author:   campbellbarton
Date:     2008-06-23 02:21:49 +0200 (Mon, 23 Jun 2008)

Log Message:
-----------
[#13635] DirectX8Exporter with vertex colors
patch from Masaru Nemoto (mnemoto) 

Made some modifications to the patch, use reduce() to get total face verts and some speedup for face vcol looping, also don't write vcol alpha since its used by brushes internally and has no useful meaning.

Modified Paths:
--------------
    trunk/blender/release/scripts/DirectX8Exporter.py

Modified: trunk/blender/release/scripts/DirectX8Exporter.py
===================================================================
--- trunk/blender/release/scripts/DirectX8Exporter.py	2008-06-22 23:21:29 UTC (rev 15323)
+++ trunk/blender/release/scripts/DirectX8Exporter.py	2008-06-23 00:21:49 UTC (rev 15324)
@@ -6,9 +6,9 @@
 # Group: 'Export'
 # Tooltip: 'Export to DirectX text file format format for XNA Animation Component Library.'
 """
-__author__ = "minahito (original:Arben (Ben) Omari)"
-__url__ = ("blender", "blenderartists.org", "Adjuster's site http://sunday-lab.blogspot.com/, Author's site http://www.omariben.too.it")
-__version__ = "3.0"
+__author__ = "vertex color exporting feature is added by mnemoto (original:minahito (original:Arben (Ben) Omari))"
+__url__ = ("blender", "elysiun", "Adjuster's site http://sunday-lab.blogspot.com/, Author's site http://www.omariben.too.it","Adjuster's site http://ex.homeunix.net/")
+__version__ = "3.1"
 
 __bpydoc__ = """\
 This script exports a Blender mesh with armature to DirectX 8's text file
@@ -444,6 +444,7 @@
 		self.writeMeshMaterialList(obj, mesh, tex)
 		self.writeMeshNormals(obj, mesh)
 		self.writeMeshTextureCoords(obj, mesh)
+		self.writeMeshVertexColors(obj, mesh)
 		self.file.write("  }  // End of the Mesh %s \n" % (obj.name))
 		
 					
@@ -464,6 +465,7 @@
 				self.writeMeshMaterialList(obj, mesh, tex)
 				self.writeMeshNormals(obj, mesh)
 				self.writeMeshTextureCoords(obj, mesh)
+				self.writeMeshVertexColors(obj, mesh)
 				self.file.write(" }\n")
 				self.file.write("}\n")
 				ind = objs.index(obj)
@@ -1047,6 +1049,32 @@
 						self.file.write(",\n")
 
 			self.file.write("}  //End of MeshTextureCoords\n")
+
+	#***********************************************
+	#MESH VORTEX COLORS
+	#***********************************************
+	def writeMeshVertexColors(self, name, mesh):
+		if mesh.hasVertexColours():
+			self.file.write("MeshVertexColors {\n")
+			#VERTICES NUMBER
+			numvert = reduce( lambda i,f: len(f)+i, mesh.faces, 0)
+			self.file.write("%d;\n" % (numvert))
+			#VERTEX COLORS
+			
+			vcounter =0
+			for f in mesh.faces:
+				col = f.col
+				for i,c in enumerate(col):
+					# Note vcol alpha has no meaning
+					self.file.write("%d;%f;%f;%f;%f;" % (vcounter,c.r/255.0, c.g/255.0, c.b/255.0, 1.0)) # c.a/255.0))
+					vcounter+=1
+					if vcounter == numvert :
+						self.file.write(";\n")
+					else :
+						self.file.write(",\n")
+
+			self.file.write("}  //End of MeshVertexColors\n")
+
 #***********************************************#***********************************************#***********************************************
 	#***********************************************
 	#FRAMES





More information about the Bf-blender-cvs mailing list