OpenImageDenoise

Discussion related to the Engine functionality, implementations and API.
provisory
Posts: 224
Joined: Wed Aug 01, 2018 4:26 pm

Re: OpenImageDenoise

Post by provisory » Fri May 31, 2019 4:32 pm

Currently LuxCore always uses 1 in albedo channel for metals, however the OpenImageDenoise documentation says:
For metallic surfaces the albedo should be either the reflectivity at normal incidence (e.g. from the artist friendly metallic Fresnel model) or the average reflectivity; or if these are constant (not textured) or unknown, the albedo can be simply 1 as well.
https://github.com/OpenImageDenoise/oidn#albedo

Could we use the Color value in Metal Material node for albedo? (Whether it is textured or constant.)

User avatar
Dade
Developer
Developer
Posts: 3257
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: OpenImageDenoise

Post by Dade » Fri May 31, 2019 6:40 pm

Yes, we can (we wrote the code before some clarification was added to the documentation). I will be out of the town for few days so just ping me if I forget.
Support LuxCoreRender project with salts and bounties

provisory
Posts: 224
Joined: Wed Aug 01, 2018 4:26 pm

Re: OpenImageDenoise

Post by provisory » Fri May 31, 2019 8:03 pm

Okay, thanks in advance!

provisory
Posts: 224
Joined: Wed Aug 01, 2018 4:26 pm

Re: OpenImageDenoise

Post by provisory » Wed Jun 05, 2019 7:34 pm

Code: Select all

ping Dade
:)

User avatar
Dade
Developer
Developer
Posts: 3257
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: OpenImageDenoise

Post by Dade » Thu Jun 06, 2019 9:01 am

provisory wrote:
Wed Jun 05, 2019 7:34 pm

Code: Select all

ping Dade
:)
Done:

metal.jpg
Support LuxCoreRender project with salts and bounties

provisory
Posts: 224
Joined: Wed Aug 01, 2018 4:26 pm

Re: OpenImageDenoise

Post by provisory » Thu Jun 06, 2019 2:23 pm

Thank you!

provisory
Posts: 224
Joined: Wed Aug 01, 2018 4:26 pm

Re: OpenImageDenoise

Post by provisory » Wed Jun 12, 2019 9:36 am

I know I'm insatiable, but could we use the blend of the reflected and transmitted albedos for perfect specular surfaces (mirror and not rough glass)? :)
The albedo for dielectric surfaces (e.g. glass) should be either 1 or, if the surface is perfect specular (i.e. has a delta BSDF), the Fresnel blend of the reflected and transmitted albedos (as previously discussed). The latter usually works better but only if it does not introduce too much additional noise due to random sampling. Thus we recommend to split the path into a reflected and a transmitted path at the first hit, and perhaps fall back to an albedo of 1 for subsequent dielectric hits, to avoid noise. The reflected albedo in itself can be used for mirror-like surfaces as well.
https://github.com/OpenImageDenoise/oidn#albedo

User avatar
epilectrolytics
Donor
Donor
Posts: 570
Joined: Thu Oct 04, 2018 6:06 am

Re: OpenImageDenoise

Post by epilectrolytics » Wed Jun 12, 2019 9:57 am

Yes me too! :D

We already had that in the initial implementation but it can cause noise in the albedo AOV and thus irritate OIDN, so it was removed again.
In my tests it worked well, especially with BiDir, when there is a glass object on a textured surface.
It could be implemented as an option with a checkbox in the blender panel, maybe deactivated by default.
MBPro 15" 16GB i7-4850HQ GT750M, MacOS 10.13.6 & Win10Pro PC 16GB Ryzen 2700X, 2 x RTX 2070

User avatar
lacilaci
Donor
Donor
Posts: 1637
Joined: Fri May 04, 2018 5:16 am

Re: OpenImageDenoise

Post by lacilaci » Wed Jun 12, 2019 10:00 am

Let's not forget that if albedo has noise, final image will have noise. This can turn oidn useless. But if there's a way.

provisory
Posts: 224
Joined: Wed Aug 01, 2018 4:26 pm

Re: OpenImageDenoise

Post by provisory » Wed Jun 12, 2019 10:26 am

Optional solution would be perfect!

Post Reply