]> git.tdb.fi Git - libs/gl.git/commitdiff
Temporarily remove the material texture feature from Blender exporter
authorMikko Rasa <tdb@tdb.fi>
Wed, 15 May 2019 21:33:00 +0000 (00:33 +0300)
committerMikko Rasa <tdb@tdb.fi>
Wed, 15 May 2019 21:33:00 +0000 (00:33 +0300)
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
blender/io_mspgl/mesh.py
blender/io_mspgl/properties.py

index abe33630ce29b76b6233dd2173d42acfe95adb2a..df5d619a9fd1e2548c3520b1820382c6d59d8be1 100644 (file)
@@ -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
index f357936275ae6d352a5c6ad983dccf4d809c4421..78cae28b22f662d3e0eb2ca9fdbb8073536f7893 100644 (file)
@@ -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)
 
index 1a158598a37619c0207ba51fa6f6098ec982ba98..bc2fb4823f9ace2eed0c8e3962e4b8502ba32aa1 100644 (file)
@@ -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)