diff options
| -rw-r--r-- | pbr.cginc | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -347,6 +347,21 @@ float4 getLitColor( screenPos = float4(i.screenPos, 0, i.pos.w); #endif +// TODO optimize this +// Break up color banding by adding some dithering to direct light. +{ + float2 screen_uv; + { + float3 full_vec_eye_to_geometry = i.worldPos - _WorldSpaceCameraPos; + float3 world_dir = normalize(i.worldPos - _WorldSpaceCameraPos); + float perspective_divide = 1.0 / i.pos.w; + float perspective_factor = length(full_vec_eye_to_geometry * perspective_divide); + screen_uv = i.screenPos.xy * perspective_divide; + } + uint2 screen_uv_round = floor(screen_uv * _ScreenParams.xy); + direct_light.color += ign(screen_uv_round) * 0.00390625; +} + #if 1 float reflection_strength = _ReflectionStrength; #if defined(_REFLECTION_STRENGTH_TEX) |
