Introduction
The topic gamut is becoming more and more important as new standards like UHD, Rec.2020 and HDR emerge. On the acquisition side digital cameras record in whatever camera “wide” gamut and displays can have or support a lot of different gamuts nowadays.
I found a very good and playful blog entry about the topic gamut here. It is a long but well written article. https://ciechanow.ski/color-spaces/
On this page I am going to focus on:
- Blender and its new default render settings. (sRGB & Filmic)
- Comparing the “old” render setting sRGB to ACEScg.
- RGB values and what they mean in two gamuts.
Note: All the EXR renders are done in Blender 2.8Beta with Cycles , white balance and conversion to JPG in Nuke NON-Commercial and the Hamburg-Hafencity HDRI is from INFECTED.digital.
Preparation
Different Tone Mapping methods and two gamuts
The following renderings are coming from the same Blender scene. The only thing that is different ist the tone mapping curve. In the ACES scene also happens a gamut conversion from ACEScg to Rec.709.
Note: Although the Filmic tone mapping curve is the new Default in Blender, from here on I will ignore this mode and focus on the standard sRGB/Rec.709 vs. ACEScg gamut.
Standard sRGB – a standard created for CRT monitors
This is at least for me how I worked for the last 15 years. Add a highlight soft clip to avoid the burning highlights especially around the red and green spheres and the render looks “fine”.
Note for all the following images:
- The text left-down in each image shows in which setup it was rendered and displayed.
- “linear sRGB” is the standard gamut.
- “sRGB” is the tone mapping curve.
- “ACEScg” means it was rendered in the bigger ACEScg gamut.
- “Rec.709” is the ACES RRT and ODT (tone and gamut conversion).
ACEScg – support for wide gamut and HDR
ACEScg has a lot bigger gamut than sRGB/Rec.709, but the RGB values were not converted from one gamut to the other. The values in ACEScg get converted and compressed to fit into the gamut of sRGB/Rec.709, therefore the result is far more saturated.
Additional note & new segment on the 21st of April `19:
With the help from ACES-Central (thanks to N. Shaw) I was able to plot RGB color values on a diagram that are outside the gamut boundary of Rec.709 but inside the bigger gamut of ACEScg.
But I was giving a hint that I have to clarify what I want to show with it.
For this I added for the two following diagrams Rec.2020 next to Rec.709 and ACEScg. Rec.2020 is the “upcoming” standard for UHD displays and an output referred colorspace (same as Rec.709) whereas ACEScg is a scene referred colorspace.
Although I am working in the bigger colorspace of ACEScg now in Blender, I am not going to see these scene referred RGB values. What I am seeing are the colors after the RRT and (in my case Rec.709) ODT. So the output of the red color plot RGB value [0.5, 0.03, 0.03] viewed through the RRT&ODT will be inside the Rec.709 gamut.
Take a step back and compare the RGB values
The shader for the cubes and spheres have always the same RGB values in all the Blender scenes. 0.5/0.0/0.0 for the red objects, 0.0/0.5/0.0 for the green objects and 0.0/0.0/0.5 for the blue objects. The grey floor has a value of 0.5/0.5/0.5.
This is the ACEScg scene rendered and viewed over the RRT&Rec.709 ODT.
This is a combination of the ACEScg render and the linear sRGB/Rec.709 render imported and converted into ACEScg. From the split line up you can see how different the gamut between ACEScg and sRGB/Rec.709 is. Especially on the red, less on the green and very little on the blue.
Looking from two angles – same but different
Import sRGB/Rec.709 values into ACEScg:
The first image shows how much bigger the gamut of ACEScg is against sRGB/Rec.709. A sRGB value of 0.5 in red is only about 0.3 in ACEScg.
Import ACEScg values into sRGB/Rec.709:
The second image shows how intense the red value of 0.5 in ACEScg becomes when viewed in sRGB/Rec.709. The negative values show that the ACEScg values are out of gamut in sRGB/Rec.709.
A small update in 2022:
I received an email with a question about how I converted the values from linear sRGB to ACEScg. I usually use Nuke and the OCIO ColorSpace for that purpose. There is also a website where you can do all kinds of the conversions.
Use converted RGB values to get the same “look” of standard RGB but in ACEScg.
Conclusion
Working in a wide gamut color space like ACEScg needs some attention when setting shader values, especially when you are used to work in linear sRGB/Rec.709 for years without even knowing it.