I know for Blender sets the color management setting globally for the project. As far as I am aware every data that is saved as image, will pass through the color management of Blender.

Now the problem is, I have data that I want to store as an image format (e.g. png not OpenEXR or HDR), that shouldn't be passed through color management. For instance I have an ID-mask in compositing, that I would like to store. This isn't an image, like a render, were the transformation through the LUT makes sense (or does it?).

If my understanding is correct, the color management used by the file output node treats the values like pixels, mapping each value to the corresponding value in the LUT. However with such data like the ID-mask the function should either be

1) the identity, if the output format allows to store floating point ([0.0, 1.0] -> [0.0, 1.0], f(x)=x) or

2) only scale to the range of output format (e.g. [0.0, 1.0] -> [0, 255], f(x) = (int) x * 255.0).

The latter of course introduces inaccuracies due to different ranges of values, but still does what is expected.

How can this be achieved or is my understanding of color management fundamentally flawed?

  • $\begingroup$ You can bypass color management completely if you use OpenEXR multilayer as the output format. It will allow you to save scene referred values for the image, and you can store non color data (like ID masks, Z-depth, etc) with no distortion. $\endgroup$ – user1853 Oct 23 '17 at 13:19
  • $\begingroup$ @cegaton that is true, I already knew that. Problem is, I want to use the files in another software that doesn't support OpenEXR. I assume blender has that limitation because .exr and .hdr are the only formats that allow to save the scene referred value unaltered. $\endgroup$ – John Oct 23 '17 at 14:16
  • $\begingroup$ As per @cegaton, change your colour space to non-data for data. That should keep all transforms off, including on save. If it doesn't, Blender is broken. $\endgroup$ – troy_s Oct 24 '17 at 5:08

You can get non-color managed non-linear files from image viewer: save with save as render option disabled (in 2.79 it is disabled by default). Maybe there's possibility to use bpy.ops.image.save_as in script to save images frame by frame for animation, but I'm not into python to help on this.

  • $\begingroup$ @Yash the answer is correct. Disabling the "save as render" option bypasses the transforms in Color Management $\endgroup$ – user1853 Mar 28 '19 at 17:49
  • $\begingroup$ @cegaton Apologies, I thought it was not! $\endgroup$ – Yash Mar 28 '19 at 17:52
  • $\begingroup$ @cegaton I just commented for but I'm not into python to help on this . $\endgroup$ – Yash Mar 28 '19 at 17:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.