Motion Blur

Introduction

Attributes flagged as blurrable can be motion blurred using the blur rdla keyword.

PerspectiveCamera("camera") {
    ["focal"] = blur(30, 31),
}

This blurs the attribute over the time interval defined by the SceneVariables frame value and the camera’s motion blur attributes (mb_shutter_open, mb_shutter_close, mb_shutter_bias).

Transform

Transformational motion blur is supported on cameras, lights, volumes, and geometry using the blurrable node_xform attribute where two 4x4 matrices are blended as in the example below.

["node_xform"] = blur(Mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0),
                      Mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 5.0, 0.0, 0.0, 0.0, 1.0)),

Enabling the use_rotation_motion_blur parameter can produce a curved rotation trail but will disable adaptive tessellation for this mesh.

Geometry

Deformational motion blur is supported on hard surface geometry (i.e. RdlMeshGeometry, RdlCurveGeometry, RdlPointGeometry, etc.). The type of motion blur is dependent on the motion_blur_type attribute setting and the data present. The types are:

Type Description
static Treat the mesh as static. No motion blur.
velocity Blur using the supplied vertex velocities(v)
frame delta Interpolate between the two supplied vertex positions
acceleration Blur using the supplied vertex velocities(v) and accelerations(accel)
hermite Use the supplied pair of positions(P) and velocities(v) to interpolate along a cubic hermite curve.
best(default) Choose the method which provides the highest quality with the given data.

When set to best, the type chosen is based on the following data being available in order of preference.

Type Required Data
hermite A pair of positions(P) and velocities(v)
acceleration velocity(v) and acceleration(accel)
velocity velocity(v)
frame delta A pair of positions(P)

Motion blur types: Left to right: geometry types (mesh, curves, and points). Top to bottom: motion blur types (transform, frame delta, velocity, acceleration, and hermite).

Volumes

The VdbVolume geometry node uses an explicit velocity_grid for volume motion.