diff options
| author | yum <yum.food.vr@gmail.com> | 2024-05-26 18:33:46 -0700 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2024-05-26 18:33:46 -0700 |
| commit | 33b2b8a3ab0ddea85c7a3f03f918fe5ee6874426 (patch) | |
| tree | 961636e8cd124cba4d163d7fc93e321a650b746f /Editor | |
| parent | 225ff402428d2d37c150028bf129f7450368c058 (diff) | |
Add transparent & transclipping rendering modes
Diffstat (limited to 'Editor')
| -rw-r--r-- | Editor/tooner.cs | 24 |
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; |
