summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2024-08-28 16:06:27 -0700
committeryum <yum.food.vr@gmail.com>2024-08-28 16:06:27 -0700
commitf4d0ad8f349bcf99470b2cfa1e9531c4c0b61d29 (patch)
tree0da8ddc3126c4697143ad1068cc4ea0bf60563cf
parent86c935309c24b92b8ad66ceb4fc58ed668d39ba6 (diff)
Emissions are now UV channel aware
-rw-r--r--Editor/tooner.cs11
-rw-r--r--globals.cginc2
-rw-r--r--tooner.shader2
-rw-r--r--tooner_lighting.cginc4
4 files changed, 15 insertions, 4 deletions
diff --git a/Editor/tooner.cs b/Editor/tooner.cs
index 9248f37..51e13b5 100644
--- a/Editor/tooner.cs
+++ b/Editor/tooner.cs
@@ -410,8 +410,15 @@ public class ToonerGUI : ShaderGUI {
bct);
SetKeyword($"_EMISSION{i}", bc.textureValue);
- bc = FindProperty($"_Emission{i}Multiplier");
- editor.RangeProperty(bc, "Multiplier");
+ if (bc.textureValue) {
+ bc = FindProperty($"_Emission{i}_UV_Select");
+ editor.RangeProperty(
+ bc,
+ "UV channel");
+
+ bc = FindProperty($"_Emission{i}Multiplier");
+ editor.RangeProperty(bc, "Multiplier");
+ }
}
EditorGUI.indentLevel -= 1;
}
diff --git a/globals.cginc b/globals.cginc
index 8697ec3..ffd5d69 100644
--- a/globals.cginc
+++ b/globals.cginc
@@ -258,11 +258,13 @@ float _Decal3_UV_Select;
texture2D _Emission0Tex;
float _Emission0Strength;
float _Emission0Multiplier;
+float _Emission0_UV_Select;
#endif
#if defined(_EMISSION1)
texture2D _Emission1Tex;
float _Emission1Strength;
float _Emission1Multiplier;
+float _Emission1_UV_Select;
#endif
float _Global_Emission_Factor;
diff --git a/tooner.shader b/tooner.shader
index 6799645..0a0c698 100644
--- a/tooner.shader
+++ b/tooner.shader
@@ -151,9 +151,11 @@ Shader "yum_food/tooner"
[NoScaleOffset] _Emission0Tex("Emission map", 2D) = "black" {}
_Emission0Strength("Emission strength", Range(0, 2)) = 0
_Emission0Multiplier("Emission multiplier", Range(0, 2)) = 1
+ _Emission0_UV_Select("UV channel", Range(0,3)) = 0
[NoScaleOffset] _Emission1Tex("Emission map", 2D) = "black" {}
_Emission1Strength("Emission strength", Range(0, 2)) = 0
_Emission1Multiplier("Emission multiplier", Range(0, 2)) = 1
+ _Emission1_UV_Select("UV channel", Range(0,3)) = 0
_Global_Emission_Factor("Global emission factor", Float) = 1
[NoScaleOffset] _Tex_NormalStr("Normal texture strength", Range(0, 10)) = 1
diff --git a/tooner_lighting.cginc b/tooner_lighting.cginc
index dd4ac3c..0d12303 100644
--- a/tooner_lighting.cginc
+++ b/tooner_lighting.cginc
@@ -1860,14 +1860,14 @@ float4 effect(inout v2f i)
#endif
#if defined(_EMISSION0)
{
- float emission = _Emission0Tex.SampleBias(linear_repeat_s, i.uv0, _Global_Sample_Bias);
+ float emission = _Emission0Tex.SampleBias(linear_repeat_s, get_uv_by_channel(i, round(_Emission0_UV_Select)), _Global_Sample_Bias);
result.rgb += albedo.rgb * emission * _Emission0Strength *
_Global_Emission_Factor * _Emission0Multiplier;
}
#endif
#if defined(_EMISSION1)
{
- float emission = _Emission1Tex.SampleBias(linear_repeat_s, i.uv0, _Global_Sample_Bias);
+ float emission = _Emission1Tex.SampleBias(linear_repeat_s, get_uv_by_channel(i, round(_Emission1_UV_Select)), _Global_Sample_Bias);
result.rgb += albedo.rgb * emission * _Emission1Strength *
_Global_Emission_Factor * _Emission1Multiplier;
}