De-noising flickering animation (temporal de-noising) and tips!

Hi BA’s,

New to the forum, but not Blender.

I’ve been putting out a few Fusion tutorials but have been using Blender for a few years now and wanted to give back to the community with some tips and tricks I’ve learned by using Blender in production.

My first blender video covers 3 different ways we’ve been denoising on feature films for years. I’ve seen quite a few videos covering simple single pass denoising, but not many covering the benefits on doing multi pass. So that should at least be somewhat interesting to some :slight_smile:
And the topic I haven’t seen anyone talk about is temporal denoising for stable renders with low samples.

Hopefully this is useful for some of you! :slight_smile:

stx

4 Likes

Thanks for sharing.

Thanks a lot for sharing, this cunning little piece of knowledge is a real game changer.

I found however that your temporal denoising approach seems to work with static, non-animated environments only … which, once you think about it, is kind of obvious. Any scene element bringing in motion vectors of its own on top of mere camera movement will be messed up, a moving water surface yielded the most interesting effect - it turned into a mixtue of oil and mercury, viscosity and surface tension jump of factor 1000 (the 3-frame interpolation both slows down movement and changes transparency effects and small structure/ripple visibility). :slight_smile:

I assume you counteracted this by rendering each any every animated scene element in a view layer of its own and applied specific denoising to it?

1 Like

Thank you for this! The difference from single pass and multi-pass is astounding.

Is temporal denoising also CPU intensive?

As long as you have valid motion vectors it should also work on animated objects, things like characters, vehicles etc.

Problems usually occurs if there are very fast motions from one frame to another so it cannot “warp/displace” the previous and current frame into a reasonable approximation of the current frame.

This is especially true for things with a dramatic change in shape and silhouette like fluid simulations.

The way to combat some of these is to have a separate process for things moving fast vs static things.
With motion vectors you can quite easily create a “speed mask” by taking the length of the vector and setting a threshold. And anything above a certain speed should instead of getting the de-noising treatment should perhaps get a motion-blur / smearing treatment anyways.

As with most fixes, there are times it all works very well and times where it just fails and you have to find other ways of dealing with it.

Temporal de-noising isn’t intensive at all, it just needs a bit of extra memory and disk reads.

That said; Blenders compositor is probably the slowest of all the compositors out there for anything like this as it re-calculates every single node on every parameter change, no caching :frowning:

2 Likes