1 The idea
Symptom: the artist plussed sparks into the CG, but in the comp they have almost all gone; only the part over the robot survives. The robot’s edge has also turned into a dark line. Two symptoms that look unrelated, from one cause.
The sparks have alpha = 0. Premult multiplies colour by alpha, so everything outside the robot’s alpha becomes 0. And the robot render was already premultiplied, so multiplying again darkens its edge. The same thing happens on real jobs to extra CG passes that aren’t inside the alpha: after a Copy + Premult they silently vanish.
Premult: rgb · a → a = 0 gives 02 Hands-on in the mini compositor
Task: find the one node behind both symptoms and fix it to match the target
3 Deep dive
Premult is a multiply by alpha
Premult only does rgb × a, so anything with alpha = 0 becomes 0. Light, fire, emission and extra passes, often rendered with alpha 0 or outside the object’s alpha, vanish the moment they pass a Premult.
This case has two symptoms from one cause: the sparks vanish (alpha 0) and the robot’s edge goes dark (already premultiplied, then multiplied again). When several symptoms appear together, look first for the one node that explains them all.
| Pixel | Before Premult | After Premult |
|---|---|---|
| Spark outside the robot | rgb 5, a 0 | rgb 0 |
| Robot edge (already premult) | rgb 0.15, a 0.5 | rgb 0.075 |
| Robot centre | rgb 0.3, a 1 | rgb 0.3 |
The same thing in real CG work
On a real job, an extra pass, liquid drips on a character, vanished even though it was rendered. Someone had copied alpha in from another pass and then premultiplied, so everything outside the new alpha was silently cut. No error warns you.
Before any Premult, ask: is anything outside this alpha that must survive?
A safe order
Finish the parts with alpha (the solid object) first, then add the light parts after the Premult or after the Merge over. Light doesn’t need premultiplying because it hides nothing. This order is for light that belongs to the object itself or sits in front of it. Light from something behind a foreground still needs the holdout from Case 5 (CF5): stencil it by the foreground’s alpha, or plus it onto the plate before the foreground goes over.
- 1Object: grade unpremultiplied
- 2Premult
- 3Merge over
- 4Light/emission: plus after
4 In real work
In Nuke
- Before adding a Premult, look at the Read where a solid object’s edge turns semi-transparent, in both rgb and alpha. If the surface colour fades out together with the alpha, it is already premultiplied (most CG renders are). Don’t use “rgb ≤ alpha” as the test: highlights and emission brighter than the alpha, even at alpha 0, are normal in a premultiplied render
- Merge (plus) for emission, fire and sparks, after the Premult or after the Merge over (if the light sits behind a foreground, hold it out first; see CF5)
- Copy alpha then Premult: check every pass still fits inside the new alpha
- Disable nodes one at a time (D) and see whether the symptom goes away (as in Case 2)
Common mistakes → the fix
- ✗ Premultiplying everything "to be safe" before the merge✓ Premult only straight images, and never alpha-0 light.
- ✗ Adding emission into the CG before the Premult✓ Add it after the Premult or after the over (if the light sits behind a foreground, hold it out first; see CF5).
- ✗ Fixing each symptom separately✓ Look for the node that explains every symptom first.
Before you send the shot
- No second Premult on an already premultiplied image
- Alpha-0 light and emission still present in the comp
- Every extra pass survives any Copy + Premult
- No dark line on CG edges (viewer gain up)
5 Check yourself
Which node made the sparks disappear?
🔒 Answer the question above and this card opens
1. A bulb’s emission is rendered with alpha 0. What happens after a Premult?
2. CG edges show a dark line and a light element has vanished. What do you suspect first?
Where the numbers come from: A case from a real production problem, retold without naming the job and rebuilt with our own Blender images. Computed in your browser: Merge, Grade, Premult, Keymix, Invert and Clamp match Nuke 17.0v2 (checked); Toe, Defocus, Sharpen, Grain, the Keyer and Despill are teaching versions, not identical to Nuke’s nodes.