BIDIRCPU can now use PhotonGI cache to render SDS paths

Discussion related to the LuxCore functionality, implementations and API.
User avatar
Sharlybg
Donor
Donor
Posts: 3101
Joined: Mon Dec 04, 2017 10:11 pm
Location: Ivory Coast

Re: BIDIRCPU can now use PhotonGI cache to render SDS paths

Post by Sharlybg »

epilectrolytics wrote: Wed Dec 23, 2020 10:34 am BiDir was never a valid ground truth renderer because of the missing SDS reflections, except when using intersectable lights and rendering for 24 hours.
When this problem finally gets solved by adding PGI cache it is very welcome.
No one is forced to use this addition, it can be disabled by default.

The question is if PGI really will resolve all missing paths or only a subset like it does when used with hybrid path?
BiDirVM does render all kinds of reflected caustics, including those from indirect light, in reasonable time, but it is broken currently.

If caustic cache can be set up to do the same that would be a great advantage for everyone interested in realistic physically based rendering, no matter the additional parameters. It is quite possible that a default set-up will cover most cases.
1/ caustic cache isn't animation proof.
2/ if you try it in many cases you will notice that a default setup is nearly impossible
3/ we already use it in path tracing so we are not against it (i have myself multiple tutorial on the topic)
4/ What we are discussing is philosophy behind each mode Bidir vs Path + LC + PGI.
5/ The alternative we propose is more futur proof / animation capable while following the Bidir minimal setting approach..

Seriously do you think you will be able to use cached caustics if there was a one click solution like the one in Light tracing ??
Support LuxCoreRender project with salts and bounties

Portfolio : https://www.behance.net/DRAVIA
User avatar
Sharlybg
Donor
Donor
Posts: 3101
Joined: Mon Dec 04, 2017 10:11 pm
Location: Ivory Coast

Re: BIDIRCPU can now use PhotonGI cache to render SDS paths

Post by Sharlybg »

In general it is easy to setup Gaustic cache for pool.But when i try it in an interior scene with mirror glass i am never able to find a right balance between speed and detailed caustics. The more precision i get (higher photon max size / lower lookup radius / higher steps samples) the worse speed can be affected. in the recent benchmark scene here : https://youtu.be/yRJWDotGxvs it was planned to had caustic cache in the mix but none of my settings worked always end up with this :

Fast render = caustic disappear as render progress.
very slow render = photton dot stay frezzed on a clean diffuse surface dot
with the pool it converge easily but cautics cache on diffuse surface stay unbreakable aleast for me :
caustic 0.03M 235k.jpg
caustic 1M 0.015 s94k.jpg
Last edited by Sharlybg on Wed Dec 23, 2020 8:28 pm, edited 1 time in total.
Support LuxCoreRender project with salts and bounties

Portfolio : https://www.behance.net/DRAVIA
epilectrolytics
Donor
Donor
Posts: 790
Joined: Thu Oct 04, 2018 6:06 am

Re: BIDIRCPU can now use PhotonGI cache to render SDS paths

Post by epilectrolytics »

Sharlybg wrote: Wed Dec 23, 2020 4:25 pm Seriously do you think you will be able to use cached caustics if there was a one click solution like the one in Light tracing ??
I'd love to see a one-click-caustics-incl.SDS-solution in Lux but I fear compared with Chaos Group here's a lack of resources to pull off something that probably took a whole team of well paid developers.
But when i try it in an interior scene with mirror glass i am never able to find a right balance between speed and detailed caustics.
Same here, and that's why I'm eager to see if the combination of PGI with BiDir instead of hybrid path can help with that.
Having a working BiDirVM should be the goal, let's wait and see what BiDir PGI can do.
User avatar
Sharlybg
Donor
Donor
Posts: 3101
Joined: Mon Dec 04, 2017 10:11 pm
Location: Ivory Coast

Re: BIDIRCPU can now use PhotonGI cache to render SDS paths

