1
$\begingroup$

I would like to output both images where the color management (like filmic) is applied and save an object-ID pass. The catch is, the object-ID pass needs to contain the object as absolute white #FFFFFF. This of course doesn't work since the color management is set globally for the project and the "File Output"-node always applies the color management.

Is there any way to circumvent this? Since performance is critical I can't do a second render with switched color management.

$\endgroup$
  • $\begingroup$ Maybe @troy_s can tell what input value is mapped to white by filmic. $\endgroup$ – John Oct 22 '17 at 14:05
  • 2
    $\begingroup$ I can. I'm curious about this odd limitation however with regards to object-ID passes? I'm completely a worthless hack on this front, so any further explanation you can offer would be appreciated. The minimum and maximum values are calculated 2^stops * middleGreyPegPoint. In Filmic's case, this would be 2^-10 * 0.18 for minimum and 2^6.5 * 0.18 for maximum. The object ID pass relying on a display referred value just seems batpoop wrong though. $\endgroup$ – troy_s Oct 22 '17 at 18:14
  • $\begingroup$ @troy_s thank you for your help. The pass itself doesn't rely on it, the output to a file however does. The way I have to use the data requires it to be saved in a format like .png (in general no format that supports the output of the raw data like .exr or .hdr). Therefore I need some hack to get the white value from the object-ID pass to be stored as actual white color. $\endgroup$ – John Oct 22 '17 at 21:37
  • $\begingroup$ @troy_s as far as I can tell, blender has no way of disabling color management (or using linear) for selected file output nodes. $\endgroup$ – John Oct 22 '17 at 21:39
  • $\begingroup$ @troy_s value works like a charm. Still a dirty hack though. $\endgroup$ – John Oct 22 '17 at 21:41
0
$\begingroup$

Ok I found a way to do it. Instead of doing an alpha over with the ID Mask between black and white, I use black and a value node. The value node is set to a high value, high enough for the filmic color space transformation to map it to the maximum value 255/#FFFFFF in the output.

This has two problems though, 1) it depends on the "alpha over"-node to accept higher values than usually available (this should be ok, since internal representation is floating point), 2) I just took some high value instead of basing it on what value is mapped to white.

$\endgroup$

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.