New Albedo settings and more Denoiser related changes

Discussion related to the LuxCore functionality, implementations and API.
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

New Albedo settings and more Denoiser related changes

Post by Dade »

Introduction

I have added few new options and chages with the aim to improve the Intel OIDN denoiser output. This is a rendering with v2.5:

dnone.jpg

and this with v2.6:

dboth.jpg

Albedo AOV new specular reflections and transmissions settings

It is now possible to define how ALBEDO AOV will handle reflections and transmissions:

Code: Select all

# Possible settings NO_REFLECT_TRANSMIT, ONLY_REFLECT, ONLY_TRANSMIT, REFLECT_TRANSMIT
# New default REFLECT_TRANSMIT (v2.5 hard-coded behavior was ONLY_REFLECT)
path.albedospecular.type = REFLECT_TRANSMIT
path.albedospecular.glossinessthreshold = 0.05
The is the result of NO_REFLECT_TRANSMIT setting:

noreflecttransmit.jpg

This is the result of REFLECT_TRANSMIT setting:

reflecttransmit.jpg

New Intel OIDN plugin option for auxiliary buffers pre-filtering

It is now possible to enable/disable auxiliary buffers pre-filtering:

Code: Select all

film.imagepipelines.1.0.type = INTEL_OIDN
# 1 or 0 to enable/disable
film.imagepipelines.1.0.prefilter.enable = 1
This is Albedo without/with pre-filtering:

prefilter.jpg

I doubt it is necessary to expose this setting in Blender because having pre-filtering should always be better.


Pixel filtering to preserve details

As some recent test has shown, pixel filtering should be enabled (with path tracing) even when using Intel OIDN:

pf1.jpg
pf2.jpg

It can be enabled only for path tracing and not for BiDir because BiDir pixel filtering drives OIDN crazy while it seems to tollerate path tracing pixel filtering. Some further test may be required.
Support LuxCoreRender project with salts and bounties
juangea
Donor
Donor
Posts: 332
Joined: Thu Jan 02, 2020 6:23 pm

Re: New Albedo settings and more Denoiser related changes

Post by juangea »

Super cool!

I’ll test it ASAP, having the transmissible option is awesome :)
User avatar
B.Y.O.B.
Developer
Developer
Posts: 4146
Joined: Mon Dec 04, 2017 10:08 pm
Location: Germany
Contact:

Re: New Albedo settings and more Denoiser related changes

Post by B.Y.O.B. »

I added support in BlendLuxCore, in the denoiser settings in the render properties.

Some test images:
"old" = like 2.5, with albedo being NO_REFLECT_TRANSMIT and prefiltering off
"new" = albedo is REFLECT_TRANSMIT and prefiltering on
Attachments
Ground truth, 5000 samples, not denoised
Ground truth, 5000 samples, not denoised
old, 1 sample
old, 1 sample
new, 1 sample
new, 1 sample
old, 10 samples
old, 10 samples
new, 10 samples
new, 10 samples
old, 100 samples
old, 100 samples
new, 100 samples
new, 100 samples
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: New Albedo settings and more Denoiser related changes

Post by Dade »

It looks good to me.
B.Y.O.B. wrote: Tue Jun 29, 2021 9:59 pm Some test images:
"old" = like 2.5, with albedo being NO_REFLECT_TRANSMIT and prefiltering off
"new" = albedo is REFLECT_TRANSMIT and prefiltering on
Have you tried to re-enable pixel filtering (only for path tracing) even with OIDN ? The difference should be visible on a scene with bump mapping :idea:
Support LuxCoreRender project with salts and bounties
User avatar
B.Y.O.B.
Developer
Developer
Posts: 4146
Joined: Mon Dec 04, 2017 10:08 pm
Location: Germany
Contact:

Re: New Albedo settings and more Denoiser related changes

Post by B.Y.O.B. »

Pixel filtering was already used with OIDN.
In the Blender addon, it was only disabled when using Bidir or Path + Light Tracing (because light traced caustics are not properly denoised by OIDN when they have pixel filtering).

In the test scene above, pixel filtering is not used because of light tracing.
User avatar
Sharlybg
Donor
Donor
Posts: 3101
Joined: Mon Dec 04, 2017 10:11 pm
Location: Ivory Coast

Re: New Albedo settings and more Denoiser related changes

Post by Sharlybg »

B.Y.O.B. wrote: Wed Jun 30, 2021 7:10 am Pixel filtering was already used with OIDN.
In the Blender addon, it was only disabled when using Bidir or Path + Light Tracing (because light traced caustics are not properly denoised by OIDN when they have pixel filtering).

In the test scene above, pixel filtering is not used because of light tracing.
With this new addition. Do user have something to setup or it is done internally according to render engine setting.
Support LuxCoreRender project with salts and bounties

Portfolio : https://www.behance.net/DRAVIA
User avatar
B.Y.O.B.
Developer
Developer
Posts: 4146
Joined: Mon Dec 04, 2017 10:08 pm
Location: Germany
Contact:

Re: New Albedo settings and more Denoiser related changes

Post by B.Y.O.B. »

These new features are enabled by default.
User avatar
Sharlybg
Donor
Donor
Posts: 3101
Joined: Mon Dec 04, 2017 10:11 pm
Location: Ivory Coast

Re: New Albedo settings and more Denoiser related changes

Post by Sharlybg »

B.Y.O.B. wrote: Wed Jun 30, 2021 8:23 am These new features are enabled by default.
Great ;)
Support LuxCoreRender project with salts and bounties

Portfolio : https://www.behance.net/DRAVIA
daros
Posts: 280
Joined: Thu Dec 12, 2019 3:25 pm
Location: inside human language
Contact:

Re: New Albedo settings and more Denoiser related changes

Post by daros »

HI, we are experiencing some strange behaviour with Lux 2.6 alpha 0 + oidn 1.4.
In some cases results are worst as with the previous. What are we doing wrong?

albedo reflect+transmit on, treshold 0.5
View 01 600x300_1.jpg

this is the old luxcore and old oidn
View 01 600x300old_1.jpg

albedo reflect+transmit on, treshold 0.5
View 01 600x300new_1.jpg

this is the old luxcore and old oidn
View 01 600x300_2.jpg
0_FI_69544_274697_0000_albedo_1.jpg
0_FI_69544_274697_0000_avgShadingNormal_1.jpg

this one is with higher sampling level:
View 01 600x300high_1.jpg
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: New Albedo settings and more Denoiser related changes

Post by Dade »

daros wrote: Fri Jul 02, 2021 11:06 am albedo reflect+transmit on, treshold 0.5
Have you misread the default value ? You should use 0.05, not 0.5.

It is a glossiness threshold used here like on other contexts of LuxCore: it is a roughness threshold under which a glossy material will be considered as specular (i.e. nearly like a mirror and/or glass if it is a transmitting material).
Support LuxCoreRender project with salts and bounties
Post Reply