Post by Sharlybg »

I'd love to see a one-click-caustics-incl.SDS-solution in Lux but I fear compared with Chaos Group here's a lack of resources to pull off something that probably took a whole team of well paid developers.
Yes of course and without the determination and talent of this Devs community no one will be there arguing about wich feature to add or not. ;)
In such kind of cases it is also crucial to not waste energy on set of feature that may end up not very used.
This happen to the Lux project quite often in the past.
Better to work slowly but surely on the right thing than have to change back a corner cut solution 10 month later or not fixing the targeted issue.
Anyway it is already let see ....
Support LuxCoreRender project with salts and bounties

Portfolio : https://www.behance.net/DRAVIA
User avatar
Sharlybg
Donor
Donor
Posts: 3101
Joined: Mon Dec 04, 2017 10:11 pm
Location: Ivory Coast

Re: BIDIRCPU can now use PhotonGI cache to render SDS paths

Post by Sharlybg »

Interesting experiment of bidirvcm running on GPU :

https://youtu.be/ipbtJ64n6Yg

http://iliyan.com/publications/VertexMerging
Support LuxCoreRender project with salts and bounties

Portfolio : https://www.behance.net/DRAVIA
epilectrolytics
Donor
Donor
Posts: 790
Joined: Thu Oct 04, 2018 6:06 am

Re: BIDIRCPU can now use PhotonGI cache to render SDS paths

Post by epilectrolytics »

epilectrolytics wrote: Mon Dec 21, 2020 2:25 pm So what about BiDir + PGI cache, can it do reflected indirect caustics as well as BiDirVM?
Now that v2.6alpha is finally accessible I tested this scene again and, as I feared, the caustic cache is limited to SDS paths with BiDir and just slows down repeating the message "PhotonGI metropolis sampler is unable to find a useful light path".

With this restriction in place I don't see much use of BiDir + caustic cache as it does basically the same as PathOCL + PGI which is much faster.
The goal should be to have a complete algorithm that renders all kinds of paths.
(What about LightCPU + caustic cache?)

I have been comparing this with some other engines:
Screenshot.jpg
To my surprise it is not BiDirVM showing the best result but PathOCL (Sobol) which renders brighter glass bodies.
BiDir, BiDirVM and BiDir+cache (all metropolis) show black areas within the glass while the environment has no black areas, apparently they are all missing certain paths.


(Edit: Obviously I screwed up the light path depth in BiDir. Assumed it was default 10/10 because it is not specified in the cfg but after testing again with 10/10 it looks like the PathOCL glass which is at 12 specular. So the BiDir pics above are not legit concerning path depth but the point regarding DSDS missing acceleration from cache remains. Retesting PathOCL vs BiDir overnight now.
. . .
Here is a BiDir render, 10000 samples with light depth 12 and eye depth 6, now the glass looks ok.
But even after several hours of rendering (12 core) the DSDS paths are still noisy, I hoped caustic cache could have accelerated this...)
bidir10000.jpg
Attachments
DSDS.blend.zip
(106.43 KiB) Downloaded 197 times
epilectrolytics
Donor
Donor
Posts: 790
Joined: Thu Oct 04, 2018 6:06 am

Re: BIDIRCPU can now use PhotonGI cache to render SDS paths

Post by epilectrolytics »

epilectrolytics wrote: Mon Dec 21, 2020 2:25 pm Light tracing does not catch indirect caustics (DSD paths) and the caustic cache thus not DSDS paths.
BiDir can do those, but DSDS are slow; BiDirVM is way faster with these.
There is still no solution to render DSDS paths (reflected indirect caustics) with BiDir + cache.
Apparently the cache is only activated when the first light bounce is specular (= regular caustics).
If the cache could instead be also activated when the first camera bounce is specular it would catch all SDS AND DSDS paths.
Not sure if that should be default or an option.

Stuff like this could be resolved finally (caustics in the mirror):
dsds.jpg
Post Reply