Regardless of the tools used, I see three fundamental things that have to happen to linear scene-referred data to be displayed or printed, in no particular order:
- Some kind of scaling to a perceptual range. Gamma is an operation of that category; there are apparently better ways to do it.
- Some kind of additional scaling to put the black and white points at the limits of the display range. I think this may be accommodating the camera DR. Also, I think Look stuff is considered here.
- Some kind of color gamut transformation to respect the limits of the output medium.
To my understanding to date, OCIO is clearly all over #1 and #2, and @gez’s latest post helped me develop a perspective on #3 that I need to consider a bit.
Back in the work part (before #1, above), I totally get working in the linear-0.18gray-floatingpoint basis for scene referenced data. Not discussed enough for my satisfaction in the 299 previous posts is management of the associated color gamut; I think in OCIO that is captured in the “reference colorspace”, and video folk seem to like Rec709 for gamut. Me, I’d rather use my trusty Rec2020 or something bigger within which to work color, before rendering it down to output gamut.
My last hangup is with respect to how to get OCIO to recognize the gamut of my camera, which in ICC I currently have in a oh-so-carefully-crafted (I’m so proud… ) calibrated camera profile. @anon11264400, I did look over your OCIO config that references the Nikon 5200, but not in sufficient detail to understand it, yet: GitHub - sobotka/nikonD5200ocio: Transform set based on Filmic with the Nikon D5200 camera transfer function.
My deal is this: my software is rather simple, and toolbox-like, so I can do a lot of fundamental things in arbitrary order. I think Photoflow is a lot like this. With that perspective, I see the utility in incorporating OCIO-based color management, but I also see ways to use ICC profiles to do the canonical things required to respect scene-referenced working data. Yes’ I’m pretty sure I’d be using the profiles in ways Mother Nature hadn’t intended, but until I can work out how to consider my particular camera in OCIO, I’m going to use scene-referenced data with ICC profiles, specifically to capture color gamut information and transforms.
In these discussions, we need to separate the canonical work (data encoding, transforms, etc.) from the particular mechanisms. Right now, I believe I’ve constructed a toolchain in my hack software that adheres to all the scene-referenced strictures discussed here, using linear-gamma ICC profiles to carry just the color primaries. LittleCMS lets the floating point color rendering transforms take place in “infinite space” (unbounded???).
I don’t have a 3DLUT tool yet, but I will pretty soon. In the meantime for linear-to-display I’m using a plain old power gamma transform (#1) and a curve tool (#2) in its place, but the deal is I’m doing linear-to-perceptual and display scaling. A LUT would give me better control, but it would be doing the same fundamental task. Oh, and linear-to-display gamut (#3) is handled in a transform using 1.0 gamma (that is, no gamma) ICC profiles.
This thread has schooled me in ways far beyond what I originally envisioned; thanks all for that. I just need to keep separated the concepts from the mechanisms…