diff options
| author | yum <yum.food.vr@gmail.com> | 2026-03-30 13:11:29 -0700 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2026-03-30 13:11:29 -0700 |
| commit | 146b1e287e606b6ce3ebc4f60a1719f43c755916 (patch) | |
| tree | 914758325caffc2a1e2408119c9fd81e48f4520e /lighting.cginc | |
| parent | b5197bed4cad2a8452bcbfa8e116497760edf1ba (diff) | |
Glitter: use micro normal for IBL
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); |
