From bfc062d1f056f13dcc43d50c995124288fef5967 Mon Sep 17 00:00:00 2001 From: yum Date: Mon, 15 Jul 2024 14:23:47 -0700 Subject: Add clearcoat mask --- pbr.cginc | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'pbr.cginc') diff --git a/pbr.cginc b/pbr.cginc index 7b37d86..a847414 100644 --- a/pbr.cginc +++ b/pbr.cginc @@ -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); } -- cgit v1.2.3