X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=blender%2Fio_mspgl%2Fexport_material.py;h=3f0117d40a210909ce5075ec9b952e68619d661a;hp=86fce780c00b22e151aaa04ee79f0941d2ddf3a8;hb=e891021affc89a329d65b526744ebd38589cae32;hpb=725fccf49be5669a5a74f267eb409bf2fc071e05 diff --git a/blender/io_mspgl/export_material.py b/blender/io_mspgl/export_material.py index 86fce780..3f0117d4 100644 --- a/blender/io_mspgl/export_material.py +++ b/blender/io_mspgl/export_material.py @@ -12,27 +12,26 @@ def get_colormap(srgb): else: return lambda x: x -def image_name(i): - fp = i.filepath - if fp: - return os.path.split(fp)[1] - else: - return i.name - class MaterialExporter: def __init__(self): self.textures = 'REF' - def export_technique_resources(self, material, resources): + def create_texture_exporter(self): from .export_texture import TextureExporter texture_export = TextureExporter() + if self.textures=='INLINE': + texture_export.pixels = 'INLINE' + return texture_export + + def export_technique_resources(self, material, resources): + texture_export = self.create_texture_exporter() mat_name = material.name+".mat" if mat_name not in resources: resources[mat_name] = self.export_material(material) - if self.textures=='INLINE': + if self.textures!='NONE': for s in material.texture_slots: if s and s.texture.type=='IMAGE' and s.texture.image: tex_name = s.texture.name+".tex2d" @@ -59,7 +58,10 @@ class MaterialExporter: st = Statement("inherit", material.technique) for s, t in textures.items(): - st.sub.append(Statement("texture", s, image_name(t.image))) + if t.default_filter: + st.sub.append(Statement("texture", s, image_name(t.image))) + else: + st.sub.append(tech_res.create_reference_statement("texture", s, resources[t.name+".tex2d"])) if material.override_material: st.sub.append(tech_res.create_reference_statement("material", "surface", mat_res)) tech_res.statements.append(st) @@ -69,9 +71,12 @@ class MaterialExporter: if "diffuse_map" in textures: diffuse_tex = textures["diffuse_map"] + tex_res = resources[diffuse_tex.name+".tex2d"] ss = Statement("texunit", 0) if self.textures=='INLINE': - ss.sub.append(tech_res.create_embed_statement("texture2d", resources[diffuse_tex.name+".tex2d"])) + ss.sub.append(tech_res.create_embed_statement("texture2d", tex_res)) + elif not diffuse_tex.default_filter: + ss.sub.append(tech_res.create_reference_statement("texture2d", tex_res)) else: ss.sub.append(Statement("texture", image_name(diffuse_tex.image))) st.sub.append(ss)