PhotonGI cache

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

Re: PhotonGI cache

Post by Dade »

epilectrolytics wrote: Sun Feb 10, 2019 3:41 pm
Dade wrote: Sun Feb 10, 2019 3:00 pm There is also another feature I want to try: by accumulating photons over visibility points I can establish a convergence condition making the cache size definition automatic.
Sounds great!
Does that mean you can automate both photon count and cache size (progressively shooting photons until cache is completed)?
Yup.
Support LuxCoreRender project with salts and bounties
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: PhotonGI cache

Post by Dade »

I made the behavior of PhotonGI more consistent about fireflies generated by glossy-nearly-specular materials. The fireflies "border" is gone and they are more uniformly spread around the scene now. It is a progress because they can now be handled as usual with variance clamping. This is the previous test with the new code and variance clamping:

fix.jpg
Support LuxCoreRender project with salts and bounties
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: PhotonGI cache

Post by Dade »

lacilaci wrote: Sun Feb 10, 2019 5:08 pm
Dade wrote: Sun Feb 10, 2019 12:43 pm
At the moment, caustic cache is used only for pure specular surfaces. I'm thinking to use the caustic cache also for glossy "nearly-specular" surfaces. Something I can do thanks to the new concept of "glossiness". This should solve the problem and also add a lot of quality to the rendering (it is the kind of fireflies path tracers just cut with variance clamping, etc.)
In other words, caustic cache will also handle reflective caustics... right?
Yes, however caustic cache is directly seen so it is a LOT more sensitive to problems than indirect one. With the last fix (see my previous post), it may be not necessary (or a good idea).
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: PhotonGI cache

Post by Sharlybg »

2.2 alpha 0 predicted to be the most tested ! As i told you , you win the race before the start :D . The door of hell are now wet.
Support LuxCoreRender project with salts and bounties

Portfolio : https://www.behance.net/DRAVIA
User avatar
lacilaci
Donor
Donor
Posts: 1969
Joined: Fri May 04, 2018 5:16 am

Re: PhotonGI cache

Post by lacilaci »

Ok, trying out latest fixes etc..

There is now a bit more noise (I guess that's the redistributed noise/fireflies) It's not a big deal as denoiser and clamping can handle them.

However, if scene contains lot of "shiny" surfaces it kinda kills caching a lot.

Here is what cache looks like when I have glossy floor and ceiling boards present (from my office project)
indirect_boards.jpg
and here's without floor and ceiling boards.
indirect_noboards.jpg
This scene has almost zero benefit from caching, not sure if anything can be done about this (glossy surfaces)
render_boards.jpg
User avatar
Sharlybg
Donor
Donor
Posts: 3101
Joined: Mon Dec 04, 2017 10:11 pm
Location: Ivory Coast

Re: PhotonGI cache

Post by Sharlybg »

What is that ? cache isn't working on glossy shader ?

strange. How Dade manage to get boost on the Bench scene ?

Image
Support LuxCoreRender project with salts and bounties

Portfolio : https://www.behance.net/DRAVIA
User avatar
lacilaci
Donor
Donor
Posts: 1969
Joined: Fri May 04, 2018 5:16 am

Re: PhotonGI cache

Post by lacilaci »

Sharlybg wrote: Mon Feb 11, 2019 9:02 am What is that ? cache isn't working on glossy shader ?

strange. How Dade manage to get boost on the Bench scene ?

Image
Maybe my materials are too glossy and it switches to brute force or I don't know.
Dade I can send you the scene in either .blend or exported from blender for luxcore. If you want to take a look
marcatore
Donor
Donor
Posts: 463
Joined: Wed Jan 10, 2018 8:04 am

Re: PhotonGI cache

Post by marcatore »

in one of my test scene, caching is slowing the rendering, both "samples/sec" and "sample rate" are lower with caching.

what should I do as settings to have benefit from caching?

The scene is this (this rendering is just for reference, actually I've disabled all the particles systems used for the floor)
Image

Dade, if you want to test it you should already have it.
User avatar
lacilaci
Donor
Donor
Posts: 1969
Joined: Fri May 04, 2018 5:16 am

Re: PhotonGI cache

Post by lacilaci »

lacilaci wrote: Mon Feb 11, 2019 8:50 am Ok, trying out latest fixes etc..

There is now a bit more noise (I guess that's the redistributed noise/fireflies) It's not a big deal as denoiser and clamping can handle them.

However, if scene contains lot of "shiny" surfaces it kinda kills caching a lot.

Here is what cache looks like when I have glossy floor and ceiling boards present (from my office project)
indirect_boards.jpg

and here's without floor and ceiling boards.
indirect_noboards.jpg

This scene has almost zero benefit from caching, not sure if anything can be done about this (glossy surfaces)
render_boards.jpg
I think I found the issue, it seems glossy coating material will not use cache!
And I used it in almost every wood material :D
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: PhotonGI cache

Post by Dade »

lacilaci wrote: Mon Feb 11, 2019 8:50 am This scene has almost zero benefit from caching, not sure if anything can be done about this (glossy surfaces)
You can adjust the "path.photongi.indirect.glossinessusagethreshold" parameter to decide what glossy is considered "nearly-specular" and has cache disabled. I assume the parameter is not yet exposed in Blender so you can adjust the floor and ceiling UV roughness over the default threshold (0.2) if you want to do a test.

You can also export the scene in text format and add the following line to render.cfg file:

Code: Select all

# Replace 0.1 with whatever value is smaller than your floor/ceiling glossy UV roughness
path.photongi.indirect.glossinessusagethreshold = 0.1
Support LuxCoreRender project with salts and bounties
Post Reply