Advertisement

You're blocking ads, which pay for BlenderNation. Read about other ways to support us.

What's Wrong with Blender Saturation?

19

bintang senja writes:

Hi Guys,

I want to share a better to way to use Saturation in Blender, in my opinion current Hue Saturation node is not great, but don't worry we'll fix it in the video anyway, also before that I want to thanks to all people behind Blender, they did amazing job and awesome things keep coming to Blender.

It's a bit long ( 10 minutes ), if you don't want to see some examples and what the reason behind this, you can jump straight to the tips on make a better saturation in Blender ( minutes 7:40 ).

Hope you Enjoy,
Thanks,

https://youtu.be/YQuZAPT9-oo

19 Comments

  1. What Blender appears to be doing is averaging the three RGB channels to produce the desaturated result. That will never be correct, because it takes no account of the eye's differing sensitivity to different colours. They then subtract that incorrect desaturated image to create their saturation component, which is of course thus also incorrect. Under those circumstances saturation and luminance can never track properly when increasing and reducing saturation.

    However when they produce black and white with the filter they do use the correct paradigm. There are two main formulae generally used, but the most common mixes red green and blue in the ratios 0.3 : 0.59 : 0.11. Blender appears to use that for the BW filter, but uses 0.33 : 0.33 : 0.33 for the broken HSL filter. Of course they look different, and of course Blender's saturation adjustment doesn't match anyone else's.

    • Nope. It's actually using a desaturation with preservation of Value which is max(R,G,B), not the average of those (with Value understood as that one in the HSV color model, not its general definition). And that is just one of the many ways to get a B&W image from a colored one. Saying that the one Blender uses is "wrong" is a bit of an overstatement, if anything but the methods applying the luminosity function are "wrong" then the one in Photoshop's Hue/Saturation filter is also "wrong", as that one preserves Lightness (as that in the HSL color model, M[R,G,B]+m[R,G,B]/2), not Relative Luminance. Also the formula you mention uses gamma-compressed values, Blender works with a Linear transfer function, so you wanna use the one where Y = 0.2126R + 0.7152G + 0.0722B.
      I agree that an approach to desaturation with preservation of Value(HS-V-) is likely to be less useful than one preserving RL, but it would be weird saying that that's the "right" desaturation as if it had perfect emulation of human sight, RL just accounts for human spectral sensitivity, that doesn't make it fully accurate (although certainly closer than others). Ligthness (as the one in CIELAB [L*]) also accounts for spectral sensitivity, plus the logarithmic nature of human sight. So is that the "right one"? Still no, 'cause it would still leave aside entopic phenomenas and other psychological influences on color perception, so it's a bit more complex than that.

    • JKIERBEL is correct, it's not wrong actually, it just a different way of Blender treat the Saturation by preserving the value. What I mean by "wrong" is not pointing that Blender is wrong on the saturation algorithm, Blender just use a different way that based on Value, so it looks like "wrong" in terms of other software packages, because other packages usually use their Hue/Saturation filter based on Lightness or Relative Luminance.
      So that's why for most people who jump from Photoshop or even Nuke to Blender they need to be careful to this HSV node in Blender, because it act differently.

      Thank guys for the feedback, really appreciate it :)

  2. Another thing I've been wondering is that when you invert the colors in Blender compositing nodes, you also get different results compared to other software. I don't know the reason for that, but when I learned it, I stopped using compositing nodes for texture editing.

    • Anyways, I think the whole compositing nodes should be done again with better controls. They are not very useful for color correction because for example the color correction node and color balance etc are very hard to use compared to the tools we have in almost any image editor.

      • Yes, I had talked with one of my friends who usually talk to developer, the dev said that Blender still need people to really handle the compositing part, they already aware on some of the weakness on this side. They need to really focusing on stuff that matter most in the development.
        But nevertheless Blender still awesome tools to be used. :)

  3. Yes, I understand the different profiles used for luminance, and just grabbed one that I could easily remember. I was lazy. As I said above, that is just one - in the broadcast industry it's defined to five decimal places and is known as BT.601 or often just 601. The values quoted by JKIERBEL are defined in another broadcast standard, BT.709 which is probably more common nowadays. Neither are "correct" in the sense that neither are absolutes.

    There is a new definition coming down the track which amongst other things defines colour gamut in terms of a real-world model. Defined as Rec.2020, this also puts luminance closer to the model used for 709 so in that respect I should arguably have quoted the 709 figures for conversion.

    However it's useful to know that Blender uses HSV internally - now that I know that it's obvious that would have to be the case. But "right" or "wrong"? I'll leave that to the users. Blender's approach produces an obvious luminance shift that no other application that I've encountered does, and obviously BINTANG SENJA felt concerned enough to devise a workaround, for which, thank you very much.

  4. Arnaud Couturier on

    Very informative. Color and its representations and manipulations seem easy to understand on the surface, but are complex actually, at least for me. Thanks for the tip.

  5. Jean-Pierre Brachet on

    Thank you all for this serious and interesting discussion. I used to separate the channels and treat them subjectively without algorithm. Uncomfortable!

  6. The fix doesn't completely work in the shader node editor at time of me posting this comment. For some reason changing the factor above 1 to saturate does nothing.

Leave A Reply

To add a profile picture to your message, register your email address with Gravatar.com. To protect your email address, create an account on BlenderNation and log in when posting a message.

Advertisement

×