Hybrid Back/Forward path tracing (aka BiDir without MIS)

Discussion related to the LuxCore functionality, implementations and API.
Post Reply
User avatar
B.Y.O.B.
Developer
Developer
Posts: 4146
Joined: Mon Dec 04, 2017 10:08 pm
Location: Germany
Contact:

Re: Hybrid Back/Forward path tracing (aka BiDir without MIS)

Post by B.Y.O.B. »

provisory wrote: Mon Jun 24, 2019 6:06 pm How to disable the light visibility in specular paths?
In BlendLuxCore, this is possible for the following light types:
- sky
- sun
- infinite (aka "HDRI" in world or hemi settings)
- constantinfinite (aka "flat color" in world or hemi settings)

The setting can be found in the "Visibility" panel of the lamp properties.
https://wiki.luxcorerender.org/BlendLux ... Visibility

In LuxCore, it is also possible to set these flags on materials, however this was apparently never exposed in BlendLuxCore (I guess I simply forgot it).
However, I have a comment in the area light code:
# Note: do not add support for visibility.indirect.* settings, they are useless here
# because the only sensible setting is to have them enabled, otherwise we lose MIS
https://github.com/LuxCoreRender/BlendL ... ht.py#L322
The problem was that making an emissive material invisible to certain rays creates excessive noise because of missing MIS.
I'm not sure if this new hybrid back/forward feature would be an exception to this rule?
provisory
Posts: 235
Joined: Wed Aug 01, 2018 4:26 pm

Re: Hybrid Back/Forward path tracing (aka BiDir without MIS)

Post by provisory »

Thank you!

I was looking for it at the area lights for testing, but it's not that important.
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: Hybrid Back/Forward path tracing (aka BiDir without MIS)

Post by Dade »

B.Y.O.B. wrote: Mon Jun 24, 2019 7:41 pm I'm not sure if this new hybrid back/forward feature would be an exception to this rule?
Nope, it isn't.
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: Hybrid Back/Forward path tracing (aka BiDir without MIS)

Post by B.Y.O.B. »

I have exposed this feature in BlendLuxCore.
If OpenCL is used, the CPU is completely dedicated to light tracing automatically.
If only the CPU is used, the user can control the amount of computing power to spend on light rays (default: 20%).
Attachments
Capture.PNG
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: Hybrid Back/Forward path tracing (aka BiDir without MIS)

Post by Dade »

Dade wrote: Sun Jun 23, 2019 12:42 pm Glossy caustics

If this solution replaces caustic cache, I will add the support for glossy caustics too. It currently render only specular caustics like caustic cache.
I added the support for rendering glossy caustics. This is normal path tracing:

off.jpg

and this is Hybrid:

on.jpg

The threshold to handle a glossy surface like specular ones can be defined with:

Code: Select all

path.hybridbackforward.glossinessthreshold = 0.05
It works exactly like PhotonGI glossiness threshold.
Support LuxCoreRender project with salts and bounties
User avatar
Sharlybg
Donor
Donor
Posts: 3101
Joined: Mon Dec 04, 2017 10:11 pm
Location: Ivory Coast

Re: Hybrid Back/Forward path tracing (aka BiDir without MIS)

Post by Sharlybg »

and this is Hybrid:
in the hybrid render caustics are not reflected on the cube. is this is the normal behaviour ?
Support LuxCoreRender project with salts and bounties

Portfolio : https://www.behance.net/DRAVIA
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: Hybrid Back/Forward path tracing (aka BiDir without MIS)

Post by Dade »

Sharlybg wrote: Tue Jun 25, 2019 11:19 am in the hybrid render caustics are not reflected on the cube. is this is the normal behaviour ?
It is the definition of SDS path: you can not see caustics reflected in mirrors(-like).
Support LuxCoreRender project with salts and bounties
User avatar
FarbigeWelt
Donor
Donor
Posts: 1046
Joined: Sun Jul 01, 2018 12:07 pm
Location: Switzerland
Contact:

Re: Hybrid Back/Forward path tracing (aka BiDir without MIS)

Post by FarbigeWelt »

Sharlybg wrote: Tue Jun 25, 2019 11:19 am
in the hybrid render caustics are not reflected on the cube. is this is the normal behaviour ?
This is a good question. Looks like BiDir behavior. BiDir does not mirror everything, e.g. scattered laser beams, it looks like BiDir only renders with max depth of one in these cases. Is there any good reason? Is not every reflection, diffuse or specular, similar to a new light source casting in any or a specific direction? LucCoreRender is able to handle more than a million lights per scene. Why not treating intersections of rays with surfaces or scattering volumes as new lights?
Light and Word designing Creator - www.farbigewelt.ch - aka quantenkristall || #luxcorerender
MacBook Air with M1
provisory
Posts: 235
Joined: Wed Aug 01, 2018 4:26 pm

Re: Hybrid Back/Forward path tracing (aka BiDir without MIS)

Post by provisory »

Just out of curiosity, LIGHTCPU in itself can trace SDS paths?
happyboy
Posts: 63
Joined: Sat Jun 22, 2019 5:39 am

Re: Hybrid Back/Forward path tracing (aka BiDir without MIS)

Post by happyboy »

I've tried it with a bathroom scene (there is a glass shower and a mirror), which looks good. However, all my emissive objects are black. Is it intended or a bug? After disabling Hybrid Back/Foward path tracing, these objects are emissive again. I'm using OCL and partition = 0 (CPU only do light paths).

Thanks!
Post Reply