From 171f8e9be4fd17ebc7a467d9a8f959a1bba6b3e6 Mon Sep 17 00:00:00 2001 From: Mikko Rasa Date: Thu, 16 May 2019 00:33:00 +0300 Subject: [PATCH] Temporarily remove the material texture feature from Blender exporter It gets in the way of other improvements and will be replaced by a similar yet different feature later. --- blender/io_mspgl/export_object.py | 35 +++++++------------------------ blender/io_mspgl/mesh.py | 20 ++---------------- blender/io_mspgl/properties.py | 2 -- 3 files changed, 10 insertions(+), 47 deletions(-) diff --git a/blender/io_mspgl/export_object.py b/blender/io_mspgl/export_object.py index abe33630..df5d619a 100644 --- a/blender/io_mspgl/export_object.py +++ b/blender/io_mspgl/export_object.py @@ -82,7 +82,7 @@ class ObjectExporter: if l.technique!=prev_tech[0]: same_tech = False if i==0 or not same_tech: - self.export_object_technique(l, mesh, out_file, i) + self.export_object_technique(l, out_file, i) prev_tech = (l.technique, mat) if i>0: @@ -113,7 +113,7 @@ class ObjectExporter: return mesh - def export_object_technique(self, obj, mesh, out_file, lod_index): + def export_object_technique(self, obj, out_file, lod_index): material = None if obj.material_slots: material = obj.material_slots[0].material @@ -145,38 +145,19 @@ class ObjectExporter: if self.shared_tech and material: name = material.name+".tech" tech_out = open_output(os.path.join(path, name)) - self.export_technique_definition(material, mesh, tech_out) + self.export_technique_definition(material, tech_out) out_file.write("technique", '"{}"'.format(name)) else: out_file.begin("technique") - self.export_technique_definition(material, obj.material_tex, mesh, out_file) + self.export_technique_definition(material, out_file) out_file.end() - def export_technique_definition(self, material, material_tex, mesh, out_file): + def export_technique_definition(self, material, out_file): out_file.begin("pass", '""') if material: - if material_tex: - out_file.begin("material") - out_file.write("diffuse", 1.0, 1.0, 1.0, 1.0) - out_file.end() - out_file.begin("texunit", 0) - out_file.begin("texture2d") - out_file.write("min_filter", "NEAREST") - out_file.write("mag_filter", "NEAREST") - out_file.write("storage", "RGB", len(mesh.materials), 1) - texdata = '"' - for m in mesh.materials: - cm = get_colormap(m.srgb_colors) - color = [int(cm(c)*255) for c in m.diffuse_color*m.diffuse_intensity] - texdata += "\\x%02X\\x%02X\\x%02X"%tuple(color) - texdata += '"' - out_file.write("raw_data", texdata) - out_file.end() - out_file.end() - else: - out_file.begin("material") - self.export_material(material, out_file) - out_file.end() + out_file.begin("material") + self.export_material(material, out_file) + out_file.end() if self.textures!="NONE": diffuse_tex = None diff --git a/blender/io_mspgl/mesh.py b/blender/io_mspgl/mesh.py index f3579362..78cae28b 100644 --- a/blender/io_mspgl/mesh.py +++ b/blender/io_mspgl/mesh.py @@ -387,23 +387,7 @@ class Mesh: for g in v.groups: g.group = group_index_map[g.group] - def prepare_uv(self, obj, progress): - if obj.material_tex and self.use_uv!='NONE': - layer = UvLayer("material_tex") - - if self.use_uv=='UNIT0': - self.uv_layers = [layer] - layer.unit = 0 - else: - self.uv_layers.append(layer) - layer.unit = max((u.unit+1 for u in self.uv_layers if u.unit is not None), default=0) - - layer.uvs = [None]*len(self.loops) - for f in self.faces: - uv = mathutils.Vector(((f.material_index+0.5)/len(self.materials), 0.5)) - for i in f.loop_indices: - layer.uvs[i] = uv - + def prepare_uv(self, progress): # Form a list of UV layers referenced by materials with the array atlas # property set array_uv_layers = [t.uv_layer for m in self.materials if m.array_atlas for t in m.texture_slots if t and t.texture_coords=='UV'] @@ -796,7 +780,7 @@ def create_mesh_from_object(context, obj, progress): progress.set_task("Vertex groups", 0.5, 0.6) mesh.prepare_vertex_groups(obj) progress.set_task("Preparing UVs", 0.6, 0.8) - mesh.prepare_uv(obj, progress) + mesh.prepare_uv(progress) progress.set_task("Render sequence", 0.8, 1.0) mesh.prepare_sequence(progress) diff --git a/blender/io_mspgl/properties.py b/blender/io_mspgl/properties.py index 1a158598..bc2fb482 100644 --- a/blender/io_mspgl/properties.py +++ b/blender/io_mspgl/properties.py @@ -47,7 +47,6 @@ class MspGLObjectProperties(bpy.types.Panel): self.layout.prop(obj, "inherit_tech") if obj.inherit_tech: self.layout.prop(obj, "override_material") - self.layout.prop(obj, "material_tex") self.layout.prop(obj, "compound") self.layout.prop(obj, "lod_for_parent") if obj.lod_for_parent: @@ -93,7 +92,6 @@ def register_properties(): bpy.types.Object.technique = bpy.props.StringProperty(name="Technique", description="Name of the technique to use for rendering") bpy.types.Object.inherit_tech = bpy.props.BoolProperty(name="Inherit technique", description="Inherit from the technique to customize textures") bpy.types.Object.override_material = bpy.props.BoolProperty(name="Override material", description="Override material in the inherited technique as well", default=True) - bpy.types.Object.material_tex = bpy.props.BoolProperty(name="Material texture", description="Generate a texture based on material colors", default=False) bpy.types.Object.compound = bpy.props.BoolProperty(name="Compound with parent", description="Join this object to its parent when exporting") bpy.types.Object.lod_for_parent = bpy.props.BoolProperty(name="LoD for parent", description="This object is a level of detail for its parent") bpy.types.Object.lod_index = bpy.props.IntProperty(name="LoD index", description="Index of the level of detail", min=1, max=16, default=1) -- 2.45.2