Skip to content

Gaussian Blur

A smooth, even softening, like a lens out of focus. The standard choice for backgrounds, focus pulls and anything that should simply look soft.

Group: Blur & Sharpen · How to add an effect

The harbour town, original left and with Gaussian Blur at Radius 12 right: boats, houses and the mountain go soft and their edges melt into the sky and the water
Left: original. Right: Radius 12.

Use it for: a soft background behind titles · a focus pull on a cue · calming a busy projection.

  • Radius – how soft the picture gets.

Tip: keyframe Radius from 0 up to 10 for a smooth focus pull. For a graphic, square softness use Box Blur; the difference shows most on small lights: Which one?

The neon signs of the night street four times, labelled: Soften with the signs still sharp but the edge taken off, Out of Focus with the signs soft but readable, Far Background with only the large signs left as soft shapes, Wash of Light with every light melted into a round glow of colour

The four presets on the neon signs of the night street.

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

Soften – Radius 3: takes the digital hardness off sharp footage, graphics or text, without looking blurred. Good on a second layer that should sit behind the first.

Out of Focus – Radius 10, the default: clearly out of focus, but shapes and faces stay recognisable. A background behind a title or a projection that should not compete with the stage.

Far Background – Radius 22: only the large forms and the lights are left, like a background far behind a sharp foreground.

Wash of Light – Radius 50: every light melts into a soft, round glow of colour. A quiet backdrop for text or the end point of a scene change.

Properties, Effects with a Gaussian Blur card: the Preset menu showing Out of Focus and the Radius row at 10 px, beside a strip of the preview where the harbour town has gone soft

Gaussian Blur at its default, which is also the Out of Focus preset. 1 — Preset: pick a starting point. 2 — Radius: how soft the picture gets.

Preset – a starting point for Radius; see Presets.

Two street lamps of the night street, enlarged: Gaussian Blur at Radius 10 left makes soft round glows, Box Blur at Radius 10 right makes flat, blocky squares

The same street lamps at Radius 10. Left: Gaussian Blur. Right: Box Blur.

Radius – how soft the picture gets. Every pixel becomes an average of its neighbours, the nearest counting most, so edges melt into each other and small lights turn into round glows, like a lens out of focus. It starts to show at about 1; 2–5 takes the edge off, 10 is clearly out of focus, around 20 only the large forms are left and 50 leaves soft patches of light and colour. It counts pixels of a 1080p picture, so a 4K export shows the same blur relative to the picture. Animated, it changes smoothly, and 0 leaves the picture untouched. 0 to 50 px, default 10 px.

The Gaussian Blur graph: Radius feeds Radius & Tap Count, Input Frame feeds Premultiplied Source (cached); Sigma, Pairs, Stride, Tap Count and the premultiplied picture feed Horizontal Pass, its result and the same numbers feed Vertical Pass, and Straight Alpha Output turns the result back into a normal picture

Gaussian Blur opened in the Nodes tab (Constants, Coordinates and the Output card left out). 1 — Radius & Tap Count: how wide the bell curve is. 2 — Premultiplied Source: the picture, ready to average. 3 — Horizontal Pass: blurs the rows. 4 — Vertical Pass: blurs the columns. 5 — Straight Alpha Output: back to a normal picture.

Gaussian Blur works in five stages, one folder each in the Nodes tab: Radius & Tap Count turns Radius into the width of a bell curve and the number of reads, Premultiplied Source prepares the picture so transparent edges stay clean, Horizontal Pass blurs along the rows and Vertical Pass along the columns of that result, and Straight Alpha Output turns the result back into a normal picture. A bell curve across the rows followed by one down the columns is exactly the round blur of a lens, at a fraction of the reads. Click a folder’s header to open it. Box Blur has the same stages; only the weights inside the passes differ.

Inside the Radius & Tap Count folder: Resolution through Smallest Component, divided by Reference Height 1080, times Radius gives the radius in pixels; times Sigma Per Radius 0.5, at least Sigma Minimum by Maximum, gives the Sigma; times Reach Sigmas 3 gives the Reach; Reach times Half, rounded up by Ceiling and capped by Minimum with Pairs Limit 127 gives the Pairs; Reach divided by Pair Span Limit 254, at least one, gives the Stride; Pairs times Two plus one gives the Tap Count (the card One that both read is left out of the picture)

Inside Radius & Tap Count, the folder that turns Radius into reads. The number cards are values from the Constants folder, shown where they plug in; the One that Add adds and the lower Maximum keeps the stride at is left out. 1 — Smallest Component: the shorter side of the frame. 2 — Maximum: the Sigma. 3 — Multiply: the Reach. 4 — Minimum: the pairs of reads. 5 — Add: the Tap Count.

Smallest Component – the shorter side of the frame. Divided by 1080 it says how much larger or smaller this frame is than a 1080p one; the next Multiply turns Radius into pixels of this frame, so a 4K export, a portrait frame and a thumbnail show the same blur.

