diff options
| author | yum <yum.food.vr@gmail.com> | 2025-02-20 17:37:54 -0800 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2025-02-20 17:37:54 -0800 |
| commit | 36bd33d973f54f91f881cee87a234994d3fbd4eb (patch) | |
| tree | 589748f6ffeb010c2072a230fb2541234baf1abe /yum_lighting.cginc | |
| parent | c1a5bf8f3687b604980d1275872f1320f1a39977 (diff) | |
Add specular quantization
Diffstat (limited to 'yum_lighting.cginc')
| -rw-r--r-- | yum_lighting.cginc | 9 |
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;
|
