High light fix and premature desaturate

ACES ultimately is just a series of brute force colour transforms, with no care or attention to the attached display. By “care and attention”, it is completely devoid of display rendering transforms that consider the output gamut volume. Anyone looking for magic on this front will be sorely mistaken.

You could wire up your rendering pipeline to be BT.2020, a simple aesthetic transfer function, and get exactly the same problems.

Accidentally adding complimentary light is not a solution and shouldn’t be considered as such. It’s an accident.

The issue is fundamentally spread across several nuanced places that aren’t entirely obvious:

  1. Any per-channel approach to a lookup will skew values toward the secondary mixtures. As we sample individual channels, the higher channels will run out of room to express the internal representation, and the colours skew. All per channel lookups skew, across the full range. It simply becomes more unacceptable as colours deviate from the achromatic mixture.
  2. Wider gamuts dumped to smaller gamuts lead to posterization, and worse, skewing. Similar to above, but manifest in extremely similar ways.
  3. Working rendering spaces with imaginary primaries add additional posterization as there is an implicit clip at the spectral locus.

The only way to avoid these sorts of things is to assemble a full display rendering transform, starting from first principles.

Should a value skew? What are the implications for mastering across different output contexts such as HDR and SDR, where a colour that has suffered skew will manifest entirely differently from one context to the next? If not skew, what is more sensible?

There are quite a few approaches out there that solve these issues, with greater or lesser success. Frostbite by default has an implementation for example, and several researchers such as Timothy Lottes has been chasing these issues for a number of years now. Comparing some of the output from Frostbite to other engines is quite breathtaking, as the nuances in the display rendering transform chain elevate the output beyond most other engines.

1 Like