diff options
| author | yum <yum.food.vr@gmail.com> | 2024-11-09 15:51:44 -0800 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2024-11-09 15:51:44 -0800 |
| commit | c5d3fb245c692e238250a46afa60564ab4cf5eb1 (patch) | |
| tree | 95b1b86e65bcf8c9ab323501898bf15e42797b01 | |
| parent | 7bf58ccf65a280f1e7b4a2a40fb28a2cdbaf606c (diff) | |
Add separate sliders for diffuse/direct lighting
| -rw-r--r-- | Editor/tooner.cs | 14 | ||||
| -rw-r--r-- | fog.cginc | 8 | ||||
| -rw-r--r-- | globals.cginc | 5 | ||||
| -rw-r--r-- | pbr.cginc | 2 | ||||
| -rw-r--r-- | tooner.shader | 6 |
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)"); @@ -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; @@ -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) |
