From 8b8361a2bb9bb377f222408ec59422bd33cfd64f Mon Sep 17 00:00:00 2001 From: Mikko Rasa Date: Sun, 19 Feb 2012 15:57:27 +0200 Subject: [PATCH] Adjust material export and material-based texcoord generation for Blender 2.6 --- blender/io_mesh_mspgl/export_mspgl.py | 13 ++++++++----- blender/io_mesh_mspgl/mesh.py | 8 ++++++-- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/blender/io_mesh_mspgl/export_mspgl.py b/blender/io_mesh_mspgl/export_mspgl.py index 46f6fcaf..1d7062e6 100644 --- a/blender/io_mesh_mspgl/export_mspgl.py +++ b/blender/io_mesh_mspgl/export_mspgl.py @@ -363,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() diff --git a/blender/io_mesh_mspgl/mesh.py b/blender/io_mesh_mspgl/mesh.py index 165c276f..f8a55353 100644 --- a/blender/io_mesh_mspgl/mesh.py +++ b/blender/io_mesh_mspgl/mesh.py @@ -99,6 +99,10 @@ class Line: self.flag = False +class FakeUvTex: + def __init__(self, n): + self.name = n + def uvtex_unit_number(uvtex): dot = uvtex.name.find('.') if dot!=-1 and uvtex.name[dot+1:dot+5]=="unit" and uvtex.name[dot+5:].isdigit(): @@ -181,9 +185,9 @@ class Mesh: e.check_smooth(1) def generate_material_uv(self): + self.uv_textures.append(FakeUvTex("material_tex")) for f in self.faces: - f.uv = ([(f.material_index+0.5)/len(self.materials), 0.5],)*len(f.vertices) - self.has_uv = True + f.uvs.append([((f.material_index+0.5)/len(self.materials), 0.5)]*len(f.vertices)) def split_vertices(self, find_group_func, progress, *args): groups = [] -- 2.45.2