Linear Color space and Blender questions

I’m confused about how this is handled in Blender. I was wondering if someone could confirm what I’ve read about it.

Blender viewport and render is defaulted to Linear color space, correct? So how does this work behind the scenes because in Maya you had to use gamma correction to all incoming image texture nodes and the color slot of all non mental ray materials.

What I think I read in the Wiki is that Blender handles this behind the scenes, applying the necessary 2.2 gamma when SRGB color space is chosen for the display. Then, at render time, it automatically changes your color texture’s gamma to correct values (should be around .454545) and if it is .exr, .hdr etc. it leaves those textures alone.

Is that how it works? Do I not have to gamma correct anything?


Assuming your textures and output color space are both sRGB, you don’t really need to do anything, linear workflow will “just work”. Textures are automatically reverse-corrected, the color profile setting on the texture influences this. However, you will need to specifically disable this on textures that shouldn’t have it though (like normal or displacement maps).

Color swatches are linear color space, but are shown to you as corrected in the UI panels. (so the swatch appears on your monitor as the gamma corrected version of the color you entered). So you don’t need to bother with the gamma-correct node dance you do in Maya. The viewport and mat previews are also gamma corrected.

tl:dr: the only thing you should need to do manually is disable correction on 8bit normal/displacement maps. Other than that, set up the color management profile and just work.

Thanks for the quick and very nice reply! That’s cool that blender does that. That’s pretty much the problem with Maya as it stands is that it is such a dinosaur it doesn’t do these things on the fly.

When you say that I have to disable correction on normal and displacements, that means you just flip the image texture to “non-color” correct?

Thanks again.

Yep, exactly.

actually it is not true that Blender color swatches are gamma corrected in the viewport. Indeed they aren’t and this is the reason why many people is confused about blender color management.

To prove this you can do a simple test (with display srgb):

1) place a sphere on the scene
2) apply a dark red material rgb: 0.5,0,0 shading: shadeless
3) grab the viewport with any screen grabber (in windows you can use the print key)

now load the grabbed screen in Gimp and pickup the color, you will read rgb: 188,0,0 instead of the expected 128,0,0 value

Indeed it is possible to get gamma corrected colors in Blender, but you have to enter the rgb value in the HEX input field. For example 800000 for the above dark red. This is the only entry that gets gamma corrected in the viewport. The other RGB and HSV entries are not.

So in Blender you have the same issue as Maya color swatches, that are not color managed, with the difference that while in Maya this issue is documented, in Blender it is not.

to review:
RGB and HSV colors are linear input and they are not color managed in the viewport
HEX colors are srgb input and they are color managed in the viewport
textures are srgb input and they are color managed in the viewport

any updates for the color management in 2.8?