1 The idea
Grain every element and then merge, and soft edges, see-through parts and plussed overlaps get two layers of grain, while any blur or grade afterwards changes the grain too. The right way: grain once, as the last node.
Real camera grain differs per channel; blue is usually the strongest. Check r, g and b one at a time in the viewer.
2 Hands-on in the mini compositor
Task: disable the two per-element Grains and enable the final Grain
3 Deep dive
Grain once, as the last node
Grain belongs to the camera, so it lives on the whole picture as one layer. Grain the robot, the sparks and the haze separately and the grain stacks where they overlap, with each element carrying a different grain.
Nothing that filters or grades goes after grain: a Transform or Blur softens it and a Grade changes its strength. The end of the tree is lens distortion → grain → crop/write.
- 1Comp on the denoised plate
- 2Lens distortion
- 3Grain, once
- 4Crop / Write
Match one channel at a time
Digital camera noise is separate in each channel. View r, g and b one at a time at 1:1 on a flat patch of plate next to the comp. Blue usually has the strongest grain, and often larger grains too.
Match the darks first, then the mids and highlights without moving the darks again.
| Property | What to look at |
|---|---|
| Intensity | How visible it is on a flat area |
| Luminance response | How it changes across darks, mids and highs |
| Size | Coarse or fine |
| Softness | Sharp or soft grains |
| Irregularity | How blotchy it is |
The DasGrain idea
Plate grain = plate − denoised plate. It is then divided by the plate’s response to brightness, giving a flat grain that is even at every level, and multiplied back by that same response, read at the comp’s brightness, before it is added. The grain ends up strong or light in the right places for the new image.
The normalised grain view must look flat, with no picture in it. If you can see outlines of the hills or the robot, the denoise removed detail too, and that detail would be added back as grain.
- 1Plate − denoise
- 2Normalise by plate
- 3Adapt to comp
- 4Add back
Fixing a graph that grains everything
The example graph in this lesson grains the plate and the robot separately. Fix it by turning off both per-element grains and using one grain at the bottom of the tree.
The Lab plate is a clean render, so grain over the whole frame is fine here. A real plate already has its own grain. If you comp on the original plate, the final grain should land only where new pixels are, through the combined alpha of the elements, or the plate gets grain twice. If you comp on the denoised plate (as in the steps above), grain the comp, then Keymix the original plate back outside the elements’ alpha, so untouched areas are the real plate with its real grain again.
Grain has to change every frame; if it looks frozen, animate the seed.
4 In real work
In Nuke
- Denoise the plate and precomp it to EXR; comp everything on the denoised plate.
- Delete every Grain sitting on individual elements.
- At the bottom: DasGrain (a free gizmo, not shipped with Nuke; inputs: comp, plate, denoised plate), or a Grain node with size, irregularity and intensity set per r, g, b.
- Put the original plate back outside the elements: Keymix with B = original plate, A = the grained comp, mask = the elements’ combined alpha (ChannelMerge or Merge max). If you comp on the original plate instead, use that same alpha to limit the new grain.
- After the grain: only the output Crop (or a Reformat that does not resize) and the Write.
Common mistakes → the fix
- ✗ A grain node on every element✓ One grain at the bottom; outside what was added, the original plate stays as it was.
- ✗ A Transform or Grade after the grain✓ Move it above the grain.
- ✗ The same grain in every channel✓ Match r, g, b separately; blue is usually strongest.
- ✗ Grain that is identical on every frame✓ Make sure the seed changes per frame.
Before you send the shot
- There is exactly one grain in the tree.
- No Transform, Blur or Grade after the grain.
- Viewed per channel at 1:1, the new grain matches the plate.
- The normalised grain view shows no picture detail.
- Untouched plate areas are the original plate: no double grain, no missing grain.
- On playback the grain moves every frame.
5 Check yourself
Why does grain go last?
🔒 Answer the question above and this card opens
1. The graph has three separate Grain nodes: on the robot, the sparks and the haze. How do you fix it?
2. What can come after the grain node?
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).