destructive denoiser

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.
User avatar
Sharlybg
Donor
Donor
Posts: 3101
Joined: Mon Dec 04, 2017 10:11 pm
Location: Ivory Coast

Re: destructive denoiser

Post by Sharlybg »

Luxcore seem to be powerful yet simple enough to use, but there is still a lot missing and I think I'll give myself a break from it until there is at least "light cache part II" available. I bet 2.1 or 2.2 will be amazing.
An opensource project will always be as strong as the somme of investement of each single menber. Luxcore will perform better as time goes on it is clear but every single user can make the project own and help it to shine.

Dev's code ===>> Users test for feedback ====>> Dev's improve code an usability ===>> Happy User Creat shiny stuffs :D ===>> Happy Dev's improve again. :D

Why a skillfull Coder will continue to worry about a code people wann't try or use :?:

You're already a skillfull artist and each time you work with luxcore without give up make you better and help the project to improve. I know it can be really frustrating somtimes (for example i'm actually working on complexe stuff without the possibility to use Ctrl +Z in object mode. It'snt Luxcore code problem but Blender Bugg).

Take your time. you've done a lot of test in so little time with a totally new renderer plus the fact that you come from Vray or corona World .......

I hope you will continue to be part of the story even in it's sttruggling period and be more proud of it when it become the diamond you're waiting for.
Support LuxCoreRender project with salts and bounties

Portfolio : https://www.behance.net/DRAVIA
User avatar
lacilaci
Donor
Donor
Posts: 1969
Joined: Fri May 04, 2018 5:16 am

Re: destructive denoiser

Post by lacilaci »

Sharlybg wrote: Thu Aug 16, 2018 12:26 pm
Luxcore seem to be powerful yet simple enough to use, but there is still a lot missing and I think I'll give myself a break from it until there is at least "light cache part II" available. I bet 2.1 or 2.2 will be amazing.
An opensource project will always be as strong as the somme of investement of each single menber. Luxcore will perform better as time goes on it is clear but every single user can make the project own and help it to shine.

Dev's code ===>> Users test for feedback ====>> Dev's improve code an usability ===>> Happy User Creat shiny stuffs :D ===>> Happy Dev's improve again. :D

Why a skillfull Coder will continue to worry about a code people wann't try or use :?:

You're already a skillfull artist and each time you work with luxcore without give up make you better and help the project to improve. I know it can be really frustrating somtimes (for example i'm actually working on complexe stuff without the possibility to use Ctrl +Z in object mode. It'snt Luxcore code problem but Blender Bugg).

Take your time. you've done a lot of test in so little time with a totally new renderer plus the fact that you come from Vray or corona World .......

I hope you will continue to be part of the story even in it's sttruggling period and be more proud of it when it become the diamond you're waiting for.
Yeah, I'm not going anywhere.
But I'd like to move on from basic playing and testing crap stuff to at least smaller but complete personal project, or smaller commercial work.
I think I ran out of options, I tested everything I wanted to see.

The only curent problems that stop me from trying it on actual work is terrible memory performance(which if I've read through github properly should be fixed to a large extent by now) and the lack of secondary gi engine/or light caching of indirect bounces.
User avatar
FarbigeWelt
Donor
Donor
Posts: 1046
Joined: Sun Jul 01, 2018 12:07 pm
Location: Switzerland
Contact:

Re: destructive denoiser

Post by FarbigeWelt »

I still think, noise resp. Denoising is a topic to look closer at.
This article imight be a usefull summary of ideas for some improvements or enhancements related to noise.
https://www.researchgate.net/publicatio ... lity_noise
And the conclusions of this one and the some parts as tips for the use of noise.
https://tampub.uta.fi/bitstream/handle/ ... sequence=1

To get dark noiseless parts you can try to post process with a curve tonemapper if noise is not brighter than the darks parts.
There is a generic formula signal to noise ratio. For a quantifiable result signal should be 10 times more intense than noise. Information needs at least signal to square root of noise if ratio is smaller there is noise only. Reliable information starts with 3 times signal to noise ratio. Saying, the finest details should at least send square times more light than the noisy parts to the sensor, real or virtual. Higher source contrasts may help. Dark with dark grey patterns, resp. dark matte with bump map or carved surface cannot be resolved properly in shadows but with very bright light.
Light and Word designing Creator - www.farbigewelt.ch - aka quantenkristall || #luxcorerender
MacBook Air with M1
User avatar
lacilaci
Donor
Donor
Posts: 1969
Joined: Fri May 04, 2018 5:16 am

Re: destructive denoiser

Post by lacilaci »

So I've tested this nvidia ai denoiser: https://declanrussell.com/portfolio/nvidia-ai-denoiser/

And I also tested similar render quality denoising in luxcore and cycles.
And while luxcore seem to be able to render a little higher quality in the same time (tested 30sec path on cpu using both cycles and luxcore) to use denoiser I have to render way more cleaner results in luxcore than I need in cycles, to a point where it doesn't matter if luxcore can be faster...

While cycles denoiser improves on the looks of the image while preserving details, luxcore denoiser just blurs everything and even in high samples shadows just melt away details.

So it's easy to end up in a situation where I would be able to render a scene faster in luxcore in theory and in terms of sampling quality, but the unusable denoiser needs so much samples to work that a crappy noisy cycles render+cycles denoiser beats luxcore completely giving me under 40min. final renders in 4K on relatively old hw.

What is even more interesting is that on the second image I used nvidia denoiser on luxcore render with only using beauty pass, so no albedo and normal aov's to help preserve details. And yet not only is the result better than BCD in terms of details but it was also almost instant (compared to 30sec wait for BCD to just blur the image).

So my question is, can luxcore denoiser be improved to respect high frequency textures and details and object edges, or if not, can we have a proper implementation of nvidia denoiser as an optional denoiser?
Attachments
lux_cycles.jpg
luxcoreNvidiadenoise.jpg
User avatar
Sharlybg
Donor
Donor
Posts: 3101
Joined: Mon Dec 04, 2017 10:11 pm
Location: Ivory Coast

Re: destructive denoiser

Post by Sharlybg »

I really have the feeling your luxcore denoiser settings are too agressive ! it is not correct to loose such amount of detail even with BCD. ;)
Support LuxCoreRender project with salts and bounties

