Home · Lab · FX Elements: fire, smoke, explosions

FE2 Smoke is matter

Over with its own alpha, graded without lifting the empty area

FX Elements: fire, smoke, explosions · ~8 min · Free

1 The idea

Smoke isn’t light: it blocks the hills and sky behind it, so it goes over with its own alpha, where fire was plussed. This plume was rendered with neutral studio light from the right, while the plate’s sun comes from the left.

Switch the merge, compare the arrows and try the flop, then grade with lift and gain. Watch the value added outside the smoke (it must be 0) and the darks and brights against their targets, about 0.037 and 0.172, measured on the same plume rendered in the plate’s light.

over: A + B·(1 − a) · grade: unpremult → c·gain + lift → premult

2 Hands-on

Task: comp the smoke as matter and match it to the plate: the right merge, lit from the sun’s side, graded without touching the empty area, darks and brights on target.

Hint: compare the two arrows, and watch the value outside the smoke whenever you move lift. Here lift adds the same amount to every tone, so it matters most to the darks, while gain scales the brights most. The “reference” view shows the same smoke in the plate’s light.

SkyVFX Lab · FE2interactive · 1001

3 Deep dive

Over, not plus

over = A + B·(1 − a): where the smoke’s alpha is high, the plate behind is mostly replaced. Plus just adds A to B and keeps the whole plate, so the plume brightens the hills instead of hiding them: a glowing ghost.

Smoke, dust and mist are matter: over with a real alpha. Very thin atmospherics are the rare exception.

MergePlate behindReads as
plusStays whole, smoke added on topA glowing ghost
overBlocked by the alphaSolid smoke

Where to grade

A lift on a premultiplied image also adds colour where alpha is 0, giving a grey box over the whole element card. Unpremult before the grade and premult after, and the empty area goes back to 0.

That said, some artists grade thin smoke premultiplied on purpose to shape density and contrast. If you do, test it over a mid-grey Constant for dark rims.

  1. 1Unpremult
  2. 2Grade (lift, gain)
  3. 3Premult
  4. 4Merge over

Match the darks and the brights

Matching the average isn’t enough: the element needs highs, mids and lows that sit with the plate. If its darkest value only reaches the plate’s mids, gamma it down.

Here the raw smoke has lows of about 0.026 and highs of about 0.204. The targets are the same smoke rendered in the plate’s sun and sky: darks about 0.037, brights about 0.172. The readouts measure unpremultiplied colour only where alpha is above 0.6, so thin edges don’t skew them.

Gamma down raises saturation: check it, and add a Saturation node if the colour gets too strong.

Light from the right side

A stock element is often lit differently from the plate. Turning or flopping it so the light comes from the correct side is a normal fix: the smoke’s lit side must face the plate’s sun.

Smoke colour comes from its surroundings too. Burning oil smoke is black: use a black element, not a white one graded down.

Part of the smokeTakes its colour from
Lit sideThe sun
Shadow sideThe sky
UndersideGround bounce

Density has limits

Control density by grading only the alpha (gamma or gain), then clamp it to 1 or below. The density slider here is an alpha gamma: watch how much hill shows through the thin parts.

But you can’t truly thin a dense volume by grading its alpha. If you need thin smoke, pick thinner frames.

Judge the element bare, over black and over white before you blame the plate.

4 In real work

In Nuke

  1. Read the smoke element and look at it bare, over a black and a white Constant, before it meets the plate.
  2. Mirror2 with flop on if the lit side doesn’t face the plate’s sun.
  3. Unpremult → Grade (lift, gain on rgb) → Premult.
  4. For density, if needed: a Grade on alpha only, then a Clamp so alpha stays at or below 1.
  5. Merge (over) with the smoke as A and the plate as B.
  6. A mid-grey Constant under the smoke to check for dark rims.

Common mistakes → the fix

  • ✗ Plussing the smoke onto the plate✓ Use over with the smoke’s alpha so it blocks what is behind it.
  • ✗ A Grade lift on the premultiplied smoke✓ Unpremult → Grade → Premult, then check the area outside the smoke is 0.
  • ✗ Leaving the element’s studio light opposite the plate’s sun✓ Flop or turn the element so its lit side faces the sun.
  • ✗ Matching only the average brightness✓ Measure both darks and brights and put both on the plate.
  • ✗ Crushing the alpha to thin a dense plume✓ Pick thinner frames or a thinner element.

Before you send the shot

  • The smoke is merged over with its own alpha.
  • Outside the smoke the element adds exactly 0: no grey box.
  • The lit side faces the plate’s sun.
  • The smoke’s lows and highs sit on the plate’s darks and brights.
  • Over a mid-grey Constant there is no dark rim.
  • Alpha stays within 0–1.

5 Check yourself

One question to check yourself

You add a small lift to the premultiplied smoke and a grey box appears around the plume. Why?

What you learned

🔒 Answer the question above and this card opens

More questions

1. The smoke is merged with plus. What do you see?

2. The plume is too dense and you want to see more hill through it. What’s the best fix?

Where the numbers come from: The plume is one Mantaflow smoke sim rendered twice: neutral studio light from the right, like a stock element (the element), and the plate’s sun and sky (the reference view). The dark and lit targets are measured on that reference render. The plume is dense, its top leaves the frame, and it reads mostly as a dark mass. The Grade here is lift + gain on rgb only, a teaching version: its lift adds the same amount to every tone, like Grade’s offset, while Nuke’s own lift keeps the white point fixed. Every element is our own: Mantaflow sims in Blender 5.2, rendered in Cycles through the plate’s camera (EmberGen could not export headless on this machine). No stock elements.