Home · Lab · Color

C8 White balance with a colour multiply

A blue-tinted plate, fixed with per-channel multiplies

Color · ~6 min · Free

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

SkyVFX mini compositor · C8640×360 · float · 1001

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.

SurfaceWith the castMultiply fixAdd fix
Dark rock 0.010.008 / 0.01 / 0.01250.01 / 0.01 / 0.010.038 / 0.01 / −0.025
Mid grey 0.180.144 / 0.18 / 0.2250.18 / 0.18 / 0.180.174 / 0.18 / 0.188
Sand 0.150.12 / 0.15 / 0.1880.15 / 0.15 / 0.150.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).

  1. 1Find a neutral surface
  2. 2Area-sample it
  3. 3Target ÷ sample
  4. 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

  1. Multiply: enter separate r g b values (e.g. 1.25 / 1 / 0.8) when you know the exact numbers
  2. 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
  3. Enable the Grade again and sample the matching plate surface into gain
  4. Adjust brightness with a single multiply value; don’t touch whitepoint/gain again
  5. 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

One question to check yourself

In linear, what fixes a blue cast over the whole frame?

What you learned

🔒 Answer the question above and this card opens

More questions

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).