Denoiser strength

Use this forum for general user support and related questions.
Forum rules
Please upload a testscene that allows developers to reproduce the problem, and attach some images.
Post Reply
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Denoiser strength

Post by Dade »

For all people finding the intervention of the denoiser too strong: there is just one simple parameter to use to decide the "strength" of the denoiser, it is the histogram threshold. It is a threshold under where the denoiser will smooth similar pixels so: a lower value will make the denoiser less intrusive, while an higher value will smooth more pixels. The default values is 1.0.

This is an example of a rendering with 64 samples per pixel (image pipeline #0) and a threshold of 0.25, 1.0 and 4.0 (image pipelines #1, #2, #3):
denoiser.jpg
Support LuxCoreRender project with salts and bounties
User avatar
lacilaci
Donor
Donor
Posts: 1969
Joined: Fri May 04, 2018 5:16 am

Re: Denoiser strength

Post by lacilaci »

Dade wrote: Wed Oct 31, 2018 9:47 am For all people finding the intervention of the denoiser too strong: there is just one simple parameter to use to decide the "strength" of the denoiser, it is the histogram threshold. It is a threshold under where the denoiser will smooth similar pixels so: a lower value will make the denoiser less intrusive, while an higher value will smooth more pixels. The default values is 1.0.

This is an example of a rendering with 64 samples per pixel (image pipeline #0) and a threshold of 0.25, 1.0 and 4.0 (image pipelines #1, #2, #3):

denoiser.jpg
I think we need to first understand what everyone has issues with when they say "denoiser is too strong".

Let's go back to cycles example:
If I tell cycles to use small radius for denoising I get small radius of noise blur but features stay untouched.
If I max out denoiser radius to 25 pixels I get pretty much all noise gone, but features stay untouched still(even if they are hidden behind icredible noise).

BCD works with very fine residual noise but needs very good contrast and feature definition visible, nothing that is hidden behind noise gets recovered at all...

So with something like, tree tops in front of sky bcd will be able to deal because there is clearly very strong contrast. But something like fine wood texture, or flat lighting in shadow areas in interior will always going to be a pronlem unless the noise is much finer than details in objects and textures. I guess that's why they say it's a "final frame" denoiser. Cause for previewing and testing is just useless.
And honestly even a near final result render will have some noise in a distant wood texture and BCD takes that away horribly bluring it cause it just doesn't know there's a texture.
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: Denoiser strength

Post by Dade »

lacilaci wrote: Wed Oct 31, 2018 10:23 am I think we need to first understand what everyone has issues with when they say "denoiser is too strong".

Let's go back to cycles example:
If I tell cycles to use small radius for denoising I get small radius of noise blur but features stay untouched.
If I max out denoiser radius to 25 pixels I get pretty much all noise gone, but features stay untouched still(even if they are hidden behind icredible noise).

BCD works with very fine residual noise but needs very good contrast and feature definition visible, nothing that is hidden behind noise gets recovered at all...

So with something like, tree tops in front of sky bcd will be able to deal because there is clearly very strong contrast. But something like fine wood texture, or flat lighting in shadow areas in interior will always going to be a pronlem unless the noise is much finer than details in objects and textures. I guess that's why they say it's a "final frame" denoiser. Cause for previewing and testing is just useless.
And honestly even a near final result render will have some noise in a distant wood texture and BCD takes that away horribly bluring it cause it just doesn't know there's a texture.
Have you tried to do what I suggest ?
Support LuxCoreRender project with salts and bounties
User avatar
lacilaci
Donor
Donor
Posts: 1969
Joined: Fri May 04, 2018 5:16 am

Re: Denoiser strength

Post by lacilaci »

Dade wrote: Wed Oct 31, 2018 12:05 pm
lacilaci wrote: Wed Oct 31, 2018 10:23 am I think we need to first understand what everyone has issues with when they say "denoiser is too strong".

Let's go back to cycles example:
If I tell cycles to use small radius for denoising I get small radius of noise blur but features stay untouched.
If I max out denoiser radius to 25 pixels I get pretty much all noise gone, but features stay untouched still(even if they are hidden behind icredible noise).

BCD works with very fine residual noise but needs very good contrast and feature definition visible, nothing that is hidden behind noise gets recovered at all...

So with something like, tree tops in front of sky bcd will be able to deal because there is clearly very strong contrast. But something like fine wood texture, or flat lighting in shadow areas in interior will always going to be a pronlem unless the noise is much finer than details in objects and textures. I guess that's why they say it's a "final frame" denoiser. Cause for previewing and testing is just useless.
And honestly even a near final result render will have some noise in a distant wood texture and BCD takes that away horribly bluring it cause it just doesn't know there's a texture.
Have you tried to do what I suggest ?
There is no permutation of those settings exposed in blender I haven't tried, I'm not even kidding. I'll show some pictures in a while...
User avatar
lacilaci
Donor
Donor
Posts: 1969
Joined: Fri May 04, 2018 5:16 am

Re: Denoiser strength

Post by lacilaci »

Ok, so with identical settings as you have in your screenshots...

In attachment one file that shows luxcore and comparison with nvidia.
Note that changing histogram values is literaly a choice between noisy or blurry image.
High values help with flat areas and low values help preserve details, a scene that contains both needs a value inbetween that doesn't really help with anything. Yes, in a pretty much final result with little to no noise it could help, but that rendering better has no areas that are too noisy and hide details...

In another image an extremely noisy image and comparison of cycles denoiser and nvidia. I know, 64 samples is here is not the same as 64 samples in luxcore, this is to show you what cycles denoiser can do even in extreme situations. Yes, this is nowhere final rendering and shows artifacting, but it is fast, works in high resolutions with little performance impact and is usable for previews and final renderings as well.

And lastly keep in mind that for nvidia denoiser I have used only 8bit beauty pass in both examples so it doesn't even use it's full potential as it would with using hdr training data and normal+albedo passes.

So now, imagine anyone coming from corona, vray or even cycles trying out luxcore.
And now imagine, luxcore performance and denoiser that is similar to quality and performance to cycles, or having nvidia ai denoiser implemented.
Attachments
BCD_denosier.jpg
cycles_denoiser.jpg
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: Denoiser strength

Post by Dade »

lacilaci wrote: Wed Oct 31, 2018 1:23 pm Yes, this is nowhere final rendering and shows artifacting
So how it is different from BCD denoiser ?
lacilaci wrote: Wed Oct 31, 2018 1:23 pm but it is fast
If the answer is execution time, it is not the topic of this thread and, as I have already told you in another thread, the solution is to add OpenCL support to BDC denoiser.
Support LuxCoreRender project with salts and bounties
User avatar
lacilaci
Donor
Donor
Posts: 1969
Joined: Fri May 04, 2018 5:16 am

Re: Denoiser strength

Post by lacilaci »

Dade wrote: Wed Oct 31, 2018 4:06 pm
lacilaci wrote: Wed Oct 31, 2018 1:23 pm Yes, this is nowhere final rendering and shows artifacting
So how it is different from BCD denoiser ?
lacilaci wrote: Wed Oct 31, 2018 1:23 pm but it is fast
If the answer is execution time, it is not the topic of this thread and, as I have already told you in another thread, the solution is to add OpenCL support to BDC denoiser.

Look at noise levels on luxcore render and what remains after denoising, and then look at noise level of cycles render and how much gets recovered after denoising.
That is the difference, that artifacting in cycles is not ruining any details it mostly affects lighting and denoiser even shows details you could not read from the noise (lighswitch, door handle,even hints of texture details not visible in input)

Making BCD faster won't help with that.
Post Reply