Portfolio : https://www.behance.net/DRAVIA
User avatar
lacilaci
Donor
Donor
Posts: 1969
Joined: Fri May 04, 2018 5:16 am

Re: destructive denoiser

Post by lacilaci »

Sharlybg wrote: Mon Sep 03, 2018 10:16 am I really have the feeling your luxcore denoiser settings are too agressive ! it is not correct to loose such amount of detail even with BCD. ;)
I used defaults.
Lower settings produce artifacts and higher blur image more, pretty much same experience as in this thread:
viewtopic.php?f=5&t=220&start=60

Denoiser won't loose details if you render at really high sampling level but that defeats the purpose of using denoiser in the first place. It is also unusable for previews cause it takes too long.

What I really don't understand is how it is possible that the nvidia denoiser is almost instantly denoising 2K+ images even using just the beauty pass without damaging the image too much. And is much more capable if you feed it normal+albedo aov's.

I don't know what data is BCD using that it takes so long to just blur the image but something is terribly wrong there.
User avatar
lacilaci
Donor
Donor
Posts: 1969
Joined: Fri May 04, 2018 5:16 am

Re: destructive denoiser

Post by lacilaci »

Another comparison.

EDIT:
Just to clarify, this is still nvidia using only 8bit jpg beauty pass as an input since there is no albedo AOV in luxcore. Having albedo and normal pass fed into the denoiser would probably be even much much better. BCD has to be broken somehow.
Attachments
denoising.jpg
Capture.JPG
User avatar
B.Y.O.B.
Developer
Developer
Posts: 4146
Joined: Mon Dec 04, 2017 10:08 pm
Location: Germany
Contact:

Re: destructive denoiser

Post by B.Y.O.B. »

About the denoising times: Isn't the Nvidia denoiser using CUDA?
Our BCD integration only uses the CPU (multithreaded with OpenMP).
There is also a CUDA implementation of BCD, but we have not tested it so far.

On the same topic, it would be good if the denoiser would work on all platforms and graphics cards we are targeting, so Windows, Linux, Nvidia and AMD (and if there is a CPU fallback, for denoising on headless render farms/amazon cloud/etc.).
User avatar
lacilaci
Donor
Donor
Posts: 1969
Joined: Fri May 04, 2018 5:16 am

Re: destructive denoiser

Post by lacilaci »

B.Y.O.B. wrote: Mon Sep 03, 2018 12:23 pm About the denoising times: Isn't the Nvidia denoiser using CUDA?
Our BCD integration only uses the CPU (multithreaded with OpenMP).
There is also a CUDA implementation of BCD, but we have not tested it so far.

On the same topic, it would be good if the denoiser would work on all platforms and graphics cards we are targeting, so Windows, Linux, Nvidia and AMD (and if there is a CPU fallback, for denoising on headless render farms/amazon cloud/etc.).
Yes I absolutely agree, it would be great if denoiser would work on all platform. But first it has to work at all.

The biggest appeal of optix denoiser is speed. That's why in corona for example it is used for realtime/interactive previews while the more superior corona denoiser is supposed to work on final renders.

The problem with luxcore is that BCD is not only slower but practicaly useless in production. So in case of luxcore it seems nvidias usually inferior denoiser is also better here.

So yes, don't wanna nvidia denoiser cause it's nvidia only? Ok, so let's think if maybe something could be done about BCD.

Current state is that if I wanted to see when BCD performs good I had to render thousands of samples getting so little noise that even lightroom noise reduction did the rest. Denoiser was in this case literaly just a waste of time.

And it's really bothering me cause from what I saw Luxcore in some situations seemed to beat cycles easily if denoising wasn't enabled. However I enable denoising and cycles does miracles while BCD just blurs the image.
User avatar
B.Y.O.B.
Developer
Developer
Posts: 4146
Joined: Mon Dec 04, 2017 10:08 pm
Location: Germany
Contact:

Re: destructive denoiser

Post by B.Y.O.B. »

Just a reminder: we have added BCD in one of the v2.1alpha releases. Since we are still in 2.1alpha phase, the whole denoiser integration is alpha software, very new and rarely tested.
So the kind of feedback you provide is very valuable, and it is expected that a new feature might not work properly in the alpha or beta phases.
Since we have only integrated BCD, not developed it ourselves, we are not really familiar with the BCD source code and can't say immediately for example how hard it would be to port it to OpenCL to speed it up.
The blurring of dark image areas is also a problem where we would not know immediately where to look in the source code to improve this. Maybe you can ask the original BCD authors about this?
Here is the official BCD repository: https://github.com/superboubek/bcd/
You can create an issue there. It's probably best if you attach a test case that the BCD authors can easily reproduce.
Post Reply