DCI-P3 Wasn't Showing
Needs ReviewPublic

Authored by Sofus Rose (Darkfie9825) on Aug 20 2016, 1:37 AM.

Details

Summary

System Information
Debian Stretch. uname -r: 4.5.0-2-amd64

Blender Version
Broken: Latest Linux 64 glibc219 buildbot build, as of writing.

DCI-P3 didn't seem to be showing. So I looked at config.ocio.

It would seem that an old (2012) commit (07082fb7d050) renamed DCIP3 in displays to DCI-P3 in config.ocio, without updating the active_displays setting properly (which currently lists DCIP3, not DCI-P3). This results in DCI-P3 not showing up in Scene-Color Management.

Exact steps for others to reproduce the error: Open any Blender file. Try to find DCI-P3 as a Display Device in Scene-->Color Management. It's not there!

This fix is simply to add the - back in config.ocio. I also added a Default (Academy RRT) for it, which it was missing.

Diff Detail

Sofus Rose (Darkfie9825) retitled this revision from to DCI-P3 Wasn't Showing.Aug 20 2016, 1:37 AM
Sofus Rose (Darkfie9825) updated this object.
Sofus Rose (Darkfie9825) set the repository for this revision to rB Blender.

I just noticed this was missing too, and came up with just about the same patch.

Now, I don't understand much about the OCIO system, I just started reading the docs today, but I'm thinking the default colorspace for DCI-P3 shouldn't be a duplication of the RRT film simulation. Simply going on the others (except Rec709), the default view is the same as the display.

So the line should be something more like:

- !<View> {name: Default, colorspace: DCI-P3}

But then, would it also need a colorspace definition to go with it, along with transforms? Like I said, I just started reading this stuff today. :)

Also I'm curious about the ordering of the Display Device menu. Why is it when DCI-P3 is added to the active_displays between sRGB and Rec709, it ends up at the end of the list on the menu inside of Blender?

My understanding from reading the standard is that yes, DCI-P3 would then require a colorspace definition (it doesn't have this). Ideally, I suppose it should have one, but I wanted to make as few changes as possible.

As for the RRT, it seems to me from browsing the rest of config.ocio that some of the other colorspaces use the RRT as well. From my research, the Academy RRT is designed to work with as many devices as possible; in this case, I'd argue that it's a good, compatible choice for being the default view transform (unless, of course, DCI-P3 defines a different transform for this purpose!), even if we do define the DCI-P3 colorspace later in the file.

As for adding it to active_displays, this is where Blender reads what display device types are available - the raw bug fix is just to fix that typo, but it irked me that it then had no Default transform (which might confuse the user).

Thoughts?

I'm still learning everything I can about OCIO (and YAML), but I'm thinking now that DCI-P3 is going to require a definition for to be complete. Yes, the other displays have RRT as an option, but their default view presents a different rendering than RRT. I'd say that the Default for the others is the most neutral, and should also be the same for DCI-P3. Incidentally, in the sample files provided with OpenColorIO it is called "DCIP3", without the hyphen. My editor, when set to YAML syntax, colors the "-P3" portion of the name in the bracketed list differently, even though Blender doesn't seem to have a problem parsing the file.

Long story short: I think it is best to leave off the Default until a proper, neutral default can be provided.

I also noticed a couple other little things with the config.ocio file. Off the top of my head, the Description for the Linear colorspace is actually the description for Rec. 709. I think this file has been neglected for a while, and needs to be looked over. It's no wonder, OpenColorIO is a complicated (and powerful) system, and probably not many people know how all the pieces work together.

This isn't going to make 2.78, so there's not a huge rush. I have an interest in making this work (and maybe including a couple more common display types--my current display has a gamut of 99% NTSC, and right now everything in Blender is over-saturated). I know there are a couple color gurus who work on Blender. Once I have a good, functional understanding of OCIO I'll get in touch with them and see what can be done to clean up the config file a little.

First, DCI-P3 is a specific shift in chromaticity to the DCI-P3 basis primaries. I haven't confirmed that the correct shift is going on yet with the one that is in the config, and I would not hold my breath as the configuration was cobbled together, mixing and matching transforms.

Second, the RRT is an absolute abomination for several reasons. It is a hacked variant of an original specification under ACES, it is obsolete, and on and on.

Third, order of displays should be governed by the order of Views in the display, not the active order.

Fourth, ACES RRT versus ODTs are entirely different things and don't really belong in the Blender configuration.

Bottom line, it is a confused and rather broken shambling mess.