updraftGrade
UPDRAFT's grade, in the two halves that answer different questions.
updraftGrade
UPDRAFT's grade, in the two halves that answer different questions.
The base look is a 32-entry colour cube — one fixed, non-linear transform of
the whole image that never changes across the film. Shadows are pulled toward the
cold blue of the moon, highlights toward the bone-white of burning paper, and the
toe is lifted a fraction so black reads as ink rather than as a hole. A shape that
never changes belongs in a table read by trilinear interpolation: it costs the
same eight texel reads whatever it does. installBase() bakes it and installs it
as the texture the lut post effect reads; transform(r, g, b) is the same
function in Luau, so a value can be checked without rendering a frame.
The movement correction is four numbers per movement — brightness, contrast,
saturation and a tint — cross-faded across each boundary so the grade arrives
rather than cuts. It carries the arc: Movement I is desaturated almost to
monochrome and cold, Movement IV is warm and lets the colour back in, Movement V
is cold again with almost nothing left in the frame to be coloured. at(t)
returns the correction in force at a film time, already faded.
Read by film.updraftLook, which pushes the correction onto the
color_correction post effect each frame.
Scoped to this part · feeds back into the world's score.