summaryrefslogtreecommitdiffstats
path: root/Editor
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2024-05-26 18:33:46 -0700
committeryum <yum.food.vr@gmail.com>2024-05-26 18:33:46 -0700
commit33b2b8a3ab0ddea85c7a3f03f918fe5ee6874426 (patch)
tree961636e8cd124cba4d163d7fc93e321a650b746f /Editor
parent225ff402428d2d37c150028bf129f7450368c058 (diff)
Add transparent & transclipping rendering modes
Diffstat (limited to 'Editor')
-rw-r--r--Editor/tooner.cs24
1 files changed, 23 insertions, 1 deletions
diff --git a/Editor/tooner.cs b/Editor/tooner.cs
index 5bb21f9..184b653 100644
--- a/Editor/tooner.cs
+++ b/Editor/tooner.cs
@@ -678,7 +678,9 @@ public class ToonerGUI : ShaderGUI {
enum RenderingMode {
Opaque,
Cutout,
- Fade
+ Fade,
+ Transparent,
+ TransClipping,
}
enum CutoutMode {
@@ -692,6 +694,10 @@ public class ToonerGUI : ShaderGUI {
mode = RenderingMode.Cutout;
} else if (target.IsKeywordEnabled("_RENDERING_FADE")) {
mode = RenderingMode.Fade;
+ } else if (target.IsKeywordEnabled("_RENDERING_TRANSPARENT")) {
+ mode = RenderingMode.Transparent;
+ } else if (target.IsKeywordEnabled("_RENDERING_TRANSCLIPPING")) {
+ mode = RenderingMode.TransClipping;
}
EditorGUI.BeginChangeCheck();
@@ -705,6 +711,8 @@ public class ToonerGUI : ShaderGUI {
RecordAction("Rendering mode");
SetKeyword("_RENDERING_CUTOUT", mode == RenderingMode.Cutout);
SetKeyword("_RENDERING_FADE", mode == RenderingMode.Fade);
+ SetKeyword("_RENDERING_TRANSPARENT", mode == RenderingMode.Transparent);
+ SetKeyword("_RENDERING_TRANSCLIPPING", mode == RenderingMode.TransClipping);
RenderQueue queue = RenderQueue.Geometry;
string render_type = "";
@@ -730,6 +738,20 @@ public class ToonerGUI : ShaderGUI {
dst_blend = BlendMode.OneMinusSrcAlpha;
zwrite = false;
break;
+ case RenderingMode.Transparent:
+ queue = RenderQueue.Transparent;
+ render_type = "Transparent";
+ src_blend = BlendMode.One;
+ dst_blend = BlendMode.OneMinusSrcAlpha;
+ zwrite = false;
+ break;
+ case RenderingMode.TransClipping:
+ queue = RenderQueue.AlphaTest;
+ render_type = "Transparent";
+ src_blend = BlendMode.One;
+ dst_blend = BlendMode.OneMinusSrcAlpha;
+ zwrite = true;
+ break;
}
foreach (Material m in editor.targets) {
m.renderQueue = (int) queue;