+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:
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])