PhotonGI cache

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

Re: PhotonGI cache

Post by Dade » Sun Feb 10, 2019 5:13 pm

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
Posts: 1913
Joined: Mon Dec 04, 2017 8:36 pm

Re: PhotonGI cache

Post by Dade » Sun Feb 10, 2019 5:24 pm

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
Posts: 1913
Joined: Mon Dec 04, 2017 8:36 pm

Re: PhotonGI cache

Post by Dade » Sun Feb 10, 2019 5:26 pm

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
Posts: 1009
Joined: Mon Dec 04, 2017 10:11 pm
Location: Ivory Coast

Re: PhotonGI cache

Post by Sharlybg » Sun Feb 10, 2019 6:57 pm

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
Posts: 782
Joined: Fri May 04, 2018 5:16 am

Re: PhotonGI cache

Post by lacilaci » 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

User avatar
Sharlybg
Donor
Posts: 1009
Joined: Mon Dec 04, 2017 10:11 pm
Location: Ivory Coast

Re: PhotonGI cache

Post by Sharlybg » 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
Support LuxCoreRender project with salts and bounties

Portfolio : https://www.behance.net/DRAVIA

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

Re: PhotonGI cache

Post by lacilaci » Mon Feb 11, 2019 9:05 am

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
Posts: 150
Joined: Wed Jan 10, 2018 8:04 am

Re: PhotonGI cache

Post by marcatore » Mon Feb 11, 2019 9:07 am

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
Posts: 782
Joined: Fri May 04, 2018 5:16 am

Re: PhotonGI cache

Post by lacilaci » Mon Feb 11, 2019 9:19 am

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
Posts: 1913
Joined: Mon Dec 04, 2017 8:36 pm

Re: PhotonGI cache

Post by Dade » Mon Feb 11, 2019 9:28 am

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