Color Bleeding | in Shader


Originally, the Color Bleed effect was noticed in photography. As you take a photo of something colourful, with high brightness, the colour in the photo may get a bit washed - closer to white. This effect wasn't too unwanted, and sometimes even simulated in 3D rendering software to make images more photo-realistic. I added the effect to each of the Shaders of my Playtime Painter Asset. Basically, it's just a simple operation of:


    float3 mix = col.gbr + col.brg;

    col.rgb += mix * mix*bleedStrength;

Colour from each channel (Red, Green, Blue) "leaks" or "bleeds" into other channels.

You can compare the effect in the images above. First - with colour bleed; second - without. Overhead of Red colour fills Blue and Green channels, adding towards white. Brightness in both cases is incredibly high (and the same). Increasing brightness even further will not change the second image by much, it will only make the edge between red and black sharper. The first image, on the other hand, will keep losing red in favour of white as the brightness increases.

The effect can be more subtle in normal light:

Since I use colour to the power of 2, Bleed is more noticeable when brightness is above 1. Also, you will see more of it with high-contrast colours, other colours will just become brighter.

In conclusion: I am not planning to use Color Bleed all the time, but it is certainly something to be mindful of when finding ways to achieve the desired look.