- 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))
- 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)]))
- mat_res.statements.append(st)
+ if material.type!="pbr" and material.type!="unlit":
+ raise Exception("Can't export material {} of unknown type {}".format(material.name, material.type))
+
+ mat_res.statements.append(Statement("type", Token(material.type)));
+ for p in material.properties:
+ st = self.create_property_statement(mat_res, p, resources)
+ if st:
+ mat_res.statements.append(st)
+ textures = [p.texture for p in material.properties if p.texture]
+ if textures:
+ from .export_texture import SamplerExporter
+ sampler_export = SamplerExporter()
+ mat_res.statements.append(mat_res.create_reference_statement("sampler", resources[sampler_export.get_sampler_name(textures[0])]))