summaryrefslogtreecommitdiffstats
path: root/pbr.cginc
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2024-07-15 14:23:47 -0700
committeryum <yum.food.vr@gmail.com>2024-07-15 14:23:47 -0700
commitbfc062d1f056f13dcc43d50c995124288fef5967 (patch)
tree928520fba54204ee68aac55fa07bf72f64f89cf4 /pbr.cginc
parent65960b924a861f273b72157456aabaa694831976 (diff)
Add clearcoat mask
Diffstat (limited to 'pbr.cginc')
-rw-r--r--pbr.cginc19
1 files changed, 17 insertions, 2 deletions
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);
}