Maniphest T58805

Isolate File Encoding Colour Management
Confirmed, NormalTO DO

Assigned To
None
Authored By
Troy Sobotka (sobotka)
Dec 5 2018, 5:45 PM
Tags
  • Images & Movies
  • Core
  • BF Blender
Subscribers
baoyu (baoyu)
Brecht Van Lommel (brecht)
Felix Herbst (herbst)
Jose (Dogway)
Stefan Werner (swerner)
Troy Sobotka (sobotka)
Vit Kovalcik (Blackx)
1 More Subscribers
Tokens
"Love" token, awarded by Blackx."Love" token, awarded by williamgs."Love" token, awarded by Dogway.

Description

Currently, a pixel pusher with the correct view set for an Apple Display P3 Display, ends up baking in the Display P3 transform into file encodes due to the way Blender encodes the file based off of the currently selected view.

Solution is to isolate the file encoding from the other output contexts such as displays and views.

Event Timeline

Troy Sobotka (sobotka) created this task.Dec 5 2018, 5:45 PM
Troy Sobotka (sobotka) updated the task description.
Troy Sobotka (sobotka) added a project: BF Blender: 2.8.
Brecht Van Lommel (brecht) lowered the priority of this task from 90 to 30.EditedDec 5 2018, 6:35 PM
Brecht Van Lommel (brecht) added a subscriber: Brecht Van Lommel (brecht).

This is not a bug per our bug tracker policy, nor does it have the required information:
https://developer.blender.org/maniphest/task/edit/form/1/

If you want to create a design task and work on this area that's fine, but it's not clear to me what your intent is here.

Troy Sobotka (sobotka) added a comment.Dec 5 2018, 6:54 PM

Intent is that a person who saves a file using a proper transform doesn't end up with the proper file.

That's a bug, no?

Brecht Van Lommel (brecht) raised the priority of this task from 30 to Normal.EditedDec 5 2018, 6:59 PM
Brecht Van Lommel (brecht) edited projects, added Images & Movies; removed BF Blender: 2.8, BF Blender.
Brecht Van Lommel (brecht) edited a custom field.

No, it's a limitation of the color management implementation, more of a to do item.

The design for this is not obvious as well, which settings are shared between display and output, which OpenColorIO settings or color spaces to use.

Sam Van Hulle (sam_vh) mentioned this in T68926: Color Management Improvements.Sep 5 2019, 2:41 PM
Jose (Dogway) awarded a token.Dec 12 2019, 5:29 PM
Jose (Dogway) added a subscriber: Jose (Dogway).

I think currently this behavior only applies to byte type formats (ie EXR half-float unaffected)

Troy Sobotka (sobotka) added a comment.EditedDec 12 2019, 6:43 PM

EXRs are designed to encode any type of data, which may include but is not limited to:

  • scene linear colour data
  • display linear colour data
  • scene nonlinear colour data, typically via a log-like transform
  • display nonlinear colour date
  • linear or nonlinear non-colour data such as depth, normals, cryptomattes, alpha occlusion, etc.

So while you are correct that the _current_ behaviour is for byte encoded data, it would also technically impact EXRs based on the colour space input setting, as the saving of EXRs is based on the in-reference memory state.

For the colour data components, proper transform chains are required for all, even when saving from one already linearized format to another.

In terms of a design, a simple stack of transforms would suffice, with a “default” set via preferences. The preferences would be set by default based on OCIO default roles, and overridden where the audience has set a specific default.

Wouter Stomp (wouterstomp) added a subscriber: Wouter Stomp (wouterstomp).May 7 2020, 2:52 PM
William Schilthuis (williamgs) awarded a token.May 10 2020, 9:34 PM
William Schilthuis (williamgs) added a subscriber: William Schilthuis (williamgs).
Stefan Werner (swerner) added a subscriber: Stefan Werner (swerner).Jul 17 2020, 12:40 PM
Vit Kovalcik (Blackx) awarded a token.Jul 30 2020, 1:35 PM
Vit Kovalcik (Blackx) added a subscriber: Vit Kovalcik (Blackx).
baoyu (baoyu) added a subscriber: baoyu (baoyu).Dec 21 2021, 9:27 PM

a pixel pusher with the correct view set for an Apple Display P3 Display, ends up baking in the Display P3 transform into file encodes

For display referred file formats, it's the right strategy. While for exrs, blender as the image producer, should write the gamut metadata(I assume blender already did this since a patch some time ago).
As a recommandation: for the display referred file formats like jpg and pngs, blender should write a "srgb.icc" or "p3.icc" into the image file, since if not, a external composite software would have no clue the image's gamut.

Bastien Montagne (mont29) added a project: Core.Jan 25 2022, 11:56 AM
Bastien Montagne (mont29) added a project: BF Blender.Jan 25 2022, 12:28 PM
Bastien Montagne (mont29) moved this task from Backlog to Long-term - Nice To Have on the Core board.Jan 25 2022, 12:40 PM
Felix Herbst (herbst) added a subscriber: Felix Herbst (herbst).Jul 12 2022, 11:23 PM