]> git.tdb.fi Git - libs/gl.git/blobdiff - blender/io_mspgl/material.py
Remove attribute proxying from Mesh in the Blender exporter
[libs/gl.git] / blender / io_mspgl / material.py
index 54b2c5d823a64300aea352af5545b87273087a7a..470ffc5784e1d4fd0b28d006dfe720863a172257 100644 (file)
@@ -1,8 +1,14 @@
+import os
+
 class MaterialMap:
        def __init__(self, materials):
                self.technique = materials[0].technique
-               self.name = "material_map_"+self.technique
+               if self.technique:
+                       self.name = "material_map_"+os.path.splitext(self.technique)[0]
+               else:
+                       self.name = "material_map"
                self.materials = materials
+               self.material_names = [m.name for m in self.materials]
                self.srgb_colors = materials[0].srgb_colors
                for m in self.materials:
                        if m.technique!=self.technique:
@@ -24,12 +30,12 @@ class MaterialMap:
                cm = get_colormap(self.srgb_colors)
                self.diffuse_data = ""
                for m in self.materials:
-                       diff = [int(cm(c)*255) for c in m.diffuse_color*m.diffuse_intensity]
-                       self.diffuse_data += "\\x{:02X}\\x{:02X}\\x{:02X}\\x{:02X}".format(*diff, int(m.ambient*255))
+                       diff = [int(cm(c)*255) for c in m.diffuse_color]
+                       self.diffuse_data += "\\x{:02X}\\x{:02X}\\x{:02X}\\xFF".format(*diff)
                self.diffuse_data += "\\x00\\x00\\x00\\x00"*(self.size[0]*self.size[1]-count)
 
        def get_material_uv(self, material):
-               index = self.materials.index(material)
+               index = self.material_names.index(material.name)
                x = index%self.size[0]
                y = index//self.size[0]
                return ((x+0.5)/self.size[0], (y+0.5)/self.size[1])