summaryrefslogtreecommitdiffstats
path: root/yum_lighting.cginc
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2025-02-20 17:37:54 -0800
committeryum <yum.food.vr@gmail.com>2025-02-20 17:37:54 -0800
commit36bd33d973f54f91f881cee87a234994d3fbd4eb (patch)
tree589748f6ffeb010c2072a230fb2541234baf1abe /yum_lighting.cginc
parentc1a5bf8f3687b604980d1275872f1320f1a39977 (diff)
Add specular quantization
Diffstat (limited to 'yum_lighting.cginc')
-rw-r--r--yum_lighting.cginc9
1 files changed, 9 insertions, 0 deletions
diff --git a/yum_lighting.cginc b/yum_lighting.cginc
index 604133f..a7cb4ab 100644
--- a/yum_lighting.cginc
+++ b/yum_lighting.cginc
@@ -132,6 +132,15 @@ YumLighting GetYumLighting(v2f i, YumPbr pbr) {
light.specular = getIndirectSpecular(i, pbr, light.view_dir);
+#if defined(_QUANTIZE_SPECULAR)
+ float specular_luminance = dot(light.specular, float3(0.2126, 0.7152, 0.0722)); // convert to luminance
+ light.specular = light.specular * floor(specular_luminance * _Quantize_Specular_Steps) / _Quantize_Specular_Steps;
+#endif
+#if defined(_QUANTIZE_DIFFUSE)
+ float diffuse_luminance = dot(light.diffuse, float3(0.2126, 0.7152, 0.0722)); // convert to luminance
+ light.diffuse = light.diffuse * floor(diffuse_luminance * _Quantize_Diffuse_Steps) / _Quantize_Diffuse_Steps;
+#endif
+
light.NoL = saturate(dot(pbr.normal, light.dir));
#if defined(_QUANTIZE_NOL)
light.NoL = floor(light.NoL * _Quantize_NoL_Steps) / _Quantize_NoL_Steps;