]> git.tdb.fi Git - libs/gl.git/blobdiff - blender/io_mspgl/export_object.py
Add an object property for inheriting the specified technique
[libs/gl.git] / blender / io_mspgl / export_object.py
index 0de98f8446a609692ccd527f8aeddc1bcd599da4..a12474af94bbfe5505a0d7e8d2fd016b1774aebf 100644 (file)
@@ -6,6 +6,13 @@ def linear_to_srgb(l):
        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):
@@ -43,7 +50,20 @@ class ObjectExporter:
                        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:
@@ -133,7 +153,7 @@ class ObjectExporter:
                                                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()