diff options
| author | yum <yum.food.vr@gmail.com> | 2024-07-15 14:23:47 -0700 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2024-07-15 14:23:47 -0700 |
| commit | bfc062d1f056f13dcc43d50c995124288fef5967 (patch) | |
| tree | 928520fba54204ee68aac55fa07bf72f64f89cf4 /pbr.cginc | |
| parent | 65960b924a861f273b72157456aabaa694831976 (diff) | |
Add clearcoat mask
Diffstat (limited to 'pbr.cginc')
| -rw-r--r-- | pbr.cginc | 19 |
1 files changed, 17 insertions, 2 deletions
@@ -4,10 +4,11 @@ #include "UnityPBSLighting.cginc" #include "AutoLight.cginc" -#include "MochieStandardBRDF.cginc" - +#include "globals.cginc" +#include "filament_math.cginc" #include "globals.cginc" #include "interpolators.cginc" +#include "MochieStandardBRDF.cginc" #include "poi.cginc" #if defined(_LTCGI) @@ -262,6 +263,20 @@ float4 getLitColor( indirect_light).xyz; #endif +#if defined(_CLEARCOAT) + half3 half_dir = Unity_SafeNormalize(half3(direct_light.dir) + view_dir); + half lh = saturate(dot(direct_light.dir, half_dir)); + half cc_nh = saturate(dot(i.normal, half_dir)); + float clearcoat = FilamentClearcoat( + _Clearcoat_Roughness, + _Clearcoat_Strength, + cc_nh, + lh, + half_dir); + float cc_mask = _Clearcoat_Mask.SampleGrad(linear_repeat_s, i.uv, ddx(i.uv.x), ddy(i.uv.y)); + pbr.rgb += clearcoat * saturate(dot(i.normal, direct_light.dir)) * cc_mask * 10; +#endif + return float4(pbr.rgb, albedo.a); } |
