Post effects

Effects that run over the rendered image: bloom, depth of field, motion blur, anti-aliasing, outlines, auto-exposure, and the lighting effects that read the whole frame.

Once the renderer has lit the scene, a chain of post effects runs over the finished image. Every one is a toggle, and each costs GPU time only when it is switched on. The image effects are all off to start with; the ray-traced lighting further down is the exception, and is on.

These effects work on the rendered picture as a whole, so they sit downstream of lights and materials. Use them last, once the scene already looks right.

Most of them live on the Render Settings node, which is one per composition. Depth of field and anti-aliasing are the exceptions: they are per render, so their controls are on the Render node itself.

For grading, filtering and warping an image as a node in the graph rather than a toggle at render time, see Image effects.

Lens and camera effects

Both also exist as a blur_type on the Blur node: Motion Blur, which averages over a shutter window in frames, and Depth of Field, which needs a depth pass wired into its depth_in. Use the node to blur one specific object or image, and the post effects here to smear the whole frame from real motion vectors.

Anti-aliasing (TAA)

Anti-aliasing smooths stair-stepped, jaggy edges. The method here is temporal: taa_enabled on the Render node blends a little of the previous frame into the current one, averaging out the rough edges over time. It is off by default. It needs to know how things are moving on screen, and reads that from the same velocity buffer motion blur uses.

Because TAA blends across frames, a completely frozen, super-fine pattern can shimmer slightly on the very first frame before it settles. Normal animated use does not show it.

TAA is the live view's method only. An exported frame is anti-aliased a different way, and always: the renderer takes several sub-pixel-jittered passes over the whole frame and averages them before the tone map, on both integrators, whether or not taa_enabled is on. A jaggy viewport is not a preview of a jaggy export.

Outline

outline_enabled detects depth and normal discontinuities in the rendered scene and strokes them, for a stylised, illustrated or technical look. It works on whatever geometry the renderer is fed, with no extra setup. outline_threshold sets how sensitive the edge detection is, lower catching more edges; outline_strength sets how visible the stroke is, and the three outline_color_* channels its colour, black by default.

Lighting that reads the whole scene

A few effects let light interact across the whole scene for real depth. Ray tracing drives them by default: what is already on screen is read first, then rays are traced into the actual scene to catch what the screen cannot see. All of these are on the Render Settings node, covered in The render node.

The fast first pass only knows what is currently on screen. Ray tracing fills in what is off-screen or hidden: for shadows and ambient occlusion always, and for reflections and bounced light once they are enabled. Nothing drops a tier for you when a frame runs long. rt_quality and rt_shadow_budget are the dials, and both are yours to set. See Making it faster.

Turning them on

Post effects are configured as part of the render setup rather than wired in as separate nodes. Add a Render Settings node for the composition-wide ones and use the Render node for depth of field and anti-aliasing. An effect that is off costs nothing, so leave the unused ones switched off to keep playback fast.

post_process_order on the Render node is a comma-separated list. Reorder it to change how the effects stack.

To temporarily disable any node feeding the picture, use Bypass rather than deleting it.

See also