# Rendered image shows visible “line strokes” artefacts

If I just render the default cube it will look like this:

It is rendered with color depth 16. I can see there are artefacts consisting of visible "line strokes" on some of the cube faces.

The bands seems to not go darker and darker, but alternates between light and dark, or is my eye fooled?

Why?

# Edit

Here comes a gradient created by gimp without banding, using the same computer:

• This is due to banding. If you are viewing that 16bit image on 10 or 12bit display, you shouldn't see any banding. But on 8bit display the banding is still there and you get rid of it by dithering. Basically just add noise to the image. – Jaroslav Jerryno Novotny Mar 2 '17 at 18:15
• I view the image on a modern display. – Anders Lindén Mar 2 '17 at 18:23
• Then the artefacts would not grow when I am scaling it :) – Anders Lindén Mar 2 '17 at 21:41
• After some research, I can say the viewer isn't broken. The viewer is just not displaying the image in that way I would expect in 2017 @AndersLindén. It seems to be an opengl precision issue, probably to avoid conflicts with older graphic cards or due the lack of interest implementing this properly, not sure... However, nowadys it's possible to display the image without the banding and without manually adjusting a dithering value so hopefully a developer will fix this in the near future. – p2or Mar 4 '17 at 14:44
• Also I noticed that in most cases a dithering value of 0.85 is enough to get a clean image, but then this "generated noise" is baked into the image when saving as jpg or similar, which isn't really useful in most cases. So leaving the dithering value at 0.0, rendering as exr and adding real film grain at the end of the process is the way to go (IMO). – p2or Mar 4 '17 at 14:44

The artifact is called color banding and is a common occurence in computer graphics. (Most) computer monitors only have a range of 8 bit per channel. The human eye can differentiate a much greater resolution of light values, especially in dark tones.
See this less specific, but informative article.

Hence, color banding is especially visible in dark gradients. An image with a depth of 12 bit or more viewed on the according viewing device would have practically no visible banding.

Although a bit depth of 16 and higher are today's standard in computer graphics such as 32-bit floating points, which have no banding in theory (most) monitors remain in 8-bit color mode.

Most image related software "solves" this issue by adding noise to the image. This process is called dithering.

Different software manage this in different ways.

• The gradient tool in Photoshop has a dither option.

• Nuke dithers gradients dynamically in the output viewer.

• Blender has a dither slider, this allows the user to control the dithering amount manually.

By default, Blender's dither value is at $$0$$. That's why you can see the color banding even if the image is rendering in 32-bit floating points. Blender will always render images in 32-bit floating point color depth. Only when you save the image, will Blender convert it to the selected bit depth of the output format.

The image you displayed has dithering already applied. When increasing the contrast we can see the noise, which GIMP added to the gradient.

If we increase the dither property in Blender to $$1$$ and render the default group, there will be no visible banding artifacts.

Otherwise banding will show (dither value of $$0$$).

Increasing the contrast afterwards can reveal the dithering noise. (Left, dither at 1; right: dither at 0)

### When should I not use dithering?

Do not save images with applied dithering when you plan on processing them further. Save them with a high bit depth (16-bit or more). Postproduction applications can then do color operations correctly and dither the image at the last step if necessary.

Example: A color correction with applied dithering noise would change the amount of noise in some parts of the image thus resulting in uneven dither, which could possibly be visible.

### When should I use dithering?

Use dithering in the final step of production, where the product is created which has the chance to be viewed on an 8 bit display. (In other words all final image material.)