diff options
Diffstat (limited to 'lighting.cginc')
| -rwxr-xr-x | lighting.cginc | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lighting.cginc b/lighting.cginc index 8b6693c..52c9cac 100755 --- a/lighting.cginc +++ b/lighting.cginc @@ -12,6 +12,7 @@ #include "interpolators.cginc" #include "LightVolumes.cginc" #include "pbr.cginc" +#include "glitter.cginc" #include "poi.cginc" float3 getDirectLightDirection(v2f i) { @@ -264,6 +265,13 @@ void GetLighting(v2f i, Pbr pbr, out LightData data) { data.indirect.diffuse = getIndirectDiffuse(i, pbr, data); data.indirect.specular = getIndirectSpecular(i, pbr.roughness_perceptual, view_dir, data.indirect.dir, data.indirect.diffuse); +#if defined(_GLITTER) + data.glitter = GetGlitterLighting(_Glitter_Amount, _Glitter_Roughness, + i.uv01.xy, pbr.tbn, pbr.roughness, + pbr.normal, data.common.V, data.direct.H, data.indirect.H); + data.glitter.indirect_specular = getIndirectSpecular(i, _Glitter_IBL_Roughness, + view_dir, data.glitter.indirect_dir, data.indirect.diffuse); +#endif data.common.ao = getAO(i); data.common.spec_ao = getSpecularAO(i, pbr, data, reflect_dir); @@ -290,6 +298,12 @@ void GetLighting(v2f i, Pbr pbr, out LightData data) { tmpHSV[2] = clamp(tmpHSV[2], 0, _Brightness_Clamp_Max); data.indirect.specular = HSVtoRGB(tmpHSV); +#if defined(_GLITTER) + tmpHSV = RGBtoHSV(data.glitter.indirect_specular); + tmpHSV[2] = clamp(tmpHSV[2], 0, _Brightness_Clamp_Max); + data.glitter.indirect_specular = HSVtoRGB(tmpHSV); +#endif + #if defined(_CLEARCOAT) tmpHSV = RGBtoHSV(data.indirect.specular_cc); tmpHSV[2] = clamp(tmpHSV[2], 0, _Brightness_Clamp_Max); |
