On this page

Chapters

Overview

Motion Blur in Karma requires time samples authored on the USD stage. The quality of the render blur is influenced by render settings.

Karma renders motion blur by default. The defaults should give good transform and deformation blur. If you have bad or no motion blur with Karma, this issue is usually insufficient data in USD.

USD time samples

By default, Houdini only cooks the current frame interactively, which usually works well. In Solaris, animated nodes author USD time samples, but only for the current frame. One time sample is not enough to render motion blur. Many sub-frame samples are necessary when rendering rapidly-changing motion, because USD only supports linear interpolation between authored time samples.

Note

Karma internally represents rotations as quaternions beginning with Houdini 20.0. This means you might not need to author as many samples in USD, to get decent motion blur.

To increase the quality of motion blur, you can use the following nodes to add and manage time sub-samples.

Motion Blur LOP

The simplest way to author sufficient time samples. If you add this node after the Karma Render Settings, it automatically caches enough time samples to blur across the shutter frame, using the camera set in the render settings.

Cache LOP

Handy for caching time samples around the current frame, or across the timeline. This node has controls for managing sub-frame sampling as well.

File Cache LOP

Inline, file-based caching of USD files to disk, using an embedded USD ROP.

Resample Transforms LOP

Ideally prims will be exported with enough samples, but if that’s not an option you can use this node to author sub-frame samples based on existing animated transforms in USD. This can create smooth rotational blur for spinning objects like propellers.

Volumes are not directly stored in USD, so the only way to vary them across time is to animate different volume asset paths at each time sample. You should have a separate volume file for each time-sample.

Motion blur basics

Once two or more time samples exist on geometry prims, Karma will render transform or geometry motion blur. Karma render settings has Motion Samples from Stage turned on by default, so it uses all time samples across the shutter frame for transform and geometry motion blur. This means adjusting the Transform and Geometry Time Samples is usually unnecessary to get smoother motion blur, as long as there are enough time samples in USD.

Beginning in Houdini 20.0, Karma internally represents transforms as quaternions. This can allow Karma to smoothly interpolate rotations, without requiring artists to author many time samples in USD.

You can set Karma’s motion blur settings per-primitive using a Render Geometry Settings LOP. This lets you target specific objects in the scene, which might need more expensive motion blur settings, without making the entire image slower to render.

Note

To set geometry and transform samples manually, add a Render Settings Edit node and turn off Motion Samples from Stage.

Transform blur

Transform Time Samples: 2
Transform Time Samples: 3
Transform Time Samples: 12

Animated, rigid transforms of primitives and cameras generate motion blur. By default, Karma needs at least two samples to interpolate motion. Increasing the number of samples can give better blur of extremely fast motion.

USD and Hydra only support linear interpolation between time samples. This works for most cases, but fast-rotating primitives will likely need many sub-frame time samples to get accurate blur. Ideally, you should export prims with enough samples, but if that’s not an option you can use the Resample Transforms LOP. It uses existing transform animation in USD to author sub-frame samples and get smooth rotations for spinning objects like propellers.

Geometry/deformation blur

Geometry Time Samples: 2
Geometry Time Samples: 4
Geometry Time Samples: 20

Deforming the points of a prim over time generates geometry blur. Geometry blur is multiplied with any transformation blur. For geometry blur to work, it needs multiple time samples in USD, and the number of points cannot change between samples.

Note

In USD, points is a single-precision attribute. Transforms (such as xformOps) are double-precision.

Velocity/Acceleration Blur

Velocity Blur/Acceleration Blur, 2 Geo Samples
Acceleration Blur, 3 Geo Samples
Acceleration Blur, 7 Geo Samples

For particles or mesh topologies that change over time, you can add velocity attributes to generate blur directly. When a velocities attribute is available, Karma will simply blur along the points in the attribute.

Karma also supports a more natural looking style, acceleration blur. Karma uses accelerations to blur the points along an arc, rather than linearly along the velocities vectors. Karma uses the number of geometry time samples to break the path into multiple segments. Three or more samples is necessary for the motion blur to be non-linear. Two samples will give the same results as velocity blur.

Note

Acceleration blur ignores Motion Samples from Stage, since it requires geometry time samples.

Point instances

Velocity/Acceleration Blur, 2 Instance Samples
Instance Motion Samples: 3
Instance Motion Samples: 8

Instance Velocity Blur controls motion blur of geometry instanced onto points. It behaves very similarly to velocity blur. Karma uses velocities and accelerations on each instanced point for velocity and acceleration blur. However, instanced motion blur has its own samples control, Instance Motion Samples.

Chapters

Karma user guide

Chapters

Reference