]> git.tdb.fi Git - libs/gl.git/commitdiff
Don't try to export a material texture if the mesh has no materials
authorMikko Rasa <tdb@tdb.fi>
Tue, 31 Jul 2012 21:03:27 +0000 (00:03 +0300)
committerMikko Rasa <tdb@tdb.fi>
Tue, 31 Jul 2012 21:03:27 +0000 (00:03 +0300)
blender/io_mesh_mspgl/export_mspgl.py

index 5a1bbe1130be97b39acaf49c067679da4798f070..1046630ba088d1bc8ec191448249c6e7881e9fd6 100644 (file)
@@ -244,7 +244,7 @@ class Exporter:
                if self.smoothing!="BLENDER":
                        mesh.compute_normals()
 
-               if self.material_tex:
+               if self.material_tex and mesh.materials:
                        mesh.generate_material_uv()
 
                texunits = []
@@ -345,34 +345,35 @@ class Exporter:
                        out_file.end()
                        out_file.begin("technique")
                        out_file.begin("pass", '""')
-                       if self.material_tex:
-                               out_file.begin("material")
-                               out_file.write("diffuse", 1.0, 1.0, 1.0, 1.0)
-                               out_file.end()
-                               out_file.begin("texunit", 0)
-                               out_file.begin("texture2d")
-                               out_file.write("min_filter", "NEAREST")
-                               out_file.write("mag_filter", "NEAREST")
-                               out_file.write("storage", "RGB", len(mesh.materials), 1)
-                               texdata = '"'
-                               for m in mesh.materials:
-                                       color = [int(c*255) for c in m.diffuse_color]
-                                       texdata += "\\x%02X\\x%02X\\x%02X"%tuple(color)
-                               texdata += '"'
-                               out_file.write("raw_data", texdata)
-                               out_file.end()
-                               out_file.end()
-                       elif mesh.materials:
-                               mat = mesh.materials[0]
-                               out_file.begin("material")
-                               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()
+                       if mesh.materials:
+                               if self.material_tex:
+                                       out_file.begin("material")
+                                       out_file.write("diffuse", 1.0, 1.0, 1.0, 1.0)
+                                       out_file.end()
+                                       out_file.begin("texunit", 0)
+                                       out_file.begin("texture2d")
+                                       out_file.write("min_filter", "NEAREST")
+                                       out_file.write("mag_filter", "NEAREST")
+                                       out_file.write("storage", "RGB", len(mesh.materials), 1)
+                                       texdata = '"'
+                                       for m in mesh.materials:
+                                               color = [int(c*255) for c in m.diffuse_color]
+                                               texdata += "\\x%02X\\x%02X\\x%02X"%tuple(color)
+                                       texdata += '"'
+                                       out_file.write("raw_data", texdata)
+                                       out_file.end()
+                                       out_file.end()
+                               else:
+                                       mat = mesh.materials[0]
+                                       out_file.begin("material")
+                                       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()