X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=blender%2Fio_mesh_mspgl%2Fexport_mspgl.py;h=5a1bbe1130be97b39acaf49c067679da4798f070;hb=ccce05f213b3e97e18d88c1665c144df7ed1c218;hp=e2082cb8d04770b1b4c510eaca90c4797114afcc;hpb=203ef7534bcbb98b2cddfe9a52128134e46d4133;p=libs%2Fgl.git diff --git a/blender/io_mesh_mspgl/export_mspgl.py b/blender/io_mesh_mspgl/export_mspgl.py index e2082cb8..5a1bbe11 100644 --- a/blender/io_mesh_mspgl/export_mspgl.py +++ b/blender/io_mesh_mspgl/export_mspgl.py @@ -1,5 +1,3 @@ -# $Id: mesh_export.py 137 2010-12-05 19:22:35Z tdb $ - import bpy class VertexCache: @@ -231,7 +229,7 @@ class Exporter: mesh = None bmeshes = [] for o in objs: - bmesh = o.create_mesh(context.scene, True, "PREVIEW") + bmesh = o.to_mesh(context.scene, True, "PREVIEW") bmeshes.append(bmesh) if not mesh: mesh = Mesh(bmesh) @@ -250,19 +248,28 @@ class Exporter: mesh.generate_material_uv() texunits = [] - if mesh.uv_textures and self.export_uv!="NONE": + if mesh.uv_layers and self.export_uv!="NONE": if self.export_uv=="UNIT0": texunits = [0] else: - texunits = list(range(len(mesh.uv_textures))) + texunits = list(range(len(mesh.uv_layers))) + + tbn_unit = 0 + if self.tbn_vecs: + uvtex_names = [u.name for u in mesh.uv_layers] + if self.tbn_uvtex in uvtex_names: + tbn_unit = uvtex_names.index(uvtex) + del texunits[tbn_unit] + texunits.insert(0, tbn_unit) for i in texunits: progress.set_task("Splitting UVs", 0.35+0.3*i/len(texunits), 0.35+0.3*(i+1)/len(texunits)) mesh.split_uv(i, progress) + if self.tbn_vecs and i==tbn_unit: + mesh.compute_uv() + mesh.compute_tbn(i) mesh.compute_uv() - if self.tbn_vecs: - mesh.compute_tbn(self.tbn_uvtex) strips = [] loose = mesh.faces @@ -286,7 +293,7 @@ class Exporter: fmt += "_VERTEX3" out_file.begin("vertices", fmt) normal = None - uvs = [None]*len(mesh.uv_textures) + uvs = [None]*len(mesh.uv_layers) tan = None bino = None for v in mesh.vertices: @@ -356,12 +363,15 @@ class Exporter: out_file.end() out_file.end() elif mesh.materials: - m = mesh.materials[0] + mat = mesh.materials[0] out_file.begin("material") - out_file.write("diffuse", m.R, m.G, m.B, 1.0) - out_file.write("ambient", m.R*m.amb, m.G*m.amb, m.B*m.amb, 1.0) - out_file.write("specular", m.specR*m.spec, m.specG*m.spec, m.specB*m.spec, 1.0) - out_file.write("shininess", m.hard); + diff = mat.diffuse_color + out_file.write("diffuse", diff.r, diff.g, diff.b, 1.0) + amb = diff*mat.ambient + out_file.write("ambient", amb.r, amb.g, amb.b, 1.0) + spec = mat.specular_color*mat.specular_intensity + out_file.write("specular", spec.r, spec.g, spec.b, 1.0) + out_file.write("shininess", mat.specular_hardness); out_file.end() out_file.end() out_file.end()