Thank you @bottosson for a great posts and examples. I certainly learned a lot from this post. I decided to implement Oklab based DRT for Nuke, OkishDRT, for testing. Available from: GitHub - priikone/aces-display-transforms: Prototype ACES display rendering transforms
It has the following features (I’ve tested Rec.709 only):
- Tonescale derivative driven path-to-white. The tonescale is the MM tonescale, same as in the three ACES2 candidates. At first I went with simple derivative but it caused too many artifacts so it now includes a proper derivative, thanks to Mathematica.
- Uses mid(RGB) norm or alternatively Oklab L with the tonescale
- MacAdam limit approximation for BT.709, P3D65 and BT.2020
- Gamut mapping based on ZCAM DRT’s gamut mapper (LCh)
- Gamut approximation (for BT.709 only) as alternative gamut mapper. It’s not exactly identical to Björn’s example, I couldn’t get it working without artifacting.
Overall I’m not sure how useful the MacAdam limit is in practice. I would rather use it to make sure the DRT can reach colors that we want it to reach, rather than worry about fluorescing colors. In fact, I thought about adding RGBCMY weights to the Intensity (mid(RGB) or L) so that they could be used to sculpt the path-to-white better, for example to make sure that bright saturated yellows are possible to reach. The derivative driven path-to-white, though, works really well I think. Very easy to use in other DRTs too, like in ZCAM DRT, which I’ve tried already.