diff options
Diffstat (limited to 'tooner_lighting.cginc')
| -rw-r--r-- | tooner_lighting.cginc | 46 |
1 files changed, 38 insertions, 8 deletions
diff --git a/tooner_lighting.cginc b/tooner_lighting.cginc index 9b0388f..430d8a5 100644 --- a/tooner_lighting.cginc +++ b/tooner_lighting.cginc @@ -1195,7 +1195,7 @@ void mixOverlayAlbedoRoughnessMetallic(inout float4 albedo, #if defined(_PBR_OVERLAY2) #if defined(_PBR_OVERLAY2_MIX_ALPHA_BLEND) - albedo.rgb = lerp(albedo.rgb, ov.ov2_albedo.rgb, ov.ov2_albedo.a); + albedo.rgb = lerp(albedo.rgb, ov.ov2_albedo.rgb, a2); #if defined(_PBR_OVERLAY2_ROUGHNESS) roughness = lerp(roughness, ov.ov2_roughness, a2); #endif @@ -1617,8 +1617,8 @@ float4 effect(inout v2f i, out float depth) 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; + matcap_mask2 = _Matcap0_Mask2_Invert_Colors ? 1 - matcap_mask2 : matcap_mask2; + matcap_mask2 *= _Matcap0_Mask2_Invert_Alpha ? 1 - matcap_mask2_raw.a : matcap_mask2_raw.a; matcap_mask *= matcap_mask2; } #endif @@ -1705,8 +1705,8 @@ float4 effect(inout v2f i, out float depth) 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; + matcap_mask2 = _Matcap1_Mask2_Invert_Colors ? 1 - matcap_mask2 : matcap_mask2; + matcap_mask2 *= _Matcap1_Mask2_Invert_Alpha ? 1 - matcap_mask2_raw.a : matcap_mask2_raw.a; matcap_mask *= matcap_mask2; } #endif @@ -1864,6 +1864,14 @@ float4 effect(inout v2f i, out float depth) #else float matcap_mask = 1; #endif +#if defined(_RIM_LIGHTING0_MASK2) + float4 matcap_mask2_raw = _Rim_Lighting0_Mask2.SampleBias(GET_SAMPLER_RL0, + get_uv_by_channel(i, _Rim_Lighting0_Mask2_UV_Select), _Global_Sample_Bias); + float matcap_mask2 = matcap_mask2_raw.r; + matcap_mask2 = _Rim_Lighting0_Mask2_Invert_Colors ? 1 - matcap_mask2 : matcap_mask2; + matcap_mask2 *= _Rim_Lighting0_Mask2_Invert_Alpha ? 1 - matcap_mask2_raw.a : matcap_mask2_raw.a; + matcap_mask *= matcap_mask2; +#endif #if defined(_MATCAP0) if (_Matcap0_Overwrite_Rim_Lighting_0) { matcap_mask *= matcap_overwrite_mask[0]; @@ -1966,6 +1974,14 @@ float4 effect(inout v2f i, out float depth) #else float matcap_mask = 1; #endif +#if defined(_RIM_LIGHTING1_MASK2) + float4 matcap_mask2_raw = _Rim_Lighting1_Mask2.SampleBias(GET_SAMPLER_RL1, + get_uv_by_channel(i, _Rim_Lighting1_Mask2_UV_Select), _Global_Sample_Bias); + float matcap_mask2 = matcap_mask2_raw.r; + matcap_mask2 = _Rim_Lighting1_Mask2_Invert_Colors ? 1 - matcap_mask2 : matcap_mask2; + matcap_mask2 *= _Rim_Lighting1_Mask2_Invert_Alpha ? 1 - matcap_mask2_raw.a : matcap_mask2_raw.a; + matcap_mask *= matcap_mask2; +#endif #if defined(_MATCAP0) if (_Matcap0_Overwrite_Rim_Lighting_1) { matcap_mask *= matcap_overwrite_mask[0]; @@ -2068,6 +2084,14 @@ float4 effect(inout v2f i, out float depth) #else float matcap_mask = 1; #endif +#if defined(_RIM_LIGHTING2_MASK2) + float4 matcap_mask2_raw = _Rim_Lighting2_Mask2.SampleBias(GET_SAMPLER_RL2, + get_uv_by_channel(i, _Rim_Lighting2_Mask2_UV_Select), _Global_Sample_Bias); + float matcap_mask2 = matcap_mask2_raw.r; + matcap_mask2 = _Rim_Lighting2_Mask2_Invert_Colors ? 1 - matcap_mask2 : matcap_mask2; + matcap_mask2 *= _Rim_Lighting2_Mask2_Invert_Alpha ? 1 - matcap_mask2_raw.a : matcap_mask2_raw.a; + matcap_mask *= matcap_mask2; +#endif #if defined(_MATCAP0) if (_Matcap0_Overwrite_Rim_Lighting_2) { matcap_mask *= matcap_overwrite_mask[0]; @@ -2170,6 +2194,14 @@ float4 effect(inout v2f i, out float depth) #else float matcap_mask = 1; #endif +#if defined(_RIM_LIGHTING3_MASK2) + float4 matcap_mask2_raw = _Rim_Lighting3_Mask2.SampleBias(GET_SAMPLER_RL3, + get_uv_by_channel(i, _Rim_Lighting3_Mask2_UV_Select), _Global_Sample_Bias); + float matcap_mask2 = matcap_mask2_raw.r; + matcap_mask2 = _Rim_Lighting3_Mask2_Invert_Colors ? 1 - matcap_mask2 : matcap_mask2; + matcap_mask2 *= _Rim_Lighting3_Mask2_Invert_Alpha ? 1 - matcap_mask2_raw.a : matcap_mask2_raw.a; + matcap_mask *= matcap_mask2; +#endif #if defined(_MATCAP0) if (_Matcap0_Overwrite_Rim_Lighting_3) { matcap_mask *= matcap_overwrite_mask[0]; @@ -2376,9 +2408,7 @@ float4 effect(inout v2f i, out float depth) #endif screen_px_range = max(0.5 * dot(unit_range, screen_tex_size), _Gimmick_Letter_Grid_2_Min_Screen_Px_Range); } - float screen_px_distance = screen_px_range * (sd - 0.5); - - // Calculate smoothstep range based on screen size + float screen_px_distance = screen_px_range * (sd - _Gimmick_Letter_Grid_2_Alpha_Threshold); float smooth_range = (length(grid_res) / sqrt(screen_px_range)) * _Gimmick_Letter_Grid_2_Blurriness; float op = smoothstep(-smooth_range, smooth_range, screen_px_distance); op *= mask; |
