That's called banding, and under certain conditions it's unavoidable. I had to deal with it in my printing days a lot!
TVP works with 8 bit per channel (as do most other bitmap programs by default), which normally is enough. This means that you have 256 distinct levels of gray in each channel from white to dark, or from 255 to 0. Now if you spread this gradient from one side to the other in HD (1920px), each gray value will be a stripe of 7,5px width - nothing you'll notice. Now if you spread a much smaller colour distance over the same space distance, like from 255 to 224, each band will be 61,7 px wide - and this is noticable, especially with brighter values.
In printing this happens quite often because we use 1-channel gradients of flat colours a lot. But most time we work with non-flat colours which have values in all 3 RGB channels, and different colour distances in each channel per gradient, so the different widths will overlap nicely.
In your example the spatial distance is about 550 px, and the RGB values are:
Code: Select all
32 29 20 top right
90 83 37 bottom left
––––––––––––––––––––––––––––––––
58 54 37 colour value distance
––––––––––––––––––––––––––––––––
10 10 14 width of colour band per channel
and this is a clearly visible width, especially as two channels will have the borders between bands at roughly the same spot.
One way to deal with this would be to calculate each gradient (and also any lighting effect - it's just a gradient as well) with
dithering. In PS I use this setting per default. What it does is, it adds a bit of mathematical noise to each channel, so the borders of bands, or the borders between values, are broken up completely. Think of it as a coffee with milk: the normal gradient is coffee and milk separated, the dithered one is the same but stirred!
I've done a test with your colour values here: top is your normal gradient, bottom is the same gradient but with dithering. Center is the results with maxiumum contrast so you can see the effects more clearly.
- dither.png (79.99 KiB) Viewed 18782 times
In TVP, you need to add noise manually. You will see no banding on any textured background (as long as the texture grain is about the same size as the bands), so why not start with that? It's the easiest solution. Another way would be to add some noise or grain on the gradient after creation, if it's on a separate layer. If you have any other "noise" layer later, like a smoke effect or an overall film grain, you don't need to bother at all because in that step the banding will disappear.
As a rule, just remember: small colour steps over big screen distance in flat colour will likely cause banding.