summaryrefslogtreecommitdiffstats
path: root/lighting.cginc
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2026-03-30 13:11:29 -0700
committeryum <yum.food.vr@gmail.com>2026-03-30 13:11:29 -0700
commit146b1e287e606b6ce3ebc4f60a1719f43c755916 (patch)
tree914758325caffc2a1e2408119c9fd81e48f4520e /lighting.cginc
parentb5197bed4cad2a8452bcbfa8e116497760edf1ba (diff)
Glitter: use micro normal for IBL
Diffstat (limited to 'lighting.cginc')
-rwxr-xr-xlighting.cginc14
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);