diff options
| author | yum <yum.food.vr@gmail.com> | 2024-06-23 13:52:00 -0700 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2024-06-23 13:52:00 -0700 |
| commit | 9cc14f9f2595b41bdb7d47bbd1caba1a1167695d (patch) | |
| tree | 782167cc11a18bd5b456d8848472774762265d6a | |
| parent | 79e95c1ced341d0b7db7c2fb3a5c6c2ce623a265 (diff) | |
| parent | 01255d3804afbcaf6c3b9fb620c51291c64f9335 (diff) | |
Merge branch 'master' of ssh://github.com/yum-food/Tooner
| -rw-r--r-- | Editor/tooner.cs | 12 | ||||
| -rw-r--r-- | globals.cginc | 1 | ||||
| -rw-r--r-- | tooner.shader | 4 | ||||
| -rw-r--r-- | tooner_outline_pass.cginc | 2 |
4 files changed, 17 insertions, 2 deletions
diff --git a/Editor/tooner.cs b/Editor/tooner.cs index d806f88..33b23ac 100644 --- a/Editor/tooner.cs +++ b/Editor/tooner.cs @@ -496,6 +496,18 @@ public class ToonerGUI : ShaderGUI { inverted = EditorGUILayout.Toggle("Invert mask", inverted); EditorGUI.EndChangeCheck(); bc.floatValue = inverted ? 1.0f : 0.0f; + + bc = FindProperty("_Outline_Width_Multiplier"); + editor.FloatProperty( + bc, + "Outline width multiplier"); + + bc = FindProperty("_Outline_Stenciling"); + bool enabled = (bc.floatValue == 1.0); + EditorGUI.BeginChangeCheck(); + enabled = EditorGUILayout.Toggle("Enable stenciling", enabled); + EditorGUI.EndChangeCheck(); + bc.floatValue = enabled ? 1.0f : 2.0f; } } diff --git a/globals.cginc b/globals.cginc index b283afb..d84b216 100644 --- a/globals.cginc +++ b/globals.cginc @@ -132,6 +132,7 @@ float4 _Outline_Color; float _Outline_Emission_Strength; texture2D _Outline_Mask; float _Outline_Mask_Invert; +float _Outline_Width_Multiplier; #endif #if defined(_GLITTER) diff --git a/tooner.shader b/tooner.shader index d21890f..1a50047 100644 --- a/tooner.shader +++ b/tooner.shader @@ -96,6 +96,8 @@ Shader "yum_food/tooner" _Outline_Emission_Strength("Outline emission strength", Range(0, 2)) = 0.2 _Outline_Mask("Outline mask", 2D) = "white" {} _Outline_Mask_Invert("Invert outline mask", Float) = 0.0 + _Outline_Width_Multiplier("Outline width multiplier", Float) = 1 + [MaterialToggle] _Outline_Stenciling("Enable outline stenciling", Float) = 1 _Glitter_Enabled("Glitter enabled", Float) = 0 _Glitter_Mask("Glitter mask", 2D) = "white" {} @@ -272,7 +274,7 @@ Shader "yum_food/tooner" ZTest LEqual Stencil { - Ref 1 + Ref [_Outline_Stenciling] Comp Greater } diff --git a/tooner_outline_pass.cginc b/tooner_outline_pass.cginc index 1767d2c..f7bc6af 100644 --- a/tooner_outline_pass.cginc +++ b/tooner_outline_pass.cginc @@ -35,7 +35,7 @@ v2f vert(appdata v) float outline_mask = _Outline_Mask.SampleLevel(linear_repeat_s, v.uv0.xy, /*lod=*/1); outline_mask = _Outline_Mask_Invert > 1E-6 ? 1 - outline_mask : outline_mask; - worldPos += worldNormal * _Outline_Width * outline_mask; + worldPos += worldNormal * _Outline_Width * outline_mask * _Outline_Width_Multiplier; objPos = mul(unity_WorldToObject, worldPos); clipPos = UnityObjectToClipPos(objPos); |
