I first conducted these tests in October 2014 in response to a 3D-Pro thread discussing the likely effects of using ACES primaries (specifically AP0) as a rendering color space. Since then the ACEScg specification was released (AP1), which is roughly equivalent to Rec.2020, so if you like you can read "Rec.2020" as "ACEScg" below.
This page compares images rendered in Arnold using spectral rendering and different sets of colourspace primaries: Rec.709, Rec.2020, ACES and DCI-P3. The SPD data for the GretagMacbeth Color Checker are the measurements of Noburu Ohta, taken from Mansencal, Mauderer and Parsons (2014) colour-science.org. Each box is lit by a small area light with a D65 SPD. All spectral calculations are performed over the interval [380nm, 780nm] at 5nm increments. For the RGB renders, the colour swatches are preconverted into the appropriate primaries before rendering, and the lightsource is pure white (1,1,1). To make comparison easier, all RGB colour spaces are assumed to have a D65 whitepoint. All materials are pure lambertian and the scene was rendered with 10 bounces.
You can compare the images with the slider thingy I nicked from Wojciech Jarosz's website or you can download all the jpegs and exrs from google drive here: color_checker_comparisons_v0002.zip
Contents
1. Rec. 709 Display
First, we compare images rendered in spectral, Rec.709, Rec.2020 and ACES and converted for a Rec.709 display using a display gamma of 2.2. In other words, it asks the question "what are the best set of primaries for rendering when targeting a computer monitor?"
Click the links below to open the full-res (3k) jpegs.
| Primaries | RMS error |
|---|---|
| Rec. 709 | 0.0138161 |
| Rec. 2020 | 0.00704586 |
| ACES | 0.0153788 |
2. DCI-P3 Display
Next, we target a DCI-P3 display, rendering spectrally and with Rec.709, Rec.2020, ACES and DCI-P3 primaries (but with a D65 white point). In this case we are asking, "what is the best set of primaries for rendering when targeting a digital cinema projector?"
Click the links below to open the full-res (3k) jpegs.
| Primaries | RMS error |
|---|---|
| DCI-P3 | 0.00740128 |
| Rec. 709 | 0.011618 |
| Rec. 2020 | 0.00581693 |
| ACES | 0.0130438 |
3. Colour Volume Anaysis
Finally, we examine the range of colours generated relative to different colour volumes. Since we're targeting digital cinema, we'll just consider the P3 gamut and Pointer's gamut (please see colour-science.org for more volumes).
The images here are a small subset of the full analysis that Thomas Mansencal did on the renders. For the full results, including chroma diagrams, please see his notebook .
First, DCI-P3. The P3 volume is large enough that even rendering with ACES primaries doesn't generate any out-of-gamut colours, so we're safe!
Next, Pointer's gamut, a real object colour gamut, representing reflectance factors of approximately 4000 different objects. All the primaries generate non-physical colours, with ACES (unsurprisingly) being the worst, but not by much.
4. Conclusions
The main takeaway is that, as expected, rendering in any set of 3 primaries is inadequate compared to spectral rendering. Subjectively speaking, the differences aren't huge (at least in this limited test) and all the spaces suffer from some noticeable colour shifts relative to the reference. Rec. 709 seems to suffer the worst from this, generating the most saturated colours. In terms of what makes a good colour space for rendering, Rec. 2020 gives both the lowest RMS error and the smallest amount of colours that lie outside Pointer's gamut, the latter being theoretically important for generating physically plausible renders.
More tests need to be done. In particular the next round of tests will consider glossy objects. It would be good to try Greg Ward's SharpRGB colour space and see how that compares. The tests should be fixed to use native white points and proper chromatic adaptation, to see if that affects the results. It would also be good to try some different scenes with different spectral data - a physical sun/sky system perhaps.