Vector Pass in Blender Motion Blur Compositing
The Vector pass in Blender, also known as a motion vector pass, is a specialized render pass that stores pixel velocity data used to generate artificial motion blur during compositing. Instead of computing physical motion blur during the rendering phase, the Vector pass allows artists to add, fine-tune, or remove motion blur in post-production using the Blender Compositor or external compositing software. This technique drastically reduces overall render times while providing greater artistic control over the final look of animation sequences.
How the Vector Pass Works
The Vector pass calculates the change in position of every visible pixel between the current frame, the previous frame, and the next frame. This velocity information is mapped into color channels (typically red and green channels representing X and Y screen-space direction and speed). Rather than rendering actual blurred geometry with multiple sub-samples—which significantly increases render time—the engine outputs a lightweight, flat 2D map of movement vectors alongside the standard beauty render.
Why Use the Vector Pass
- Massive Render Time Savings: Native 3D motion blur in render engines like Cycles requires higher sample counts and sub-frame calculation to resolve cleanly without noise. Post-process motion blur using the Vector pass adds almost zero overhead to the initial render.
- Post-Render Flexibility: Because the blur is applied in the compositor, you can adjust blur parameters (such as shutter speed, curve, and maximum blur distance) in real-time without re-rendering the entire scene.
- Pipeline Compatibility: Motion vectors generated in Blender can be exported via OpenEXR format to external compositing software like Nuke, After Effects (using plugins like ReelSmart Motion Blur), or DaVinci Resolve.
Implementing the Vector Pass in Blender
To use the Vector pass within Blender's Compositor:
- Enable the Pass: In the View Layer Properties tab, locate the Passes section and check the box for Vector.
- Set Up the Compositor: Open the Compositor, enable Use Nodes, and locate the Render Layers node. You will see new output sockets, including Vector (and Depth/Z).
- Add the Vector Blur Node: Add a Vector
Blur node
(
Shift + A > Filter > Vector Blur). - Connect the Sockets:
- Connect the Image output of the Render Layers to the Image input of the Vector Blur node.
- Connect the Depth (or Z) output to the Z input.
- Connect the Vector output to the Speed input.
- Adjust Settings: Modify the Samples and Blur sliders on the Vector Blur node to control the smoothness and intensity of the motion blur effect.
Limitations to Consider
While the Vector pass is efficient, it uses 2D screen-space approximations. It cannot accurately blur transparent surfaces, reflections, refraction, or complex background objects moving behind fast-moving foreground objects. For extreme rotational speeds or complex particle systems where geometry changes topology, native 3D motion blur may still be required for complete physical accuracy.