1 The idea
RGB (1, 0, 0) does not say how red it is until you know the colour space. Each triangle is the range of colours that space can describe; ACEScg is much wider than sRGB.
An sRGB image going into an ACEScg comp needs a primaries conversion, not just a gamma change. Some default setups only change the gamma, and the colours come out over-saturated.
2 Hands-on
Pick ACEScg, push g up and r, b down
3 Deep dive
Primaries + white point = what RGB means
A colour space has three parts: three primaries, a white point and a curve (transfer function). Two files with the same numbers can be different colours if any of these differ.
| Space | primaries | white | Curve | Used for |
|---|---|---|---|---|
| sRGB | Rec.709 | D65 | sRGB | textures, web, monitors |
| Rec.709 | Rec.709 | D65 | Rec.709 (display BT.1886) | HD video |
| Display P3 | P3 | D65 | sRGB-style | wide-gamut screens |
| ACEScg | AP1 | ≈ D60 | linear | CG/comp working space |
| ARRI LogC3 | ARRI Wide Gamut 3 | D65 | LogC3 | Alexa footage |
Same red, new numbers
sRGB’s full red (1, 0, 0) becomes about (0.613, 0.070, 0.021) in ACEScg. ACEScg’s primaries are wider, so sRGB red is made with less AP1 red plus a little green and blue.
Neutrals do not move: white (1, 1, 1) and 0.18 grey keep their values, because the conversion also adapts the white point (chromatic adaptation). The other way, ACEScg’s full green (0, 1, 0) is about (−0.62, 1.14, −0.13) in sRGB.
Negative values = colours outside the triangle
Negatives after a conversion are not broken pixels; they are colours the target space cannot describe. They show up with LEDs, neon, saturated sparks and blue/green screens.
The trouble is that many nodes dislike negatives: keyers, divide, log conversions and gamma (in Nuke, gamma of a negative returns 0). Simply clamping them shifts the hue. The fix depends on the pipeline; some shows use gamut compression.
Invisible on an sRGB screen: find them with an Expression putting r<0||g<0||b<0 into alpha (see C9)
What to convert and what to leave alone
Images that are colour need both the curve and the primaries converted. Images that are data must come in raw with no conversion, or the numbers they carry get bent.
| Image | Convert? |
|---|---|
| colour textures, albedo, logos, sRGB stock sparks | yes: curve + primaries |
| HDRI (linear, sRGB primaries) | yes: primaries |
| normals, depth, motion vectors, position | no (raw) |
| roughness, masks, alpha, ID mattes | no (raw) |
4 In real work
In Nuke
- Nuke’s own colour management changes only the curve, never the primaries. A LogC plate read as AlexaV3LogC stays in ARRI Wide Gamut primaries.
- To convert primaries in that mode, use the Colorspace node’s primaries settings, or switch to OCIO.
- With OCIO, e.g. an ACES config, the Read’s input space converts both the curve and the primaries into the working space (e.g. ACEScg).
- OCIOColorSpace: convert a single element, e.g. sRGB stock sparks into ACEScg.
- Data passes (normals, depth, motion): tick raw data on the Read so nothing is converted.
Common mistakes → the fix
- ✗ Converting only the gamma of an sRGB PNG going into an ACEScg or ARRI Wide Gamut comp✓ Convert the primaries too, or the colours come out over-saturated and shifted.
- ✗ Colour-converting a normal or depth pass✓ Data must stay raw, or relighting and defocus go wrong.
- ✗ Clamping all negatives to 0 without thinking✓ Ask the pipeline first; some shows use gamut compression. If you must clamp, do it only where it causes trouble.
- ✗ “It looks fine on my screen”, so gamut is never checked✓ An sRGB screen hides out-of-gamut colour. Check for negatives, or desaturate to reveal the difference.
Before you send the shot
- Every colour element converted (curve and primaries) into the working space
- All data passes come in raw
- Negatives checked in saturated areas (LEDs, fire, screens)
- You know which config and working space the show uses
5 Check yourself
An sRGB texture goes into an ACEScg comp. What do you need?
🔒 Answer the question above and this card opens
1. sRGB red (1, 0, 0) becomes about (0.61, 0.07, 0.02) in ACEScg. Why?
2. After converting an ACEScg render to sRGB, a green laser shows negative red. What does it mean?
Where the numbers come from: Curves and matrices are computed from published definitions (sRGB IEC 61966-2-1, ARRI LogC3 EI 800, Rec.709/P3/Rec.2020/ACES AP1 primaries) and checked against published reference numbers. The tone curve is an example formula, not ACES/AgX/Filmic.