summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Editor/tooner.cs14
-rw-r--r--globals.cginc4
-rw-r--r--tooner.shader4
-rw-r--r--tooner_lighting.cginc12
4 files changed, 30 insertions, 4 deletions
diff --git a/Editor/tooner.cs b/Editor/tooner.cs
index d769a02..8cb4d07 100644
--- a/Editor/tooner.cs
+++ b/Editor/tooner.cs
@@ -440,12 +440,19 @@ public class ToonerGUI : ShaderGUI {
bool enabled; // c# is a shitty language
if (bc.textureValue) {
+ EditorGUI.indentLevel += 1;
bc = FindProperty($"_Matcap{i}_Mask_Invert");
enabled = bc.floatValue > 1E-6;
EditorGUI.BeginChangeCheck();
enabled = EditorGUILayout.Toggle("Invert mask", enabled);
EditorGUI.EndChangeCheck();
bc.floatValue = enabled ? 1.0f : 0.0f;
+
+ bc = FindProperty($"_Matcap{i}_Mask_UV_Select");
+ editor.RangeProperty(
+ bc,
+ "UV channel");
+ EditorGUI.indentLevel -= 1;
}
bc = FindProperty($"_Matcap{i}_Mask2");
@@ -455,12 +462,19 @@ public class ToonerGUI : ShaderGUI {
SetKeyword($"_MATCAP{i}_MASK2", bc.textureValue);
if (bc.textureValue) {
+ EditorGUI.indentLevel += 1;
bc = FindProperty($"_Matcap{i}_Mask2_Invert");
enabled = bc.floatValue > 1E-6;
EditorGUI.BeginChangeCheck();
enabled = EditorGUILayout.Toggle("Invert mask", enabled);
EditorGUI.EndChangeCheck();
bc.floatValue = enabled ? 1.0f : 0.0f;
+
+ bc = FindProperty($"_Matcap{i}_Mask2_UV_Select");
+ editor.RangeProperty(
+ bc,
+ "UV channel");
+ EditorGUI.indentLevel -= 1;
}
EditorGUI.BeginChangeCheck();
diff --git a/globals.cginc b/globals.cginc
index d2773b1..980a31a 100644
--- a/globals.cginc
+++ b/globals.cginc
@@ -306,8 +306,10 @@ float _Enable_Matcap0;
texture2D _Matcap0;
texture2D _Matcap0_Mask;
float _Matcap0_Mask_Invert;
+float _Matcap0_Mask_UV_Select;
texture2D _Matcap0_Mask2;
float _Matcap0_Mask2_Invert;
+float _Matcap0_Mask2_UV_Select;
float _Matcap0Str;
float _Matcap0MixFactor;
float _Matcap0Quantization;
@@ -326,8 +328,10 @@ float _Enable_Matcap1;
texture2D _Matcap1;
texture2D _Matcap1_Mask;
float _Matcap1_Mask_Invert;
+float _Matcap1_Mask_UV_Select;
texture2D _Matcap1_Mask2;
float _Matcap1_Mask2_Invert;
+float _Matcap1_Mask2_UV_Select;
float _Matcap1Str;
float _Matcap1MixFactor;
float _Matcap1Quantization;
diff --git a/tooner.shader b/tooner.shader
index c14e607..7eda029 100644
--- a/tooner.shader
+++ b/tooner.shader
@@ -214,8 +214,10 @@ Shader "yum_food/tooner"
_Matcap0("Matcap", 2D) = "black" {}
_Matcap0_Mask("Matcap mask", 2D) = "white" {}
_Matcap0_Mask_Invert("Invert mask", Float) = 0.0
+ _Matcap0_Mask_UV_Select("Matcap mask UV select", Range(0, 3)) = 0
_Matcap0_Mask2("Matcap mask 2", 2D) = "white" {}
_Matcap0_Mask2_Invert("Invert mask", Float) = 0.0
+ _Matcap0_Mask2_UV_Select("Matcap mask UV select", Range(0, 3)) = 0
_Matcap0Mode("Matcap mode", Float) = 0
_Matcap0Str("Matcap strength", Float) = 1
_Matcap0MixFactor("Matcap mix factor", Range(0, 1)) = 1
@@ -230,8 +232,10 @@ Shader "yum_food/tooner"
_Matcap1("Matcap", 2D) = "black" {}
_Matcap1_Mask("Matcap mask", 2D) = "white" {}
_Matcap1_Mask_Invert("Invert mask", Float) = 0.0
+ _Matcap1_Mask_UV_Select("Matcap mask UV select", Range(0, 3)) = 0
_Matcap1_Mask2("Matcap mask 2", 2D) = "white" {}
_Matcap1_Mask2_Invert("Invert mask", Float) = 0.0
+ _Matcap1_Mask2_UV_Select("Matcap mask UV select", Range(0, 3)) = 0
_Matcap1Mode("Matcap mode", Float) = 0
_Matcap1Str("Matcap strength", Float) = 1
_Matcap1MixFactor("Matcap mix factor", Range(0, 1)) = 1
diff --git a/tooner_lighting.cginc b/tooner_lighting.cginc
index 70df5ea..34c1368 100644
--- a/tooner_lighting.cginc
+++ b/tooner_lighting.cginc
@@ -1272,7 +1272,8 @@ float4 effect(inout v2f i)
#if defined(_MATCAP0)
{
#if defined(_MATCAP0_MASK)
- float4 matcap_mask_raw = _Matcap0_Mask.SampleLevel(linear_repeat_s, i.uv0.xy, 0);
+ float4 matcap_mask_raw = _Matcap0_Mask.SampleLevel(linear_repeat_s,
+ get_uv_by_channel(i, _Matcap0_Mask_UV_Select), 0);
float matcap_mask = matcap_mask_raw.r;
matcap_mask = (bool) round(_Matcap0_Mask_Invert) ? 1 - matcap_mask : matcap_mask;
matcap_mask *= matcap_mask_raw.a;
@@ -1281,7 +1282,8 @@ float4 effect(inout v2f i)
#endif
#if defined(_MATCAP0_MASK2)
{
- float4 matcap_mask2_raw = _Matcap0_Mask2.SampleLevel(linear_repeat_s, i.uv0.xy, 0);
+ float4 matcap_mask2_raw = _Matcap0_Mask2.SampleLevel(linear_repeat_s,
+ get_uv_by_channel(i, _Matcap0_Mask2_UV_Select), 0);
float matcap_mask2 = matcap_mask2_raw.r;
matcap_mask2 = (bool) round(_Matcap0_Mask2_Invert) ? 1 - matcap_mask2 : matcap_mask2;
matcap_mask2 *= matcap_mask2_raw.a;
@@ -1359,7 +1361,8 @@ float4 effect(inout v2f i)
#if defined(_MATCAP1)
{
#if defined(_MATCAP1_MASK)
- float4 matcap_mask_raw = _Matcap1_Mask.SampleLevel(linear_repeat_s, i.uv0.xy, 0);
+ float4 matcap_mask_raw = _Matcap1_Mask.SampleLevel(linear_repeat_s,
+ get_uv_by_channel(i, _Matcap1_Mask_UV_Select), 0);
float matcap_mask = matcap_mask_raw.r;
matcap_mask = (bool) round(_Matcap1_Mask_Invert) ? 1 - matcap_mask : matcap_mask;
matcap_mask *= matcap_mask_raw.a;
@@ -1368,7 +1371,8 @@ float4 effect(inout v2f i)
#endif
#if defined(_MATCAP1_MASK2)
{
- float4 matcap_mask2_raw = _Matcap1_Mask2.SampleLevel(linear_repeat_s, i.uv0.xy, 0);
+ float4 matcap_mask2_raw = _Matcap1_Mask2.SampleLevel(linear_repeat_s,
+ get_uv_by_channel(i, _Matcap1_Mask2_UV_Select), 0);
float matcap_mask2 = matcap_mask2_raw.r;
matcap_mask2 = (bool) round(_Matcap1_Mask2_Invert) ? 1 - matcap_mask2 : matcap_mask2;
matcap_mask2 *= matcap_mask2_raw.a;