diff options
| author | yum <yum.food.vr@gmail.com> | 2024-08-02 16:40:30 -0700 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2024-08-02 16:40:30 -0700 |
| commit | fa44a3879806176d48d0c16a960a2c4fe6198dd6 (patch) | |
| tree | bc055e94014e4478bbf6d2c5430d32e50c849a9b /pbr.cginc | |
| parent | a627c1f915b86956b528af304fa85fee42dc11a0 (diff) | |
Add second clearcoat mask, and add invert ability
Also optimize by locking each behind a keyword.
Diffstat (limited to 'pbr.cginc')
| -rw-r--r-- | pbr.cginc | 17 |
1 files changed, 16 insertions, 1 deletions
@@ -291,7 +291,22 @@ float4 getLitColor( #if defined(_CLEARCOAT) // Direct lighting - float cc_mask = _Clearcoat_Mask.SampleGrad(linear_repeat_s, i.uv, ddx(i.uv.x), ddy(i.uv.y)); + // TODO add keywords to optimize away mask samples when not used + float cc_mask = 1; +#if defined(_CLEARCOAT_MASK) + float cc_mask_tmp = _Clearcoat_Mask.SampleGrad(linear_repeat_s, i.uv, ddx(i.uv.x), ddy(i.uv.y)); + if (_Clearcoat_Mask_Invert) { + cc_mask_tmp = 1 - cc_mask_tmp; + } + cc_mask *= cc_mask_tmp; +#endif +#if defined(_CLEARCOAT_MASK2) + float cc_mask2_tmp = _Clearcoat_Mask2.SampleGrad(linear_repeat_s, i.uv, ddx(i.uv.x), ddy(i.uv.y)); + if (_Clearcoat_Mask_Invert) { + cc_mask2_tmp = 1 - cc_mask2_tmp; + } + cc_mask *= cc_mask2_tmp; +#endif { float3 cc_L = direct_light.dir; half3 cc_H = Unity_SafeNormalize(cc_L + view_dir); |
