From d704e0f80e1df1198cc229b8abbc88eb3caec862 Mon Sep 17 00:00:00 2001 From: Yuxuan Shui Date: Wed, 30 Nov 2022 12:13:09 +0000 Subject: [PATCH] backend: gl: don't add dither where it's not needed If a pixel is perfectly representable as an 8-bit number, don't add dither. Reduce artifacts where dither is unnecessary. Signed-off-by: Yuxuan Shui --- src/backend/gl/shaders.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/backend/gl/shaders.c b/src/backend/gl/shaders.c index bd620fe..90f636b 100644 --- a/src/backend/gl/shaders.c +++ b/src/backend/gl/shaders.c @@ -201,7 +201,9 @@ const char dither_glsl[] = GLSL(330, return bayer32; } vec4 dither(vec4 c, vec2 coord) { - return vec4(c + bayer(coord) / 255.0); + vec4 residual = mod(c, 1.0 / 255.0); + vec4 dithered = vec4(greaterThan(residual, vec4(1e-4))); + return vec4(c + dithered * bayer(coord) / 255.0); } ); const char shadow_colorization_frag[] = GLSL(330,