else:
return 1.055*(l**(1/2.4))-0.055
+def get_colormap(srgb):
+ if srgb:
+ return linear_to_srgb
+ else:
+ return lambda x: x
+
def image_name(i):
fp = i.filepath
if fp:
class ObjectExporter:
def __init__(self):
- self.material_tex = False
- self.srgb_colors = True
self.textures = "REF"
self.separate_mesh = False
self.shared_mesh = True
return mesh
def export_object_technique(self, obj, mesh, out_file, lod_index):
- if self.srgb_colors:
- self.colormap = linear_to_srgb
- else:
- self.colormap = lambda x: x
-
material = None
if obj.material_slots:
material = obj.material_slots[0].material
mat_name = material.name+".mat"
mat_out = open_output(os.path.join(path, mat_name))
self.export_material(material, mat_out)
- out_file.write("material", '""', '"{}"'.format(mat_name))
+ out_file.write("material", '"surface"', '"{}"'.format(mat_name))
out_file.end()
out_file.end()
else:
out_file.write("technique", '"{}"'.format(name))
else:
out_file.begin("technique")
- self.export_technique_definition(material, mesh, out_file)
+ self.export_technique_definition(material, obj.material_tex, mesh, out_file)
out_file.end()
- def export_technique_definition(self, material, mesh, out_file):
+ def export_technique_definition(self, material, material_tex, mesh, out_file):
out_file.begin("pass", '""')
if material:
- cm = self.colormap
-
- if self.material_tex:
+ if material_tex:
out_file.begin("material")
out_file.write("diffuse", 1.0, 1.0, 1.0, 1.0)
out_file.end()
out_file.write("storage", "RGB", len(mesh.materials), 1)
texdata = '"'
for m in mesh.materials:
- color = [int(cm(c)*255) for c in m.diffuse_color*mat.diffuse_intensity]
+ cm = get_colormap(m.srgb_colors)
+ color = [int(cm(c)*255) for c in m.diffuse_color*m.diffuse_intensity]
texdata += "\\x%02X\\x%02X\\x%02X"%tuple(color)
texdata += '"'
out_file.write("raw_data", texdata)
out_file.end()
def export_material(self, mat, out_file):
- cm = self.colormap
+ cm = get_colormap(mat.srgb_colors)
if any((s and s.use_map_color_diffuse) for s in mat.texture_slots):
out_file.write("diffuse", 1.0, 1.0, 1.0, 1.0)
amb = cm(mat.ambient)