else:
return 1.055*(l**(1/2.4))-0.055
+def image_name(i):
+ fp = i.filepath
+ if fp:
+ return os.path.split(fp)[1]
+ else:
+ return i.name
+
class ObjectExporter:
def __init__(self):
out_file.end()
if self.external_tech and obj.technique:
- out_file.write("technique", '"{}"'.format(obj.technique))
+ if obj.inherit_tech and mesh.materials[0].texture_slots:
+ out_file.begin("technique")
+ out_file.begin("inherit", '"{}"'.format(obj.technique))
+ for slot in mesh.materials[0].texture_slots:
+ if slot and slot.texture.type=="IMAGE":
+ name = image_name(slot.texture.image)
+ if slot.use_map_color_diffuse:
+ out_file.write("texture", '"diffuse_map"', '"{}"'.format(name))
+ elif slot.use_map_normal:
+ out_file.write("texture", '"normal_map"', '"{}"'.format(name))
+ out_file.end()
+ out_file.end()
+ else:
+ out_file.write("technique", '"{}"'.format(obj.technique))
elif self.separate_tech:
path, base = os.path.split(out_file.filename)
if self.shared_tech and mesh.materials:
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]
+ color = [int(cm(c)*255) for c in m.diffuse_color*mat.diffuse_intensity]
texdata += "\\x%02X\\x%02X\\x%02X"%tuple(color)
texdata += '"'
out_file.write("raw_data", texdata)
amb = cm(mat.ambient)
out_file.write("ambient", amb, amb, amb, 1.0)
else:
- diff = mat.diffuse_color
+ diff = mat.diffuse_color*mat.diffuse_intensity
out_file.write("diffuse", cm(diff.r), cm(diff.g), cm(diff.b), 1.0)
amb = diff*mat.ambient
out_file.write("ambient", cm(amb.r), cm(amb.g), cm(amb.b), 1.0)
out_file.write("raw_data", texdata)
out_file.end()
else:
- out_file.write("texture", '"%s"'%tex.image.name)
+ out_file.write("texture", '"%s"'%image_name(tex.image))
out_file.end()
out_file.end()