import os
-def create_technique_resource(material, resources, single_file):
+def create_technique_resource(material, resources):
from .datafile import Resource, Statement
- tech_res = Resource(material.name+".tech")
+ tech_res = Resource(material.name+".tech", "technique")
mat_res = resources[material.name+".mat"]
st = Statement("pass", "")
- if single_file:
- st.sub.append(tech_res.create_embed_statement("material", mat_res))
- else:
- st.sub.append(tech_res.create_reference_statement("material", mat_res))
+ st.sub.append(tech_res.create_embed_statement("material", mat_res))
if material.render_mode=='CUSTOM':
st.sub.append(Statement("shader", material.shader))
class MaterialExporter:
def __init__(self):
- self.single_file = True
self.use_textures = True
+ self.inline_texture_data = False
def create_texture_exporter(self):
from .export_texture import TextureExporter
texture_export = TextureExporter()
- texture_export.inline_data = self.single_file
+ texture_export.inline_data = self.inline_texture_data
return texture_export
def export_technique_resources(self, material, resources):
resources[mat_name] = self.export_material(material, resources=resources)
def export_technique(self, material, *, resources):
- return create_technique_resource(material, resources, self.single_file)
+ return create_technique_resource(material, resources)
def export_material(self, material, *, resources):
from .datafile import Resource, Statement
- mat_res = Resource(material.name+".mat")
+ mat_res = Resource(material.name+".mat", "material")
st = Statement("pbr")
st.sub.append(self.create_property_statement(mat_res, material.base_color, "base_color", resources))
if self.use_textures and prop.texture:
tex_res = resources[prop.texture.image.name+".tex2d"]
fn = os.path.basename(prop.texture.image.filepath)
- if self.single_file:
- raise Exception("Can't export textures to a single file")
- elif prop.texture.default_filter and fn:
+ if prop.texture.default_filter and fn:
return Statement(keyword+"_map", fn)
else:
return mat_res.create_reference_statement(keyword+"_map", tex_res)
class MaterialMapExporter:
def __init__(self):
- self.single_file = True
+ pass
def export_technique_resources(self, material_map, resources):
from .datafile import Resource, Statement, Token
base_color_name = material_map.name+"_base_color.tex2d"
if base_color_name not in resources:
- base_color_res = Resource(base_color_name)
+ base_color_res = Resource(base_color_name, "texture2d")
base_color_res.statements.append(Statement("min_filter", Token('NEAREST')))
base_color_res.statements.append(Statement("mag_filter", Token('NEAREST')))
mat_name = material_map.name+".mat"
if mat_name not in resources:
- mat_res = Resource(mat_name)
+ mat_res = Resource(mat_name, "material")
st = Statement("pbr")
st.sub.append(mat_res.create_reference_statement("base_color_map", base_color_res))
mat_res.statements.append(st)
resources[mat_name] = mat_res
def export_technique(self, material_map, *, resources):
- return create_technique_resource(material_map, resources, self.single_file)
+ return create_technique_resource(material_map, resources)