Jed Smith has done another brilliant video that I wanted to share with you. If every single person from the VWG could have a look at it, I think it’d be a good thing. It is only 40 frames long and it shows us the path to white on ACEScg samples through the current Rec.709 ACES Output Transform. And it is awesome.
During the TAC meeting, it has been said :
There’s two implementations here […] Whether you should facilitate the maximally saturated output of a given color, whether you should enforce a desaturation towards white in order that you get these kind of nice hue property […]. And those two things directly are competing because one desaturates, the other one requests you not to […].
Although I do not disagree with this statement, I think it can be misleading. I think there is only one acceptable solution : not collapsing values at display on their path to white. I would rephrase it this way :
- Facilitating maximally saturated output of a given color (which is the supposed current behavior) is actually more of a collapse of the values on display gamut boundaries.
- Enforcing a desaturation towards white is acknowledging the fact that displays have limitations and scene radiometric values should be compressed. We are not enforcing anything really.
I have made some screenshots of the video to explain as best as I could.
Frame 1 : we start with low exposure values. So far, so good.
Frame 14 : red values start to collapse on the display limitations. Because a Rec.709 display monitor has limitations.
Frame 19 : blue and purple values collapse on the display limitation. Pay attention to the hue deviations/twists.
Frame 21 : green values collapse on the display limitations.
Frame 26 : The per-channel “accident” kicks in. Values “bounce back” from display limitations in order to go to white.
Frame 32 : Remember the original samples : they were a sweep of the whole spectrum. On their path to white, they collapsed into 6 values (aka the notorious 6).
You have the right to like this behavior. But I really don’t think this should be the default output transform. I think we can and should do better. We are trying to reproduce faithfully a scene by taking in account the display limitations, right ? And in order to do so, we need to compress values, which per-channel doesn’t do (well enough/at all).
And how we compress these values nicely/smartly/elegantly is actually a point of debate. Exactly like Lars Borg said in meeting#5 :
The effectiveness of this method will mostly rely on the quality of the gamut compression.
This is why the subjective/creative argument about per-channel does not work for me. I really don’t think that collapsing values is about taste. And this is what Jed is trying to address with his naive DRT.
I am more than happy to hear suggestions/ideas/comments on how things could be handled differently. But I don’t thing we can demonstrate things more clearer than that.
- If values don’t go to white, where should they go ?
- Per-channel is an (engineered) accident that does not really compress anything.
- Per-channel and film emulsion have not much in common.
- Per-channel does not facilitate maximally saturated output of a given color, it just collapses and twists them in a way that you may like, but that should not be default behaviour.
Finally, I would like to quote Rod Bogart from the TAC meeting :
the efforts that we’ve been going though, over the years, have led to this, that we couldn’t do this first. […] And now that we’re here, it’s time.
Now is the time do something awesome. Here is the Nuke script if you want to play with it.
ACES_Rec.709_Swatches_Exposure_Visualization.nk (146.9 KB)
Update : Jed has done the same video with his DRT so we can compare. Thanks Jed !
And for completeness, two final images (thanks again Jed !).
A pure AP1 hue sweep rendered through the ACES Rec.709 output transform :
This image is the same but the source with 90% of the AP1 gamut volume as input.