X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=blender%2Fio_mspgl%2Fexport_material.py;h=7f36beeb4016972acf9e72a052fa0c56f79ba010;hb=f2d504006ec97c7d84e8059c48f5a37e005ece5f;hp=36dbdc690696346b544e2e367518859df60da693;hpb=26b48751894c71b94ccf46bdf864d30fc29fa739;p=libs%2Fgl.git diff --git a/blender/io_mspgl/export_material.py b/blender/io_mspgl/export_material.py index 36dbdc69..7f36beeb 100644 --- a/blender/io_mspgl/export_material.py +++ b/blender/io_mspgl/export_material.py @@ -1,5 +1,5 @@ def create_shadow_method(tech_res, material, resources, detail): - from .datafile import Statement + from .datafile import Statement, Token color_prop = next((p for p in material.properties if p.keyword and "color" in p.keyword), None) @@ -24,6 +24,9 @@ def create_shadow_method(tech_res, material, resources, detail): else: st.sub.append(Statement("shader", "occluder{}.glsl.shader".format(detail))) + if material.face_cull=='BACK': + st.sub.append(Statement("face_cull", Token("CULL_BACK"))) + return st; def create_technique_resource(material, resources): @@ -60,6 +63,9 @@ def create_technique_resource(material, resources): ss.sub.append(Statement("uniform", u.name, *u.values[:u.size])) st.sub.append(ss) + if material.face_cull=='BACK': + st.sub.append(Statement("face_cull", Token("CULL_BACK"))) + tech_res.statements.append(st) else: base_method = "blended" if material.blend_type!='NONE' else "" @@ -73,6 +79,8 @@ def create_technique_resource(material, resources): st.sub.append(Statement("receive_shadows", True)) if material.image_based_lighting: st.sub.append(Statement("image_based_lighting", True)) + if material.face_cull=='BACK': + st.sub.append(Statement("face_cull", Token("CULL_BACK"))) tech_res.statements.append(st) @@ -173,42 +181,3 @@ class MaterialExporter: shader_res.statements.append(st) return shader_res - - -class MaterialAtlasExporter: - def __init__(self): - pass - - def export_technique_resources(self, material_atlas, resources): - from .datafile import Resource, Statement, Token - base_color_name = material_atlas.name+"_base_color.tex" - base_color_res = resources.get(base_color_name) - if not base_color_res: - base_color_res = Resource(base_color_name, "texture") - - base_color_res.statements.append(Statement("type", Token("\\2d"))) - base_color_res.statements.append(Statement("storage", Token('SRGB_ALPHA'), *material_atlas.size)) - base_color_res.statements.append(Statement("raw_data", material_atlas.base_color_data)) - - resources[base_color_name] = base_color_res - - sampler_name = "nearest.samp" - sampler_res = resources.get(sampler_name) - if not sampler_res: - sampler_res = Resource(sampler_name, "sampler") - - sampler_res.statements.append(Statement("filter", Token('NEAREST'))) - - resources[sampler_name] = sampler_res - - mat_name = material_atlas.name+".mat" - if mat_name not in resources: - mat_res = Resource(mat_name, "material") - mat_res.statements.append(Statement("type", Token('pbr'))) - mat_res.statements.append(mat_res.create_reference_statement("base_color_map", base_color_res)) - mat_res.statements.append(mat_res.create_reference_statement("sampler", sampler_res)) - - resources[mat_name] = mat_res - - def export_technique(self, material_atlas, resources): - return create_technique_resource(material_atlas, resources)