|
@@ -462,12 +462,6 @@ void main() {
|
|
}
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
|
|
- if (params.use_debanding) {
|
|
|
|
- // For best results, debanding should be done before tonemapping.
|
|
|
|
- // Otherwise, we're adding noise to an already-quantized image.
|
|
|
|
- color.rgb += screen_space_dither(gl_FragCoord.xy);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
color.rgb = apply_tonemapping(color.rgb, params.white);
|
|
color.rgb = apply_tonemapping(color.rgb, params.white);
|
|
|
|
|
|
color.rgb = linear_to_srgb(color.rgb); // regular linear -> SRGB conversion
|
|
color.rgb = linear_to_srgb(color.rgb); // regular linear -> SRGB conversion
|
|
@@ -498,5 +492,11 @@ void main() {
|
|
color.rgb = apply_color_correction(color.rgb);
|
|
color.rgb = apply_color_correction(color.rgb);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if (params.use_debanding) {
|
|
|
|
+ // Debanding should be done at the end of tonemapping, but before writing to the LDR buffer.
|
|
|
|
+ // Otherwise, we're adding noise to an already-quantized image.
|
|
|
|
+ color.rgb += screen_space_dither(gl_FragCoord.xy);
|
|
|
|
+ }
|
|
|
|
+
|
|
frag_color = color;
|
|
frag_color = color;
|
|
}
|
|
}
|