From a3a81f8b324dc235d001f06d399b80e1fecae151 Mon Sep 17 00:00:00 2001 From: Edmond Mondor Date: Wed, 15 Feb 2023 14:54:31 -0800 Subject: [PATCH 1/3] Setup Late render pass --- korman/exporter/mesh.py | 2 ++ korman/properties/modifiers/render.py | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/korman/exporter/mesh.py b/korman/exporter/mesh.py index a840625..9e28fff 100644 --- a/korman/exporter/mesh.py +++ b/korman/exporter/mesh.py @@ -94,6 +94,8 @@ class _RenderLevel: return self._calc_level(self.MAJOR_FRAMEBUF) elif mods.test_property("draw_opaque"): return self._calc_level(self.MAJOR_OPAQUE) + elif mods.test_property("draw_late"): + return self._calc_level(self.MAJOR_LATE) elif mods.test_property("draw_no_defer"): blend_span = False diff --git a/korman/properties/modifiers/render.py b/korman/properties/modifiers/render.py index fc28455..98f5331 100644 --- a/korman/properties/modifiers/render.py +++ b/korman/properties/modifiers/render.py @@ -49,7 +49,8 @@ class PlasmaBlendMod(PlasmaModifierProperties): items=[("AUTO", "(Auto)", "Let Korman decide when to render this object."), ("OPAQUE", "Before Avatar", "Prefer for the object to draw before the avatar."), ("FRAMEBUF", "Frame Buffer", "Prefer for the object to draw after the avatar but before other blended objects."), - ("BLEND", "Blended", "Prefer for the object to draw after most other geometry in the blended pass.")], + ("BLEND", "Blended", "Prefer for the object to draw after most other geometry in the blended pass."), + ("LATE", "Late", "Prefer for the object to draw late in the blended pass.")], options=set()) sort_faces = EnumProperty(name="Sort Faces", description="", @@ -73,6 +74,10 @@ class PlasmaBlendMod(PlasmaModifierProperties): def draw_framebuf(self): return self.render_level == "FRAMEBUF" + @property + def draw_late(self): + return self.render_level == "LATE" + @property def draw_no_defer(self): return self.render_level != "BLEND" From 6bf46e10b1d10c66f1c7936bcfe0d644cec846be Mon Sep 17 00:00:00 2001 From: Hazado Date: Wed, 15 Feb 2023 18:31:21 -0800 Subject: [PATCH 2/3] Update render.py --- korman/properties/modifiers/render.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/korman/properties/modifiers/render.py b/korman/properties/modifiers/render.py index 98f5331..39e8289 100644 --- a/korman/properties/modifiers/render.py +++ b/korman/properties/modifiers/render.py @@ -50,7 +50,7 @@ class PlasmaBlendMod(PlasmaModifierProperties): ("OPAQUE", "Before Avatar", "Prefer for the object to draw before the avatar."), ("FRAMEBUF", "Frame Buffer", "Prefer for the object to draw after the avatar but before other blended objects."), ("BLEND", "Blended", "Prefer for the object to draw after most other geometry in the blended pass."), - ("LATE", "Late", "Prefer for the object to draw late in the blended pass.")], + ("LATE", "Late", "Prefer for the object to draw after all other alpha-blended objects.")], options=set()) sort_faces = EnumProperty(name="Sort Faces", description="", From 9989ed2572f3991afd17575776bdb6b51247f09b Mon Sep 17 00:00:00 2001 From: Edmond Mondor Date: Wed, 15 Feb 2023 20:46:00 -0800 Subject: [PATCH 3/3] requested change Co-authored-by: Adam Johnson --- korman/properties/modifiers/base.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/korman/properties/modifiers/base.py b/korman/properties/modifiers/base.py index 1e4827b..8cc24fa 100644 --- a/korman/properties/modifiers/base.py +++ b/korman/properties/modifiers/base.py @@ -45,6 +45,10 @@ class PlasmaModifierProperties(bpy.types.PropertyGroup): def draw_no_defer(self): """Disallow geometry being sorted into a blending span""" return False + + @property + def draw_late(self): + return False @property def enabled(self):