1 The idea
A blue or orange cast over the whole frame usually comes from the light or the camera’s white balance. In linear, the right fix is a multiply per channel (not an add), because a coloured light multiplies.
Find something that should be neutral grey and multiply until its three channels match. Here someone multiplied by (0.8, 1.0, 1.25); find the values that cancel it.
2 Hands-on in the mini compositor
Task: set the "fix" Multiply so the plate is back to normal
The value that cancels = 1 ÷ the original
3 Deep dive
Why multiply, not add
What the camera sees = light × how much the surface reflects. A bluish light multiplies every surface in the scene by the same set of numbers: dark rock changes a little, brighter surfaces a lot more. So the fix that matches nature is to multiply back.
The table shows the desert plate after a (0.8, 1, 1.25) cast, fixed two ways. The add fix was tuned so the sand comes back exactly, yet the dark rock ends up with negative blue and lifted red.
| Surface | With the cast | Multiply fix | Add fix |
|---|---|---|---|
| Dark rock 0.01 | 0.008 / 0.01 / 0.0125 | 0.01 / 0.01 / 0.01 | 0.038 / 0.01 / −0.025 |
| Mid grey 0.18 | 0.144 / 0.18 / 0.225 | 0.18 / 0.18 / 0.18 | 0.174 / 0.18 / 0.188 |
| Sand 0.15 | 0.12 / 0.15 / 0.188 | 0.15 / 0.15 / 0.15 | 0.15 / 0.15 / 0.15 |
Find something that should be neutral
Pick a matte, neutral surface in the main light: a grey card, a grey rock, concrete. Avoid speculars and flares, which carry the light source’s colour, and sample an area, not a single pixel, or the noise will fool you.
Each channel’s fix = target ÷ sampled value. A grey rock in the plate samples (0.16, 0.20, 0.25), luma about 0.195. To make it neutral at the same brightness, multiply by (1.22, 0.976, 0.78).
- 1Find a neutral surface
- 2Area-sample it
- 3Target ÷ sample
- 4Multiply per channel
Matching CG to the plate with a Grade
With lift, blackpoint and offset at 0 and gamma at 1, a Grade is a pure multiply: out = x × multiply × gain ÷ whitepoint per channel. Put a sample of a matte, should-be-neutral part of the robot into whitepoint, then a sample of the matching surface in the plate into gain.
After that, leave whitepoint and gain alone. If it needs to be brighter or darker, change multiply as one value for all three channels so the colour doesn’t drift.
whitepoint = from the element, gain = from the plate
In real shots
The plate’s colour is usually the cinematographer’s choice. Most comp work is making the CG fit the plate, not “correcting” the plate to neutral, unless the brief asks for it.
With mixed light, such as orange interior lamps and a blue window, one multiply over the whole frame can only fix one side. Split it by zone with masks, and do it all in linear, because in log a multiply no longer means a change of light.
4 In real work
In Nuke
- Multiply: enter separate r g b values (e.g. 1.25 / 1 / 0.8) when you know the exact numbers
- Grade: disable the node first, click the colour-picker button next to whitepoint, then Ctrl+Shift+drag in the Viewer to area-sample a neutral part of the element into it
- Enable the Grade again and sample the matching plate surface into gain
- Adjust brightness with a single multiply value; don’t touch whitepoint/gain again
- Mixed light: one Grade per zone, combined through the mask input or a Keymix
Common mistakes → the fix
- ✗ Fixing a cast with offset or lift✓ Use a per-channel multiply; an offset tints the blacks and can push them negative
- ✗ Sampling a specular or a flare as the whitepoint✓ Pick a matte surface in the main light and sample an area
- ✗ Re-tweaking whitepoint or gain to change brightness✓ Change brightness with one multiply value
- ✗ Neutralising the plate when nobody asked✓ Leave the plate as shot and match the CG to it
Before you send the shot
- Colour fixes are in linear and are multiplies
- Reference values come from matte, should-be-neutral surfaces, not highlights
- Deep blacks are neither tinted nor negative
- Neutral parts of the CG sit close to the matching neutrals in the plate
- Mixed lighting is handled per zone, not with one global multiply
5 Check yourself
In linear, what fixes a blue cast over the whole frame?
🔒 Answer the question above and this card opens
1. A plate was multiplied by (0.8, 1.0, 1.25). Which Multiply cancels it exactly?
2. Matching CG to the plate with a Grade: where should whitepoint come from?
Where the numbers come from: Computed in your browser. Saturation, Multiply, Clamp, Invert, Keymix, Copy and Grade match Nuke 17.0v2 (checked). Blur, Defocus, Glow, Sharpen, ChromaticAberration, Vignette, LensDistort, Grain, Erode, Toe, the Keyer and Despill are teaching versions, not identical to Nuke’s nodes. Transform here is also a teaching version: bilinear filtering, no concatenation, cropped at the frame edge. Images are our own Blender renders (the green screen is fully code-built; the desert scene uses Gaea 2.3 hills, a Poly Haven CC0 HDRI sky, Poly Haven CC0 rocks and grass, Quixel sand and cliff textures and a Mixamo rig for the robot, with Quixel and Mixamo used in the renders only).