summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2024-11-09 15:51:44 -0800
committeryum <yum.food.vr@gmail.com>2024-11-09 15:51:44 -0800
commitc5d3fb245c692e238250a46afa60564ab4cf5eb1 (patch)
tree95b1b86e65bcf8c9ab323501898bf15e42797b01
parent7bf58ccf65a280f1e7b4a2a40fb28a2cdbaf606c (diff)
Add separate sliders for diffuse/direct lighting
-rw-r--r--Editor/tooner.cs14
-rw-r--r--fog.cginc8
-rw-r--r--globals.cginc5
-rw-r--r--pbr.cginc2
-rw-r--r--tooner.shader6
5 files changed, 26 insertions, 9 deletions
diff --git a/Editor/tooner.cs b/Editor/tooner.cs
index 6747bcb..953f5c5 100644
--- a/Editor/tooner.cs
+++ b/Editor/tooner.cs
@@ -2124,8 +2124,10 @@ public class ToonerGUI : ShaderGUI {
bc = FindProperty("_Gimmick_Fog_00_Emitter0_Scale_Y");
FloatProperty(bc, "Scale (y)");
- bc = FindProperty("_Gimmick_Fog_00_Emitter_Brightness");
- FloatProperty(bc, "Brightness");
+ bc = FindProperty("_Gimmick_Fog_00_Emitter_Brightness_Diffuse");
+ FloatProperty(bc, "Brightness (diffuse)");
+ bc = FindProperty("_Gimmick_Fog_00_Emitter_Brightness_Direct");
+ FloatProperty(bc, "Brightness (direct)");
bc = FindProperty("_Gimmick_Fog_00_Emitter_Lod_Half_Life");
FloatProperty(bc, "LOD half life");
@@ -2753,6 +2755,14 @@ public class ToonerGUI : ShaderGUI {
if (enabled) {
EditorGUI.indentLevel += 1;
+
+ bc = FindProperty("_LTCGI_Enabled_Dynamic");
+ enabled = bc.floatValue > 1E-6;
+ EditorGUI.BeginChangeCheck();
+ enabled = Toggle("Enable (runtime switch)", enabled);
+ EditorGUI.EndChangeCheck();
+ bc.floatValue = enabled ? 1.0f : 0.0f;
+
bc = FindProperty("_LTCGI_SpecularColor");
ColorProperty(bc, "Specular color (RGB)");
diff --git a/fog.cginc b/fog.cginc
index 7e3d466..7b2a075 100644
--- a/fog.cginc
+++ b/fog.cginc
@@ -132,14 +132,15 @@ void getEmitterData(float3 p,
direct = in_range * emitter_falloff * em_color;
#if 1
+ float e = 0.1;
diffuse =
_Gimmick_Fog_00_Emitter_Texture.SampleLevel(linear_clamp_s, emitter_uv, 9)+
- _Gimmick_Fog_00_Emitter_Texture.SampleLevel(linear_clamp_s, emitter_uv, 11);
+ _Gimmick_Fog_00_Emitter_Texture.SampleLevel(linear_clamp_s, (emitter_uv * (1 - e*2)) + e, 11);
diffuse *= .5;
em_loc_clamp += em_loc;
// TODO parameterize shaping constants
float diffuse_length = length(p - em_loc_clamp);
- float diffuse_falloff = min(2, 5 / diffuse_length);
+ float diffuse_falloff = min(2, 10 / diffuse_length);
diffuse *= diffuse_falloff;
#else
diffuse = 0;
@@ -325,7 +326,8 @@ Fog00PBR getFog00(v2f i, ToonerData tdata) {
}
#endif
- diffuse *= _Gimmick_Fog_00_Emitter_Brightness;
+ diffuse *= _Gimmick_Fog_00_Emitter_Brightness_Diffuse;
+ direct *= _Gimmick_Fog_00_Emitter_Brightness_Direct;
// Scaling brightness by sqrt(step_size) seems to look more consistent as
// you vary density. No idea why :(
float NoL = dot(map_normal, direct_light.dir);
diff --git a/globals.cginc b/globals.cginc
index 43c6502..1a995e8 100644
--- a/globals.cginc
+++ b/globals.cginc
@@ -598,7 +598,7 @@ texture2D _UVScroll_Alpha;
#endif
#if defined(_LTCGI)
-float _LTCGI_Enabled;
+float _LTCGI_Enabled_Dynamic;
float4 _LTCGI_SpecularColor;
float4 _LTCGI_DiffuseColor;
#endif
@@ -761,7 +761,8 @@ float4 _Gimmick_Fog_00_Noise_2D_TexelSize;
#endif
#if defined(_GIMMICK_FOG_00_EMITTER_TEXTURE)
texture2D _Gimmick_Fog_00_Emitter_Texture;
-float _Gimmick_Fog_00_Emitter_Brightness;
+float _Gimmick_Fog_00_Emitter_Brightness_Diffuse;
+float _Gimmick_Fog_00_Emitter_Brightness_Direct;
float _Gimmick_Fog_00_Emitter_Lod_Half_Life;
float3 _Gimmick_Fog_00_Emitter0_Location;
diff --git a/pbr.cginc b/pbr.cginc
index ac2e94c..a9cb518 100644
--- a/pbr.cginc
+++ b/pbr.cginc
@@ -246,7 +246,7 @@ float4 getLitColor(
#if defined(_LTCGI)
ltcgi_acc acc = (ltcgi_acc) 0;
- if ((bool) round(_LTCGI_Enabled)) {
+ if (_LTCGI_Enabled_Dynamic) {
LTCGI_Contribution(
acc,
i.worldPos,
diff --git a/tooner.shader b/tooner.shader
index cc6c01f..fa7a46a 100644
--- a/tooner.shader
+++ b/tooner.shader
@@ -473,6 +473,9 @@ Shader "yum_food/tooner"
_UVScroll_Alpha("UV scroll alpha", 2D) = "white" {}
_LTCGI_Enabled("LTCGI enabled", Float) = 0.0
+ // This is set to 1 for backwards compatibility. Don't want to have to go
+ // click on like 30 materials....
+ _LTCGI_Enabled_Dynamic("LTCGI enabled (runtime switch)", Float) = 1.0
_LTCGI_SpecularColor("LTCGI specular color", Color) = (1, 1, 1, 1)
_LTCGI_DiffuseColor("LTCGI diffuse color", Color) = (1, 1, 1, 1)
@@ -661,7 +664,8 @@ Shader "yum_food/tooner"
_Gimmick_Fog_00_Emitter_Texture("Emitter texture", 2D) = "black" {}
_Gimmick_Fog_00_Emitter_Variable_Density("Enable emitter variable density", Float) = 0
- _Gimmick_Fog_00_Emitter_Brightness("fog", Float) = 1
+ _Gimmick_Fog_00_Emitter_Brightness_Diffuse("fog", Float) = 1
+ _Gimmick_Fog_00_Emitter_Brightness_Direct("fog", Float) = 1
_Gimmick_Fog_00_Emitter_Lod_Half_Life("fog", Float) = 5
_Gimmick_Fog_00_Emitter0_Location("fog", Vector) = (0, 0, 0, 0)