Skip to content

Motion Blur

Smears the picture in one direction, as if the camera or the subject moved fast while the shutter was open.

Group: Blur & Sharpen · How to add an effect

The dancer on the dark stage, original left and with Motion Blur at Length 2% right: her body, arms and dress smear sideways into soft streaks, as if she rushed across the stage while the shutter was open
Left: original. Right: Length 2%.

Use it for: a sense of speed · a whip pan between two shots · streaking lights and flowing fabric.

  • Length – how far the streak reaches.
  • Angle – which way it points.

Tip: keep Length small on faces (1–2%); long streaks work best on lights, fabric and scene changes. For streaks that fly out from a point use Zoom Blur.

The dancer on the stage four times, labelled: Quick Move with her outline softened sideways but her face still there, Leap with the whole figure smeared slightly upwards to the side, Falling with arms and dress running down in vertical streaks, Whip Pan with the dancer torn into horizontal bands of light

The four presets on the dancer.

Pick one in the Preset row of the effect card. It sets Length and Angle in one undo step, and the row shows its name until you change something. A control with keyframes keeps them, and the card says so.

Quick Move – Length 1.5%, Angle 0°: a short sideways move. The figure gets the feel of speed, the face stays recognisable.

Leap – Length 3.5%, Angle 340°: a jump caught rising to one side. The slight tilt reads as an upward movement rather than a camera pan.

Falling – Length 4%, Angle 90°: streaks straight up and down, for falling, rain or something dropped from the flies.

Whip Pan – Length 15%, Angle 0°: the camera tears sideways and only colour and light are left. Keyframe Length up to it and back for a cut between two shots.

Properties, Effects with a Motion Blur card: the Preset menu showing Falling, the Length row at 4% and the Angle row at 90°, beside a strip of the preview where the lights of the night street run down in vertical streaks

Motion Blur with the Falling preset. 1 — Preset: pick a starting point. 2 — Length: how far the streak reaches. 3 — Angle: which way it points.

Preset – a starting point for Length and Angle; see Presets.

Length – how far the streak reaches to each side of every pixel, as a share of the picture: of its width for a horizontal streak, of its height for a vertical one. The middle of the streak counts most and its ends fade out, so edges smear softly instead of showing ghost copies. 0.5–1% takes the edge off a movement, 1–3% is a quick move with faces still readable, the default 5% (about 96 px to each side in a 1080p frame) a fast one, 10% leaves only shapes and from 20% on only bands of colour remain. Because it counts in shares of the frame, a 4K export shows the same streak as the preview. Animated it changes smoothly, and 0 leaves the picture untouched. 0 to 30%, default 5%.

Angle – which way the streak points: 0° is horizontal, 90° vertical, 45° diagonal. The streak runs to both sides, so 180° looks the same as 0°. Turning it also changes the length: Length counts the width for horizontal and the height for vertical streaks, so in a 16:9 frame a vertical streak is only a bit more than half as long as a horizontal one at the same Length. 0 to 360°, default 0°.

The Motion Blur graph: Parameters feed Blur Range; Blur Range feeds Tap Counts & Box Length, Stage A and Stage B; Input Frame feeds Premultiplied Source, which feeds Stage A; Stage A's short boxes feed Stage B, and Straight Alpha Output turns its result back into a normal picture

Motion Blur opened in the Nodes tab (Constants, Coordinates and the Output card left out). 1 — Blur Range: where the streak starts and how long it is. 2 — Tap Counts & Box Length: how to cut it into pieces. 3 — Premultiplied Source: the picture, ready to average. 4 — Stage A: averages one short piece. 5 — Stage B: adds up the pieces along the streak. 6 — Straight Alpha Output: back to a normal picture.

Motion Blur works in six stages, one folder each in the Nodes tab. Blur Range turns Length and Angle into a line in pixels, and Tap Counts & Box Length cuts that line into short pieces. Premultiplied Source prepares the picture so transparent edges stay clean. Stage A averages one short piece around every pixel and caches it, Stage B reads that cache once per piece along the whole line, and Straight Alpha Output turns the result back into a normal picture. Two stages make a long streak cost dozens of reads instead of hundreds. Click a folder’s header to open it. Zoom Blur and Radial Blur have the same stages; only the path of the streak differs.

Inside the Blur Range folder: Angle goes into Direction from Angle, times Resolution, and Length measures that vector; Length, at least Zero by Maximum, times it gives the Half Length; times Two gives the Range Length, Zero minus the Half Length the Range Start, and Absolute the Longest Range

