grade
The film's colour, as two lookup tables and the post chain that carries them.
carrington.light.grade
The film's colour, as two lookup tables and the post chain that carries them.
Why two
The film's whole colour argument is sodium amber against aurora green, and the point of the story is that the amber goes away. That is not one look, so it is not one table:
cn_grade_dusk— indigo shadows under warm practicals. The sodium heads keep their colour while everything they are not touching goes blue.cn_grade_storm— violet shadows, green midtones, more contrast, crushed blacks, so the station reads as a black silhouette against the curtains.
They cross-fade between t = 84 and t = 132, which is deliberately NOT an act boundary: the colour turns while the station is still lit, so the look changes under the viewer rather than cutting. Outside that window only one of the two passes is enabled, so the chain costs one grade pass whenever the film is not changing act.
The chain
| pass | priority | what |
|---|---|---|
cn_bloom | 700 | bright-pass glow, threshold 0.62 |
cn_grade_dusk | 800 | Act I–II table |
cn_grade_storm | 810 | Act III–IV table |
cn_vignette | 900 | 0.34 |
threshold = 0.62 and not 1.0 because the tonemap lives in the material shader
— the frame arriving at the post chain is already display-referred, so nothing
in it is ever above 1 and a threshold of 1 blooms nothing.
The one non-obvious thing in the tables
The highlight tone multiplies; the shadow tone adds.
A sodium lamp in a night frame reaches the grade already at (1, 1, 1) — the
display-referred frame clipped it before the table could see it. An additive
warm tint cannot move a channel that is already at the ceiling, so an added
tint leaves a blown practical paper-white. A multiply pulls the two channels
that should be lower back down, and the lamp comes out amber again. There is a
shoulder above 0.72 for the same reason: without it every bright thing in the
frame lands on exactly the same white.
Both tables are baked with lut.build(24, fn) rather than lut.fromGrade,
because fromGrade applies one white balance across the whole range and this
look is a split tone.
Scoped to this part · feeds back into the world's score.