For quite some time I have encountered forum threads and twitter accounts asking about motion blur in Eevee. With the 2.90 release this is now finally possible.
Motion blur can be turned on for Eevee by going to the render settings and check the box on the motion blur section. Motion blur in Eevee is only visible for the final render and it requires motion in the form of animation or simulation from previous frames.
Let’s dive into the settings and some examples.
What is motion blur and how does it work?
Motion blur is trailing streaks appearing in a photograph. They are seen in photographs where either the camera or objects in the view are moving. The object itself is also often blurred with a corresponding direction to the motion.
In this example where an image is taken through the window on a moving buss, everything outside the window becomes blurred to the extent that we can barely make out the cars outside.
The reason for motion blur to happened at all is thanks to shutter speed.
Shutter speed is the amount of time light is let into a camera. If objects viewed by the camera are moving during this period, they will get motion blur.
The length of the streaks depends on how far the objects move during this period.
Here is a classic example of long exposure, meaning that the shutter was open for an extended period of time.
We can see the streaks created by passing cars while the shutter was open on the camera.
In Blender, we have been able to recreate this effect digitally for quite some time in Cycles. But in Eevee it has just recently become available.
Let’s look at one more creative example, before we dive into how to use motion blur with Eevee though.
In this case the camera moves at the same speed as the cyclist, making the background the thing that appears to be moving.
How to use motion blur in Eevee?
As we covered in the introduction, motion blur can easily just be turned on in the render settings. You can find the checkbox to enable it here.
(The images below have some banding on the spheres thanks to image compression for the web)
We can use motion blur with both still image rendering and animations. But we do need to have simulation or animation data that has moved either the camera or one or more objects in the scene so that there is a change between frames. Blender will use this data to calculate the amount of motion blur in the frame.
In the screenshot above the spheres are moving. There is animation data, but we can’t view motion blur in the viewport. It requires a full F12 render or animation to be calculated.
Here you can see a side-by-side comparison of a frame with motion blur enabled and disabled.
(You can see that there is significant banding in the second image. That us because of compression in the backend of this website. But you can also see that the motion blurred image fare much better with almost no noticeable banding.)
It is most apparent on the yellow sphere, but you can see the difference through the whole shot. Even if the scene is an abstract test scene there are two take-aways here.
With motion blur the shot looks more realistic, but it also looks much less polished. When using motion blur, it is important to have a final idea in mind first and use the effect in moderation, whatever that means in your given scenario.
While this isn’t an animation article, I will quickly cover how to create keyframes to generate movement and get the effect.
Go to the layout workspace where we have both a 3D viewport and a timeline at the bottom.
- Make sure motion blur is turned on
- Scroll the play head in the timeline to frame 1.
- Select an object you want to have motion blur.
- Move it to a place where it is going to appear coming from.
- Press “I” on your keyboard and choose location.
- Move the play head in the timeline forward. In this example, to frame one hundred.
- Move the object past the point you want it to appear in the final render.
- Press “I” and insert another location keyframe.
- Scroll the play head back in between frame 1 and 100 and find the location you want the object to be during the render.
- Hit render and see how motion blur is calculated based on the animation and motion blur settings
Let’s now dive deeper into the actual settings available to adjust and tweak the motion blur.
What kind of motion blurs are there in Eevee?
Before Blender version 2.90 there was one kind of motion blur in Eevee called speed vector motion blur. This is a post-process motion blur added to the scene after the rendering process is done. It was limited to only create motion blur for camera movement and thus, the entire frame would get blurred. This is often referred to as post-process motion blur.
After Blender version 2.90 post-processing motion blur was improved and another kind of motion blur was added called accumulation blur.
Related content: Blender shape key basics guide
Accumulation blur enables us to create object motion blur or deformation motion blur. This is either when an object is animated or simulated to move across the screen.
I tested deformation simulation with both shape keys and by animating the scale value of an object. It also works by animating modifier values.
The improvements that were made to post-process motion blur is that it can also now apply to objects and deformations. My guess is that this is because it can use data from the accumulation motion blur.
What options are there for motion blur and what do they do?
These are the available settings for motion blur in Eevee as of Blender version 2.91.
- Background separation
- Max Blur
If you are interested in other Eevee render settings, you can read more about other render settings and post-processing effects in this article.
Related content: A guide to Blender Eevee render settings
The position parameter tells Blender when the cameras shutter open and close and what frames will be considered. The motion blur trail will be before and after the object no matter the setting. But the object will appear one frame early on start on frame and one frame later with end on frame.
As far as I understand it, we can use this to create different trailing effects. For instance, by overlapping the original footage without motion blur in post.
In most cases you will want to have this set to center on frame if you don’t have a very specific need.
The shutter parameter essentially tells Blender the amount of motion blur. Higher values will create longer trails since the shutter is open for longer. If you only keep track of one parameter for your motion blur, this should be it.
Background separation affects only post-processing motion blur. If the background happens to create motion blur over the foreground, you can lower this value to remedy the error.
The Max blur setting is used by the post-processing motion blur. If we set this to zero, we turn off post processing motion blur.
The number we set here is the maximum number of pixels post-process motion blur will blur. But if the shutter isn’t open long enough this value won’t limit it.
The steps value is for accumulation blur what max blur is for post processing motion blur. It controls the accuracy. If we set this to the minimum value of 1, we essentially turn of accumulation motion blur.
Here, I guess that post-process motion blur uses this step value to create post process motion blur on moving and deforming objects and therefore we can’t set it lower than one. But we need at least two steps for accumulative motion blur to be in effect.
Don’t quote me on that though since I have not been able to verify it.
Motion blur is easy to get going with in Eevee. Just toggle a checkbox and create a couple of keyframes. If you want to get fancy with it there are also a few options for you, and we can finally create some more realistic animations in Eevee thanks to this powerful addition to the engine.
Thanks for your time.