Inside Blur Range (Length, Angle). 1 — Maximum: never below 0. 2 — Direction from Angle: the direction on screen. 3 — Length: pixels per unit of Length. 4 — Subtract: where the streak starts. 5 — Absolute: how long it is.

Maximum – keeps Length at 0 or above. A negative Length, which a keyframe overshoot or a tool can produce, leaves the picture unchanged, and the card and the tool result say so.

Direction from Angle – turns Angle into a direction on screen, one pixel long: (cos, sin) of the angle.

Length – the length of that direction stretched by the frame size: the frame width for a horizontal, the height for a vertical direction. Times Length (the next Multiply) this is the Half Length, how far the streak reaches to each side in pixels.

Subtract – Zero minus the Half Length: the streak starts that far behind the pixel and, twice as long (the Range Length), ends as far ahead of it.

Absolute – the Range Length without its sign: the whole streak in pixels, which Tap Counts & Box Length divides up.

Inside the Tap Counts & Box Length folder: Longest Range times Two goes through Square Root and is clamped between One and Coarse Limit 64 into the Coarse Taps, not rounded; Longest Range divided by the Coarse Taps, at least Tiny by Maximum, gives the Box Length

Inside Tap Counts & Box Length. 1 — Square Root: the balance of both stages. 2 — Clamp: how many pieces. 3 — Maximum: how long one piece is.

Square Root – the square root of twice the streak length. Cutting the streak into that many pieces gives both stages about the same work: a 192 px streak (the default in a 1080p frame) becomes about 20 pieces of about 10 px, so a pixel reads about 30 times instead of 192.

Clamp – keeps that between 1 and 64 without rounding it: the Coarse Taps, the number of pieces Stage B reads. It is rarely a whole number; the last piece then counts only with the share of it that fits (Stage B), so the pieces grow smoothly with Length instead of jumping by one.

Maximum – the streak divided by the number of pieces: the Box Length, how long one piece is. It never reaches 0, so a zero streak cannot divide by zero.

Inside the Premultiplied Source folder: Frame goes into Split RGB + Alpha; Alpha to Scalar and Multiply scale the colour by the alpha; Combine RGB + Alpha joins it with the alpha again, and Cache Image keeps the result

Inside Premultiplied Source (cached). 1 — Multiply: colour times transparency. 2 — Cache Image: keeps the prepared picture.

Multiply – multiplies each pixel’s colour by its alpha. A see-through pixel then adds almost nothing to the average, so the colour of its invisible part cannot smear into the streak as a dark rim around a cut-out figure or a title.

Cache Image – keeps the prepared picture in a 16-bit float texture for Stage A to read, so no precision is lost in dark areas.

Inside the Stage A folder, reduced to its recipe: Half Box (px) divided by Cell (px) gives the half box in cells; minus the Ring and clamped between 0 and 1 it is the share of that ring's cell the piece covers, at least a tiny floor by Maximum the Fine Weight; Fine Taps sets how many reads; the Read position goes through Mirror Repeat into Sample Image, which reads the Premultiplied Source (left out of the picture); Sequence Reduce adds up the weighted reads, Normalize by Weight turns the sum into an average and Cache Image keeps the Short Boxes

Inside Stage A, reduced to its recipe (how the read position is worked out is left out, and so are the fixed values and the Premultiplied Source that Sample Image reads). 1 — Divide: the half piece in cells. 2 — Clamp: how much of a cell counts. 3 — Mirror Repeat: mirrors at the frame edge. 4 — Sequence Reduce: adds up the reads. 5 — Cache Image: keeps the short pieces.

Divide – half the Box Length in cells of one pixel: how far the piece reaches to each side of this pixel. Only a piece longer than 256 px gets cells wider than a pixel (Cell), so a pixel never reads more than 256 times here. The number of reads (Fine Taps) is twice the rings needed to reach the end of the piece.

Clamp – the reads sit one pixel apart, in pairs from the pixel outward, each in the middle of its one-pixel cell. A cell the piece covers only partly counts with that share, and its read moves to the middle of the covered part; Maximum keeps every weight just above 0. So the piece grows smoothly with Length: a new pair enters with weight 0 and grows in, and even a piece shorter than a pixel blurs a little instead of leaving the picture unchanged.

Mirror Repeat – where a read falls outside the frame, it is mirrored back in. The streak at the frame edge therefore continues the picture instead of fading to black or repeating the last pixel as a hard line.

Sequence Reduce – reads the Premultiplied Source at every position along the piece (Sample Image) and adds up the reads, each times its weight; Normalize by Weight divides by the summed weight, so the sum becomes an average.

Cache Image – keeps, for every pixel, the average of the short piece around it: the Short Boxes that Stage B reads.

