Cleaning Motion Blur Specular Fireflies

This is a Julius Ihle awesome idea! Check his website http://julius-ihle.de/

Barely everything I do is still images of cars, half of them with motion blur. The car is usually static and the motion is just on the backplate, but rims do rotate, and usually with a low roughness material.
This is not a big problem for me, doing stills rendertime is not a big issue and if there're some fireflies I'll fix it in post. But what happens when once a year I have to do an animation? Yep, I'm fucked. Long rendertimes and fireflies are not animation friendly.
Let's solve it thanks to the great Julius Ihle.

Juliu's solution is far from being physically correct, but it works so good. The idea is quite simple, when something is in motion blur, make it rougher. If this is a still image or the object is in motion blur the whole animation, that's easy. But what can we do if it needs to work still and in motion? Yes, we can manually animate the roughness value (I maybe prefer to kill myself), but then if two different objects with the same material needs to be rendered on in motion and one still, we will need two shaders. But don't worry, we have something more interesting. Link the motion vector to the roughness! (We can also link it to bump and displacement to reduce those too).


To achieve this, just the motion vector won't be enough. We need the raw format, otherwise it will be just values between 0-1 to make it better visible. But the raw format will give us also negative values, so we need to get rid of those with an absolute node.
Next step is to convert that to float value, but not in average mode, it's better to use max to have a better range.
To end it, just pipe the result to a remap node to decide what's your minimum movement (input min, ie. 0), the minimum value to have maximum roughness (input max, ie. 30) and the minimum and maximum values of roughness (output min, ie. 0 and output max, ie. 0.2).




Comments