From 6d58c143c00d98ff142959047b1a64fcc22c51a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20Garc=C3=ADa=20Li=C3=B1=C3=A1n?= Date: Sun, 21 Apr 2019 18:53:19 +0200 Subject: [PATCH] Added dithering as an ALS post-processing effect to prevent banding --- Shaders/filters-ALS.frag | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Shaders/filters-ALS.frag b/Shaders/filters-ALS.frag index 92302f5ae..cb69c2a31 100644 --- a/Shaders/filters-ALS.frag +++ b/Shaders/filters-ALS.frag @@ -20,6 +20,7 @@ uniform bool use_IR_vision; uniform int display_xsize; uniform int display_ysize; +float rand2D(in vec2 co); float Noise2D(in vec2 coord, in float wavelength); vec3 gamma_correction (in vec3 color) { @@ -108,6 +109,11 @@ return color; vec3 filter_combined (in vec3 color) { + // Apply some dithering to eliminate banding caused by rendering to a + // 32 bpp framebuffer + float dither_noise = rand2D(gl_FragCoord.xy); + color += mix(-0.5/255.0, 0.5/255.0, dither_noise); + if (use_filtering == false) { return color;