X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=blender%2Fio_mspgl%2Fexport_scene.py;h=0557073ce826bffbf26960e606afed90fc624cf2;hb=b7578c64755c203c1bbfbe539f29e68544dd1b17;hp=8666e98beee0ef9489557d28da89fdcf788ee036;hpb=f44366c8785eb7a88755cd71250a8b85289eeed2;p=libs%2Fgl.git diff --git a/blender/io_mspgl/export_scene.py b/blender/io_mspgl/export_scene.py index 8666e98b..0557073c 100644 --- a/blender/io_mspgl/export_scene.py +++ b/blender/io_mspgl/export_scene.py @@ -66,7 +66,7 @@ class SceneExporter: from .datafile import Statement for i in instances: - obj_res = resources[i.prototype+".object"] + obj_res = resources[i.prototype.name+".object"] st = scene_res.create_reference_statement("object", obj_res, i.name) ss = Statement("transform") @@ -122,10 +122,7 @@ class SceneExporter: if scene.use_hdr: seq_res.statements.append(Statement("hdr", True)) - ss = Statement("clear") - ss.sub.append(Statement("color", 0.0, 0.0, 0.0, 0.0)) - ss.sub.append(Statement("depth", 1.0)) - seq_res.statements.append(ss) + self.add_clear(seq_res.statements, (0.0, 0.0, 0.0, 0.0), 1.0) scene_res = resources[scene.name+".scene"] seq_res.statements.append(seq_res.create_reference_statement("renderable", "content", scene_res)) @@ -142,17 +139,13 @@ class SceneExporter: any_blended = True s = s.background_set - if any_opaque: - ss = Statement("step", "", "content") - ss.sub.append(Statement("depth_test", Token("LEQUAL"))) - ss.sub.append(seq_res.create_reference_statement("lighting", lighting_res)) - seq_res.statements.append(ss) + main_tags = [] + if any_opaque: + main_tags.append("") if any_blended: - ss = Statement("step", "blended", "content") - ss.sub.append(Statement("depth_test", Token("LEQUAL"))) - ss.sub.append(seq_res.create_reference_statement("lighting", lighting_res)) - seq_res.statements.append(ss) + + self.add_content_steps(seq_res, "content", lighting_res, main_tags) if scene.use_ao: ss = Statement("postprocessor") @@ -180,3 +173,23 @@ class SceneExporter: seq_res.statements.append(ss) return seq_res + + def add_clear(self, statements, color, depth): + from .datafile import Statement + + st = Statement("clear") + if color is not None: + st.sub.append(Statement("color", *color)) + if depth is not None: + st.sub.append(Statement("depth", depth)) + statements.append(st) + + def add_content_steps(self, seq_res, renderable, lighting, tags): + from .datafile import Statement, Token + + for t in tags: + st = Statement("step", t, renderable) + st.sub.append(Statement("depth_test", Token("LEQUAL"))) + if lighting: + st.sub.append(seq_res.create_reference_statement("lighting", lighting)) + seq_res.statements.append(st)