VectorBlur
Generates motion blur by blurring each pixel into a straight line, using the values from the motion vector channels (u and v channels) to determine the direction of the blur. You can create motion vectors using the VectorGenerator, MotionBlur2D, MotionBlur3D, ScanlineRender, or RayRender nodes. Many third-party applications can also produce motion vector information as two-channel, floating point images that you can use with VectorBlur. If possible, you should unpremultiply these images.
You can use the constant uv offset values to add motion blur for camera movement and shake. Subtract the xy translation or camera rotation at the current frame from the same values at the next frame to get the correct values to use.
See also VectorGenerator, MotionBlur2D, MotionBlur3D, ScanlineRender, and RayRender.
Inputs and Controls
Connection Type |
Connection Name |
Function |
Input |
unnamed |
The image sequence to receive the blur effect. |
mask |
An optional image to use as a mask. By default, the blur is limited to the non-black areas of the mask. At first, the mask input appears as triangle on the right side of the node, but when you drag it, it turns into an arrow labeled mask. If you cannot see the mask input, ensure that the mask control is disabled or set to none. |
Control (UI) |
Knob (Scripting) |
Default Value |
Function |
VectorBlur Tab |
|||
channels |
channels |
none |
The effect is only applied to these channels. If you set this to something other than all or none, you can use the checkboxes on the right to select individual channels. |
Local GPU |
gpuName |
N/A |
Displays the GPU used for rendering when Use GPU if available is enabled. Local GPU displays Not available when: • Use CPU is selected as the default blink device in the Preferences. • no suitable GPU was found on your system. • it was not possible to create a context for processing on the selected GPU, such as when there is not enough free memory available on the GPU. You can select a different GPU, if available, by navigating to the Preferences and selecting an alternative from the default blink device dropdown. Note: Selecting a different GPU requires you to restart Nuke before the change takes effect. |
Use GPU if available |
useGPUIfAvailable |
enabled |
When enabled, rendering occurs on the Local GPU specified, if available, rather than the CPU. Note: Enabling this option with no local GPU allows the script to run on the GPU whenever the script is opened on a machine that does have a GPU available.
|
uv channels |
uv |
none |
Sets the channel(s) to control the horizontal (u) and vertical (v) size of the blur vector. Note: If the uv values are read from a file, enable the Read node’s colorspace raw data checkbox. See Read. |
mv presets |
mv_presets |
Nuke Scanline Render |
Sets which renderer format to apply to the motion vectors. Each preset contains a scale and offset specific to the renderer, so that the vectors are in the format expected by Nuke. For example, if VectorBlur is downstream of a PRMan node, select PRMan from the dropdown. |
vector preprocessing |
|||
output |
output |
result |
Sets the output of the VectorBlur node: • result - the final result of the blur is displayed in the Viewer. • uvs - the uv map used to generate the motion vectors. |
blur uv |
blur_uv |
none |
When set to uniform or linear, applies the motion blur filter to the motion vectors themselves, before using them to blur the image. This option can smooth out gradients in the motion vectors, resulting in a softer blur between regions with very different motion. • none - don't blur the UVs. • uniform - apply a small uniform blur to soften edges in the UV map. This is how blur was calculated pre-Nuke 10. • linear - apply a linearly-weighted blur to blend between regions with different motion. This has a stronger effect than the uniform option. |
invert uv |
invert_uv |
disabled |
When enabled, invert the motion vectors before blurring them. Note: The effect is only visible when the shutter is not centred at the current frame (for Nuke vectors, this means when the shutter offset is not equal to -0.5). |
uv offset |
uv_offset |
0 |
Sets a constant value to add to the uv channels values. Note: If the uv values are read from a file, this should be -0.5 or -127/255. |
uv alpha |
N/A |
disabled |
Enables the associated alpha channel to the right. Disabling this checkbox is the same as setting the channel to none. |
alpha |
none |
If your motion vectors were premultiplied, set this channel to the channel used to multiply the vectors to improve the results. Tip: Where possible, use vectors that have not been premultiplied. |
|
motion blur |
|||
blur type |
blur_type |
gaussian |
Sets the profile to use along the direction of blur: • uniform - a box-like profile with uniform weighting along the blur vector. • gaussian - a gaussian profile with a softer fall-off towards the ends of the blur vector. |
motion amount |
scale |
0 |
Sets the value by which the u and v channels are multiplied. Set this to 0.5 for motion blur from a standard shutter. |
motion falloff |
motion_falloff |
0.33 |
Controls the steepness of the gaussian fall-off on the blur. 0 gives a very sharp fall-off, while 1 gives a shallow fall-off. |
motion offset |
offset |
-0.5 |
Sets the shutter offset, causing the shutter to open at frame +/- motion offset. |
expand blur bbox |
grow_bbox |
0 |
Sets the number of pixels added to the outside edge of image. Set this manually for cropped images with non-zero uv channels. |
soft lines |
soft_lines |
disabled |
When enabled, increase the softness of the motion blur by drawing wider lines, at the expense of slower processing. |
blur inside |
blur_inside |
enabled |
When soft lines is enabled, apply a small blur inside regions with zero motion, to give a smoother transition to areas with motion blur. |
normalize |
normalize |
enabled |
When enabled, normalize the results to compensate for tearing (holes appearing behind moving objects) and collisions (objects moving on top of one another) in the rendered output. Normalizing can exacerbate the effects of tearing and collisions, but it tends to give a softer blur than not normalizing. |
mask |
N/A |
disabled |
Enables the associated mask channel to the right. Disabling this checkbox is the same as setting the channel to none. |
maskChannelInput |
none |
The channel to use as the alpha channel. |
|
inject |
inject |
disabled |
Copies the mask input to the predefined mask.a channel. Injecting the mask allows you to use the same mask further downstream. |
invert |
invert_mask |
disabled |
Inverts the use of the mask channel, so that the effect is limited to the non-white areas of the mask. |
fringe |
fringe |
disabled |
When enabled, only apply the effect to the edge of the mask. When disabled, the effect is applied to the entire mask. |
mix |
mix |
1 |
Dissolves between the original image at 0 and the full effect at 1. |
Step-by-Step Guides
Adding Motion Blur Using VectorBlur
Example Nuke Scripts
Nuke 10.0
Using MotionBlur2D and VectorBlur to generate motion blur
Using MotionBlur3D and VectorBlur to generate motion blur
Using ScanlineRender and VectorBlur to add motion blur to particles
Nuke 9.0 or Earlier
Using MotionBlur2D and VectorBlur to generate motion blur
Using MotionBlur3D and VectorBlur to generate motion blur
Using ScanlineRender and VectorBlur to add motion blur to particles