What is wrong with the denoiser?

Greetings fellow artists,
Recently I created an interior scene, but when I tried rendering it at 200 samples, everything was going great, until the compositing happened.

See this foil thing that makes it all feel very ugly? The denoiser did it. Also, the chairs have pbr textures, and now they are gone.

(Because I am a new user, and I can’t attach a second file here, I will reply with my denoiser setup)

When I preview it at 32 samples with viewport denoising, everything looks and feels great.
What should I do?
Regards
-Yolo

Here is my denoising setup:

I’ve always used the Image output rather than the Noisy Image to feed the Denoise node. Maybe I’m doing it wrong.

Make sure that in the Render Properties->Denoise that you don’t have another denoiser like NLM enabled.

If you can share the file I’d be happy to try it here.

1 Like

Thanks for your reply! I will try it as soon as possible!

Yeah, when I feed the Noisy Image into the Denoise here, or even try to just feed Noisy Image to the output node, I get no output and other strange stuff. Will play with it some more.

It actually worked! Thank you so much you literally saved me!

I’m playing with it more and coming to question everything I thought I knew about passes related to denoising, and now feel like either I’ve been doing it wrong all this time or virtually everyone else is doing it wrong lol.

The ordinary Normal pass is completely different than the Denoising Normal pass, and If I use the OIDN Denoise Compositing node with Image, Denoising Normal, and Denoising Albedo then the output is crap with artifacts not totally unlike the ones you were getting. I’m not sure the “Denoising Data” passes are even intended to be used in this way.

What I have been doing to fairly great success as far as I can tell is to keep “Denoising Data” passes turned off (they can often double the render time!) and turn on the ordinary Normal and Diffuse DIrect passes and I use those for the Denoise node Normal and Albedo inputs (I’m not sure if Diffuse Direct actually makes sense, I’ve been trying different things there).

Going to go hunt for definitive answers (probably going to have to look at the code).

1 Like

Ok, I found the first little bit of magic (our manual is honestly kinda rubbish in describing the denoising features and there’s out of date information hiding in various places).

If you have the Denoising Data pass set turned on:

image

You will find that in the Cycles Render Properties → Sampling → Denoise section that even when the checkbox next to the Render checkbox is OFF, that the drop-down list for choosing the denoiser is ACTIVE, and you NEED to select OpenImageDenoise as this setting controls WHICH passes are generated as part of the “Denoising Data” passes. When you do this then you get just the passes needed for OIDN and the render is much faster.

image

Edit: It seems like it’s the “Noisy Image” channel that is affected by the denoiser choice in this case. As long as you stick to using the Image channel as the input to the Denoise compositing node then you may never notice, though the NPM denoising passes dramatically slow down the render which I suspect is affecting many people without their knowing it. Also the tile-based denoise options (Render box checked on for the denoise option in the render sampling properties) are all terribly slow compared to using the OIDN as a one-shot compositing operation.

Still playing. I may bug some of the behavior and/or documentation on this.

2 Likes

Thank you so much! I will keep this in mind for my future projects!

I spent an hour this morning wondering why noisy image was not showing up in the compositor or indeed why the image was not being denoised form the render properties even, but then realised in world >filters I had denoising unchecked. doh!!