Home · Lab · Paint & Cleanup

PC2 Wire removal

Fill, clone or split frequencies so the wire goes without leaving a smooth line

Paint & Cleanup · ~8 min · Free

1 The idea

A guy wire is a thin line, but what sits behind it keeps changing: sky, the hill line, sand. A fill from both sides follows the light and a clone from beside keeps the grain, but each one breaks somewhere different.

Switch the method and the band margin, then press Play and watch the sky, the yellow zoom box on the hill line, and the sand. The “High-pass (grain)” view shows where the grain went missing; the readouts give “wire left” and “grain kept” for each segment: Sky, Hill line, Hills & sand.

split: LF = blur(fill), HF = beside − blur(beside), out = LF + HF

2 Hands-on

Remove both wires: on every segment under 25% left and grain kept between 0.65 and 1.35×

Watch the hill line in the zoom and the sand in the high-pass view. A method that passes one segment can fail another, so adjust the band margin as you go.

SkyVFX Lab · PC2interactive · 1001

3 Deep dive

Three methods, three weak spots

The long wire here runs about 502 px across sky, the hill line and sand. Each segment needs something different: the sky needs grain, the hill line needs an edge that stays put, the sand needs texture.

MethodWhat it keepsWhere it breaks
Fill acrossLight and edges crossing the wireNo grain, a line in motion; sand goes flat
Clone besideGrain and texture that move every frameEdges that don’t run along the clone offset shift; the hill line gets a notch
Fill + clone detailLow frequencies from the fill, detail from besideIf the split’s blur is too big, lighting leaks into the detail layer

Band margin: wide enough for the soft edge

The wire has an anti-aliased edge that fades out gradually. Too narrow a band leaves that faint edge as a thin line; far too wide a band makes the fill guess across a large area, and the hill line bends.

The wire isn’t the same width along its length: about 3.3 px where it leaves the pole and about 0.8 px at the ground stake. A band that fits one end may not fit the other.

Run the contrast view along the whole wire: a leftover edge shows much more clearly than in the normal view.

Frequency split: the good half of each method

Split an image into two layers: LF is the blurred image, HF is the original minus its blur. Adding them back must give the original exactly; check it with a difference.

Take LF from the fill, which follows the light and the hill line, and HF from the plate beside the wire, which has real grain and texture. Size the blur to roughly the detail you want in the HF layer; too big and lighting leaks into HF and gets copied across too.

  1. 1Fill → Blur = LF
  2. 2Beside − Blur = HF
  3. 3LF + HF
  4. 4Place inside the band with a matte

Judge it playing, not paused

Painted or filled areas need grain that matches the plate, or they read as smooth spots in motion. A still frame hides this very well.

The high-pass view shows only texture and grain. If the band where the wire was looks flat, smooth grey while its surroundings are noisy, the grain is missing; without HF from beside, the fill needs regrain.

Press Play and just stare at the sky for a loop; your eye picks up a grain-free line by itself.

4 In real work

In Nuke

  1. Roto: draw a thin shape along each wire, a little wider than its soft edge, as the matte for the area to fill.
  2. Inpaint: set Fill Region to Matte Alpha (the alpha of the matte you plug in) to fill from the surroundings; the Detail controls (Source, Amount) put texture back into the fill.
  3. Blur the fill = LF. Then Transform a copy of the plate a few px sideways and Merge (from) to subtract its Blur = HF.
  4. Merge (plus) LF and HF, then Keymix the result into the plate using the Roto matte.
  5. RotoPaint (clone) for spots the split doesn’t solve, such as right on the hill edge.
  6. Without HF from beside, put Grain2 over the fill. The default seed is a constant, so the grain is frozen: animate the seed. maskgrain is on by default and adds grain only where the input has alpha.

Common mistakes → the fix

  • ✗ Band too narrow: the wire’s anti-aliased edge stays as a faint line✓ Widen the band to cover the soft edge and check the whole wire in a contrast view.
  • ✗ Band far too wide: the hill line bends✓ Keep the band just past the wire’s edge so the fill doesn’t guess across a large area.
  • ✗ A smooth fill with no regrain, passed on a still frame✓ Take HF from beside or regrain, and judge it with the shot playing.
  • ✗ Cloning across a silhouette: the hill edge gets a notch or a step✓ Let the fill handle the low frequencies where the edge crosses and take only the detail from beside.
  • ✗ Using Grain2 with its default seed, so the grain is the same every frame✓ Animate the seed so the grain changes every frame.

Before you send the shot

  • No wire edge left along the whole length, at both the pole end and the stake end.
  • The hill line where the wire crosses is unbent and un-notched, in the zoom and with a boosted viewer.
  • Played back, no smooth line in the sky, and the grain moves every frame.
  • High-pass view: texture in the band matches its surroundings.
  • LF + HF recombined gives a difference of 0 against the original.

5 Check yourself

One question to check yourself

A fill from both sides looks clean on the sky in a still frame. What shows when the shot plays?

What you learned

🔒 Answer the question above and this card opens

More questions

1. You clone from beside where the wire crosses the hill line. What do you usually see?

2. What happens if the Blur for the frequency split is far too big?

Where the numbers come from: Images are our own Blender renders with and without the pole and wires (same settings); the wire lines come from projecting the 3D wire ends through the Blender camera. The wires cast no shadow here (a simplification). Fill, clone and split are simple per-pixel teaching versions written for this page (no Nuke node is run), grain is added in the browser, the scores compare low-passed pictures against the clean render, which real jobs never have, and the limits are our own.