top of page

Does post-processing reduce the quality of the image?

Yes, it can if there are transparent elements in the frame and a contrast curve or LUT is used.

This is something I saw in aerial shots that can be found even in big-budget movies. The clouds may feel just slightly off.

Transparent Object

Be it a rendered frame or a captured real-life image, if there is, for example, a cloud, it has a certain opacity.

Opacity 60%, would mean that the colour for the given pixel would be 60% between the colour of the ground and the colour of the cloud.

Final Color = Ground Color * 40% + Cloud Color  * 60%;

And even though the opacity of the cloud is different for different parts, our brain can identify that the cloud is a separate object, with its dynamics and position.

The nature of LUTs, contrast curves and some filters are such that a colour is mapped onto another colour. If you were to map the ground and clouds separately and blend them, the result would be different than when we blended them and then mapped the result.

The blue in the image below shows how the colours would blend if post-processed independently, while yellow - if they are blended first and then post-processed:

The fact that the result is different is in itself not a problem. The problem comes from the fact that the contribution of each layer will map differently, based on the other layer. In other words, the ground will look brighter, because the clouds above it are bright. Two similar parts of the terrain will be mapped by different parts of the curve because the final pixel is brightened by the cloud above.

Now, let us put this theory to the test. Let's curve the layers separately:


There is always a matter of an artistic choice. One effect can be more beneficial than the other for getting the desired look. But I believe that there is always a subconscious aspect - there may be things that feel "Off" or "Imperfect" and we just can't tell why. And in most cases, math can answer the question.


Almost forgot. This is a Shader blog. If you are doing rendering, try to apply post-processing After rendering the Opaque object, not after Transparent:

You may discover you can push the post-process even further, as it no longer creates those weird artificial-looking blends.


bottom of page