ColorMatrix
Recombine the color channels of every pixel through a 3x3 matrix and an offset.
Each output channel is a weighted sum of the three input channels plus a bias, so red comes out as rr * r + rg * g + rb * b + rBias and the other two rows read the same way. Channels are the encoded signal in the range zero to one, the same domain Brightness multiplies, and the result is clamped back into that range once the whole matrix has been applied. Alpha is never touched.
Every other color effect in this package is one of these under the hood, and a run of them is folded into a single matrix before any backend clamps, so an effect that pushes a channel past white and one that pulls it back again cancel out rather than saturating in between.
On an export that keeps an HDR grade the frame holds light rather than a signal, so the light is read as the signal an SDR display at reference white would have been fed, the matrix runs on that as written, and the result goes back to light. The ceiling is the format's peak rather than white, so a channel pushed past 1f keeps going where an SDR export saturates, and a channel pulled below zero is black on both. Only a bias depends on where white sits.
The defaults are the identity, so a caller names only the entries that change.
Throws
when any entry is not a finite number.