]> git.tdb.fi Git - libs/gl.git/commitdiff
Adjust material export and material-based texcoord generation for Blender 2.6
authorMikko Rasa <tdb@tdb.fi>
Sun, 19 Feb 2012 13:57:27 +0000 (15:57 +0200)
committerMikko Rasa <tdb@tdb.fi>
Sun, 19 Feb 2012 13:57:27 +0000 (15:57 +0200)
blender/io_mesh_mspgl/export_mspgl.py
blender/io_mesh_mspgl/mesh.py

index 46f6fcafccf56a558e48d1afb3588d8bbc8aac89..1d7062e68eaa2d5bdca07d500a87549965b953e6 100644 (file)
@@ -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()
index 165c276fd1533c8b8adb89e85c13adddd4cc158d..f8a553530f379841a2bf49884bf71c28597d2fc2 100644 (file)
@@ -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 = []