Page 24 of 32

Albedo dispersion noise

Posted: Fri Feb 08, 2019 4:56 pm
by epilectrolytics
Experimenting with BiDir, Dispersion and OIDN and found a problem:
With dispersion the bounced albedo pass gathers dispersion noise.
This prevents the denoiser from denoising the refractive surfaces.
Suggestion: disable dispersion when rendering albedo AOV.
combined.png
Top image: Combined channel with noise.
Middle image: Denoised channel with smooth caustics but disperion noise in glass.
Bottom image: Albedo channel with dispersion noise in glass.

Re: OpenImageDenoise

Posted: Fri Feb 08, 2019 5:15 pm
by B.Y.O.B.
I have also found that noise in the albedo AOV really wrecks OIDN (understandably, as the albedo AOV is supposed to be noise-free).
Glass with its partly transmissive and partly reflective behaviour is especially problematic. Maybe the reflective part should be ignored when computing the albedo AOV?

Re: OpenImageDenoise

Posted: Fri Feb 08, 2019 5:23 pm
by epilectrolytics
We need more testing with this.
Maybe we need bouncing albedo as an additional AOV to simple albedo like with normal and average normal to choose from.

Re: OpenImageDenoise

Posted: Fri Feb 08, 2019 5:28 pm
by lacilaci
well it is true that noisy albedo and normal aovs do more damage than none.

Re: Albedo dispersion noise

Posted: Fri Feb 08, 2019 8:23 pm
by Dade
epilectrolytics wrote: Fri Feb 08, 2019 4:56 pm Experimenting with BiDir, Dispersion and OIDN and found a problem:
With dispersion the bounced albedo pass gathers dispersion noise.
This prevents the denoiser from denoising the refractive surfaces.
Suggestion: disable dispersion when rendering albedo AOV.
I explain the situation:

- Mirror material: Mirror is only a possible outgoing direction given an input so there is no noise at all in Albedo AVO.

- Glass material: Glass is only 2 possible outgoing directions (reflection or transmission) given an input so there is very little noise. With only 2 options, you just need few samples to have a noise free solution.

- Glass material with dispersion: here we hare, you can have reflection or transmission but, for transmission, you have to sample all the possible wave length visible to human eye. All wave lengths between 380nm and 780nm. It requires a lot of samples.

"disable dispersion when rendering albedo AOV" is not possible because the index of refraction changes with the wavelengths so it is a different rendering.
So the only alternative I see at the moment is to just return black glass+dispersion like the original Albedo AOV: or we have noise, or we have black glass+dispersion.

Re: Albedo dispersion noise

Posted: Fri Feb 08, 2019 9:25 pm
by epilectrolytics
Dade wrote: Fri Feb 08, 2019 8:23 pm - Glass material with dispersion: here we hare, you can have reflection or transmission but, for transmission, you have to sample all the possible wave length visible to human eye. All wave lengths between 380nm and 780nm. It requires a lot of samples.

"disable dispersion when rendering albedo AOV" is not possible because the index of refraction changes with the wavelengths so it is a different rendering.
So the only alternative I see at the moment is to just return black glass+dispersion like the original Albedo AOV: or we have noise, or we have black glass+dispersion.
I see, thanks for explaining.

EDIT:
I have situations where the dispersion noise does not affect the denoiser, but these are lucky hits.

So it should be optional, like a checkbox in the denoiser tab for simple dispersion Albedo (disables bouncing Albedo for dispersion materials).

The other materials like mirror and nondispersive glass could remain with tracing.
Or is this not possible to differentiate on a material basis but only globally?

Then we would need a global setting like a general Deep Albedo AOV checkbox.

Re: Albedo dispersion noise

Posted: Fri Feb 08, 2019 10:25 pm
by Dade
epilectrolytics wrote: Fri Feb 08, 2019 9:25 pm The other materials like mirror and nondispersive glass could remain with tracing.
Or is this not possible to differentiate on a material basis but only globally?
Yes, I was suggesting to have "black" glass in Albedo AOV if, and only if, it has dispersion.

Re: Albedo dispersion noise

Posted: Fri Feb 08, 2019 11:24 pm
by epilectrolytics
Dade wrote: Fri Feb 08, 2019 10:25 pm Yes, I was suggesting to have "black" glass in Albedo AOV if, and only if, it has dispersion.
OK, an automatic opt-out and no need for a checkbox: this is a very good compromise. :)

Re: Albedo dispersion noise

Posted: Sat Feb 09, 2019 3:51 pm
by Dade
Dade wrote: Fri Feb 08, 2019 10:25 pm Yes, I was suggesting to have "black" glass in Albedo AOV if, and only if, it has dispersion.
I have applied this change.

Re: OpenImageDenoise

Posted: Sun Feb 10, 2019 11:44 pm
by voxelium
You shouldn't use "black" for dielectrics. It may work but that's probably a coincidence ;) Use an albedo of 1 instead. I'll update the documentation very soon with more details.