Maximum – the Sigma: half the radius in pixels, the width of the bell curve. It never goes below a tiny 0.0001, so Radius 0 cannot divide by zero; at that size the curve only covers the pixel itself and the picture stays exactly as it was.

Multiply – Sigma times 3: the Reach. Beyond three Sigma a neighbour counts less than 1 %, so the curve is cut there without a visible edge. At 1080p the blur therefore reaches about 1.5 × Radius pixels to each side.

Minimum – how many pairs of pixels each side reads: half the Reach, rounded up by Ceiling, but at most 127. Beside it, Divide and the lower Maximum give the stride: 1 up to a reach of 254 pixels, so every pixel is read; beyond that the reads spread out instead of cutting the curve short. Only a frame with a shorter side above about 3600 px reaches that at Radius 50.

Add – Pairs times Two plus One: the Tap Count, the pixel itself and both pixels of every pair.

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 leak into the blur 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 Horizontal Pass to read, so no precision is lost in dark areas.

Inside the Horizontal Pass folder: Tap Index, Pairs and Stride feed Pair Tap Offsets; Sigma and the offsets feed two Gaussian Falloff nodes, which feed Merge Pair Weights; Sample Image reads the Premultiplied Source at the Read Position; Sequence Reduce adds up the reads over the Tap Count, Normalize by Weight divides by the summed weight and Cache Image keeps the result

Inside Horizontal Pass, reduced to its recipe (how the read position is worked out is left out). 1 — Pair Tap Offsets: where to read. 2 — Gaussian Falloff: the weight of a neighbour. 3 — Merge Pair Weights: two pixels in one read. 4 — Sequence Reduce: adds up the reads. 5 — Normalize by Weight: turns the sum into an average.

Pair Tap Offsets – lists the reads along the row: the pixel itself and, for every pair, the distance of its near and far pixel. It holds a small node setup of its own; its › opens it.

Gaussian Falloff – the bell curve itself: how much a pixel at that distance counts, 1 at the centre and fading smoothly with distance; Sigma sets how wide. There is one for the near and one for the far pixel of each pair. This is the only place where Gaussian Blur differs from Box Blur.

Merge Pair Weights – folds each pair into one read at the point between its two pixels where their weights balance. The graphics card blends the two pixels there for free, so one read covers two and the result is exact.

Sequence Reduce – reads the Premultiplied Source at every position (Sample Image) and adds up the reads, each times its weight.

Normalize by Weight – divides that sum by the sum of all weights, so the average keeps the picture’s brightness, and Cache Image keeps the blurred rows for the vertical pass.

Inside the Vertical Pass folder, the read position: Zero and Offset (texels) go into Combine Vector, which is divided by Resolution and added to UV; Sample Image reads the Horizontal Pass result there

Inside Vertical Pass, the read position. 1 — Combine Vector: the offset points up and down. 2 — Sample Image: reads the blurred rows.

Vertical Pass holds the same recipe as Horizontal Pass, with two differences:

Combine Vector – puts the offset into the second, vertical place (the first is Zero), so the reads go up and down a column instead of along a row.

Sample Image – reads the cached result of Horizontal Pass instead of the source. A bell curve along the rows followed by one down the columns gives a perfectly round blur.

Remix: for a blur that stretches sideways, like a lens with a horizontal smear, open Vertical Pass, Multiply Sigma by a Value of 0.3 and plug the result into the Sigma input of both Gaussian Falloff nodes there. The rows stay as soft as before, the columns get sharper.

Inside the Straight Alpha Output folder: the Vertical Pass result 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 blurred 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 blurred colour by the blurred alpha: the reverse of the Multiply in Premultiplied Source, so half-transparent edges get their real colour back.

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

  • Size. Radius counts pixels of a frame whose shorter side is 1080: preview quality, a 4K export, a portrait frame and the thumbnails all show the same blur relative to the picture.
  • Kernel. A bell curve with Sigma = Radius / 2, cut at 3 Sigma. A horizontal pass into a 16-bit float cache, then a vertical pass: about 1.5 × Radius + 1 reads per pass at 1080p, two pixels per read. Up to 127 reads per side; beyond that (Radius 50 on a frame whose shorter side is above about 3600 px) the reads spread out, and the card and the tool result say so.
  • Small radii. Below about Radius 0.7 the curve is so narrow that the change stays under one step of an 8-bit picture; from 1 on it shows.
  • Edges. At the frame edge the outermost pixels repeat, so a large Radius does not darken the border. Transparent edges fade without a dark rim, and the preview and the export match.
  • Zero. An unedited Gaussian Blur at Radius 0 is skipped, so the picture passes through exactly.
  • Software preview. Where the editor falls back to its software preview, Gaussian Blur uses a canvas blur of the same width, close to the GPU preview and the export.
  • Saved projects. They render with this kernel. Compared with the kernel of versions before the blur rebuild, small radii blur a little more and large radii about 20 % less at the same Radius; the old Samples value is kept in the project but no longer changes anything. A Gaussian Blur whose node setup you edited keeps its own recipe.
  • More: Blur & Sharpen notes · Editable blur kernels · Node Catalog · Styles and presets.