OpenImageDenoise
-
- Donor
- Posts: 790
- Joined: Thu Oct 04, 2018 6:06 am
Albedo dispersion noise
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. 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.
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. 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
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?
Glass with its partly transmissive and partly reflective behaviour is especially problematic. Maybe the reflective part should be ignored when computing the albedo AOV?
-
- Donor
- Posts: 790
- Joined: Thu Oct 04, 2018 6:06 am
Re: OpenImageDenoise
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.
Maybe we need bouncing albedo as an additional AOV to simple albedo like with normal and average normal to choose from.
Re: OpenImageDenoise
well it is true that noisy albedo and normal aovs do more damage than none.
Re: Albedo dispersion noise
I explain the situation: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.
- 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.
-
- Donor
- Posts: 790
- Joined: Thu Oct 04, 2018 6:06 am
Re: Albedo dispersion noise
I see, thanks for explaining.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.
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
Yes, I was suggesting to have "black" glass in Albedo AOV if, and only if, it has dispersion.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?
-
- Donor
- Posts: 790
- Joined: Thu Oct 04, 2018 6:06 am
Re: Albedo dispersion noise
I have applied this change.
Re: OpenImageDenoise
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.