It goes to eleven: linear and floating

As I was reading a couple of articles about ACES in CG and VFX I realized that a lot of the articles I read miss a very important point about the linear workflow: it comes with floating-point, that not only allows to have simpler and more accurate maths, but also to go beyond white, to describe high energy specular values for example. In a CG render we try to describe energy in a simulated space, so it shows some colors in a display space (that is physically limited by the capacity of the display device). That also means we need some translation mechanism to shoehorn the energy into a viewing sensation that is represented on the display. For example if you have car headlights pointing directly at the camera, the display won’t be capable of getting the energy to your eyes. If the transformation is well done, you should have the sensation that this peak white is effectively blinding, and other elements in the scene around the headlights should be difficult to see as you’ve been blinded by the light.

If you have a basic mechanism, it will just clip the highlights and it will just look bad. An advanced mechanism would potentially imply having spatial components (glare/flare) and not just being pixel based tone mapping, and this has to be linked to the viewing conditions.

Back in the early days of CG workflows (pre-EXR) we used to keep some headroom to protect some of the highlights but that wasn’t very efficient with gamma encoding, wasting code values. It can be much better using some kind of log encoding though while still keeping integers (great work from Toodee here). Good thing with EXR files is that you can go crazy on the values since you have floating point and great lossless compression available. The highest and lowest available values to describe the scene the more accurate and/or pleasing reproduction can be obtained (if you have enough precision).

I like pink

In music we have this magic thing that is compression: expressiveness of a guitar amp is about the way it transforms the dynamic of the playing with some nice harmonic distortion, and there’s plenty of different ways of doing that. You may have some more accurate compressors that just reduce the dynamic of the content to make it fit into the limited dynamic of radio transmission, but in many cases the compression is used very creatively, in all kinds of music styles.

Tone mapping is pretty much like that, it can either be done “technically”, based on some mathematical models of the human visual system, or more creatively: in a live action workflow, the camera captures a large dynamic range, and the colorist has a lot of signal to play with, that can be distorted at will to obtain the right look.

How does ACES deal with that? Well, the original ACES concept was pretty much mimicking the good old DI workflow where a Lookup Table was converting the Cineon log to the digital cinema P3 colorspace while emulating the film print look. So there’s a bit of a mix into the output processing, where there is some technical colorspace conversion, but also a pretty strong artistic intent, that “ACES look”. It can be inverted, but that ain’t easy. What is great about this process is that it’s a standard, so anywhere you go, any tool or any facility where it’s (properly) implemented you have exactly the same formula that is applied. Before that every VFX facility or lab had its own proprietary internal sauce, which made the whole production process a rollercoaster (can be fun!)

In the future, we can hope that a more mature implementation of Look Modification Transforms into the tools of the industry, will allow to finally separate the look aspect from the technical aspect of the tone mapping.

Feel free to comment in the dedicated Rockflowers Q&A channel