The last draft for this article dated back to Jan 25, 2016… time to revive it!
Kronos, MotionBlur, Oflow, or Vector Blur? I’m blur…
The great thing with Nuke is that we have many ways to skin a cat problem.
I’ll be focusing on adding motion blur to CGI FX elements like fire, blood and debris. Yes you can abuse I mean use Kronos and Oflow for adding motion blur instead of slowing down footage!
Time to explore the various methods and see which one make or break depending on the situation.
Do not get confused with MotionBlur2D and MotionBlur3D which are not designed to generate motion blur by analysing the image sequences. MotionBlur2D uses the Transform animation while MotionBlur3D uses the camera animation to generate motion blur.
The First Subject: Campfire! Or Any Fire
Originally I used FumeFX to generate the subject matter but let’s use Houdini’s Pyro FX to flame it up!
I made sure the shutter speed and samples are consistent between all three motion blur nodes excluding Vector Blur.
Looking at the final results… Kronos, MotionBlur and Oflow looks identical unless you’re doing A/B difference while Vector Blur has a smoother blurring while being the fastest to calculate.
Do take note that storing velocity data for Pyro FX caches can be really huge!
It is around 2.3GB without Vel data and 12GB with Vel data for 240 frames sim! Take that into consideration if you’re running low on storage.
The Second Suspect: Blood Squirt
It’s actually strawberry jam, kids.
The Third Dimension: Flying Debris
This will be fun to push the limit of the algorithm when dealing with objects that overlap each other while moving in and out in 3D space instead of X and Y dimension.
The subject will be quick and dirty fractured wall debris flying off to the camera for no apparent reason.
The Verdict
Discarding the default three samples, Kronos and MotionBlur node has nearly identical results so it is a matter of whether you need the advanced retiming from Kronos (and only available in NukeX and Nuke Studio) while Oflow has nasty artifacts.
Do take note of the ghosting issue from using Kronos, MotionBlur and Oflow!
Vector Blur provides decent blurring although I want to point out that all of the post-motion blur couldn’t resolve the following issues without a lot of hacky workarounds:
- Overlapping objects
- Rotational motion like a spinning wheel/fan
- Motion blurred shadow/reflection from moving objects (VectorBlur suffer from this the most as it only blurs based on the velocity of the geometry surface)
You can read more about rotational blurring from my old Nuke Tips: Nuke Tips (of the month) – Vector Blur or 3D motion blur?
Conclusion
Since we’re dealing with FX assets that we generate on our own, it is better to output the velocity pass and use Vector Blur to add the motion blur as “faking” motion blur takes a lot of time to calculate (and imagine applying it to dozens of FX elements!).
What happened if you are dealing with outsourced/library assets or live action stock footage that requires motion blur or stronger blurring? You can use Kronos, MotionBlur or Oflow to do the job.
There is also MotionBlur2D and MotionBlur3D too if you can figure out a way to incorporate it into your comp.
IMHO, 3D motion blur is preferable although any changes requires re-rendering so it can be your worst nightmare if there is major changes to the overall shutter speed… also consider your renderer of choice as rendering 3D motion blur can incur minor or severe render speed penalty!
As always, Happy Motion Blurring!