diff options
| author | yum <yum.food.vr@gmail.com> | 2024-08-28 14:29:23 -0700 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2024-08-28 14:29:23 -0700 |
| commit | 699da7b756aec0d361c4a6d84fa41e8183ef1d12 (patch) | |
| tree | 39cdae51faea62904ac0a330074a3deb66484af0 /tooner_lighting.cginc | |
| parent | 6eaf7c8ec43d4d6ce5d2c67e9ef032f182fbfa25 (diff) | |
Add second HSV slot
Helps with animation.
Diffstat (limited to 'tooner_lighting.cginc')
| -rw-r--r-- | tooner_lighting.cginc | 55 |
1 files changed, 38 insertions, 17 deletions
diff --git a/tooner_lighting.cginc b/tooner_lighting.cginc index a2a3269..7d8ec72 100644 --- a/tooner_lighting.cginc +++ b/tooner_lighting.cginc @@ -1768,24 +1768,45 @@ float4 effect(inout v2f i) } #endif -#if defined(_HSV) - // Do hue shift in perceptually uniform color space so it doesn't look like - // shit. - float hsv_mask = _HSV_Mask.SampleBias(linear_repeat_s, i.uv0, _Global_Sample_Bias); - if (_HSV_Mask_Invert) { - hsv_mask = 1 - hsv_mask; +#if defined(_HSV0) + { + float hsv_mask = _HSV0_Mask.SampleBias(linear_repeat_s, i.uv0, _Global_Sample_Bias); + if (_HSV0_Mask_Invert) { + hsv_mask = 1 - hsv_mask; + } + if (hsv_mask > 0.01 && + (_HSV0_Hue_Shift > 1E-6 || + abs(_HSV0_Sat_Shift) > 1E-6 || + abs(_HSV0_Val_Shift) > 1E-6)) { + float3 c = albedo.rgb; + c = RGBtoHSV(c); + c += float3(_HSV0_Hue_Shift, _HSV0_Sat_Shift, _HSV0_Val_Shift); + c.x = glsl_mod(c.x, 1.0); + c.yz = saturate(c.yz); + c = HSVtoRGB(c); + albedo.rgb = c; + } } - if (hsv_mask > 0.01 && - (_HSV_Hue_Shift > 1E-6 || - abs(_HSV_Sat_Shift) > 1E-6 || - abs(_HSV_Val_Shift) > 1E-6)) { - float3 c = albedo.rgb; - c = RGBtoHSV(c); - c += float3(_HSV_Hue_Shift, _HSV_Sat_Shift, _HSV_Val_Shift); - c.x = glsl_mod(c.x, 1.0); - c.yz = saturate(c.yz); - c = HSVtoRGB(c); - albedo.rgb = c; +#endif + +#if defined(_HSV1) + { + float hsv_mask = _HSV1_Mask.SampleBias(linear_repeat_s, i.uv0, _Global_Sample_Bias); + if (_HSV1_Mask_Invert) { + hsv_mask = 1 - hsv_mask; + } + if (hsv_mask > 0.01 && + (_HSV1_Hue_Shift > 1E-6 || + abs(_HSV1_Sat_Shift) > 1E-6 || + abs(_HSV1_Val_Shift) > 1E-6)) { + float3 c = albedo.rgb; + c = RGBtoHSV(c); + c += float3(_HSV1_Hue_Shift, _HSV1_Sat_Shift, _HSV1_Val_Shift); + c.x = glsl_mod(c.x, 1.0); + c.yz = saturate(c.yz); + c = HSVtoRGB(c); + albedo.rgb = c; + } } #endif |
