- mat_res = Resource(material.name+".mat")
-
- st = Statement("pbr")
- st.sub.append(self.create_property_statement(mat_res, material.base_color, "base_color", resources))
- st.sub.append(self.create_property_statement(mat_res, material.metalness, "metalness", resources))
- st.sub.append(self.create_property_statement(mat_res, material.roughness, "roughness", resources))
- st.sub.append(self.create_property_statement(mat_res, material.normal, "normal", resources, tex_only=True))
- st.sub.append(self.create_property_statement(mat_res, material.emission, "emission", resources))
+ mat_res = Resource(material.name+".mat", "material")
+
+ if material.type!="pbr" and material.type!="unlit":
+ raise Exception("Can't export unknown material type "+material.type)
+
+ st = Statement(material.type)
+ for p in material.properties:
+ ss = self.create_property_statement(mat_res, p, resources)
+ if ss:
+ st.sub.append(ss)
+ if self.use_textures:
+ first_tex = (p.texture for p in material.properties if p.texture).__next__()
+ if first_tex and not first_tex.default_filter:
+ from .export_texture import SamplerExporter
+ sampler_export = SamplerExporter()
+ st.sub.append(mat_res.create_reference_statement("sampler", resources[sampler_export.get_sampler_name(first_tex)]))