Inside the Stage B folder, reduced to its recipe: Distance along divided by Streak length gives Position t; times Two, minus One, squared, times Taper Gain −2 and through Exponential it gives the Taper; Multiply weighs it with the Box Weight into the Tap Weight; the Read position goes through Mirror Repeat into Sample Image, which reads the Short Boxes; Sequence Reduce adds up the weighted reads over Taps Here and Normalize by Weight divides by the summed weight

Inside Stage B, reduced to its recipe (how the read position is worked out is left out). 1 — Divide: where along the streak. 2 — Exponential: the soft taper. 3 — Multiply: the weight of a read. 4 — Mirror Repeat: mirrors at the frame edge. 5 — Sequence Reduce: adds up the pieces.

Divide – how far along the streak a piece lies, from 0 at its start to 1 at its end (Position t).

Exponential – the taper: exp(−2 · (2t − 1)²), 1 in the middle of the streak and about 0.14 at both ends. The white value cards Two, One and Taper Gain shape it. Because the ends fade, a moving edge melts away instead of stopping at a hard line.

Multiply – the taper times the Box Weight: the Tap Weight of a read. The Box Weight is 1 for every whole piece. The streak is rarely a whole number of pieces, so the last piece counts only the share of it that fits, and the streak grows smoothly with Length.

Mirror Repeat – as in Stage A, mirrors reads outside the frame back in, so both stages agree at the edge.

Sequence Reduce – reads one cached short piece per tap (Sample Image on the Short Boxes), adds them up with their Tap Weights, and Normalize by Weight divides by the summed weight, so the streak keeps the picture’s brightness.

Remix: for an even streak without the fade, open Stage B, unplug Exponential from input A of the Multiply and plug a Value of 1 into A. Leave input B alone: it carries the Box Weight. Or select Taper Gain and set its value from −2 to −6 in the node inspector: the ends fade sooner and the streak looks shorter and harder.

Inside the Straight Alpha Output folder: the Coarse Average goes into Split RGB + Alpha; Alpha to Scalar and the Coverage Floor feed Maximum; Divide divides the colour by it, and Combine RGB + Alpha joins colour and alpha into the Blurred Image

Inside Straight Alpha Output. 1 — Maximum: never divide by zero. 2 — Divide: the colour back to full strength. 3 — Combine RGB + Alpha: the finished picture.

Maximum – the averaged alpha, but never below the Coverage Floor, a tiny 0.000001. Fully transparent pixels then stay black and transparent instead of turning into errors.

Divide – divides the averaged colour by the averaged alpha: the reverse of the Multiply in Premultiplied Source, so half-transparent streaks get their real colour back.

Combine RGB + Alpha – joins colour and alpha into the finished picture that leaves the effect.

  • Units. The streak reaches Length × |(cos × width, sin × height)| pixels to each side: a share of the frame width for horizontal and of the height for vertical streaks, so saved projects and the Film Roll transition keep their streaks on every aspect ratio. Angle is the exact on-screen direction; it is stored in radians (0–6.28) for tools and keyframes, and the card shows degrees. Length is stored as a share (0–0.3), and the card shows percent.
  • Two stages. About 2 × √(2 × streak length in pixels) reads per pixel: Stage B reads up to 64 pieces, Stage A up to 256 pixels per piece. Neither count is rounded to a whole read: the last piece and the outermost reads count with the share of them that fits, so the blur changes smoothly when the amount is animated. A streak beyond 64 × 256 pixels (only on very large frames) reads its pieces further apart, and the card and the tool result say so.
  • Edges. At the frame edge the picture is mirrored. Transparent edges smear without a dark rim, and the preview and the export match.
  • Below 0 and zero. A negative Length leaves the picture unchanged, as in earlier versions, and the card and the tool result say so. An unedited Motion Blur at Length 0 is skipped, so the picture passes through exactly.
  • Software preview. Where the editor falls back to its software preview, Motion Blur reads the same path in one stage of up to 64 one-pixel steps, blended between pixels, so an animated amount changes smoothly there too. Streaks longer than 64 px spread their reads and can look stepped; the SoftwareBlur log says so.
  • Saved projects. They keep their look, with one fix: every Motion Blur without an edited node setup renders with the current recipe, also in projects saved with version 3.2.7 (that recipe jumped a little where an animated amount added a read, and left a streak under about a pixel unchanged). Still pictures differ by less than half a level on average, up to about 10–30 levels on thin high-contrast lines. The old Samples value is kept in the project but no longer changes anything. A Motion Blur whose node setup you edited keeps its own recipe.
  • More: Blur & Sharpen notes · Editable blur kernels · Node Catalog · Styles and presets.