Re: PhotonGI cache
Posted: Mon Jun 17, 2019 3:05 pm
Would it be possible to add this as well?
Show your work, get help, participate in development
https://forums.luxcorerender.org/
Would it be possible to add this as well?
Huuuh do you mean it can be the same for Indirect cache ? so it turn as an online cache ?And this with an update every 16 spp but exactly the same other caustic cache parameters:
The same process would be trivial to do for indirect cache (i.e. it would require to change only one line of code) but it would be practically useless: indirect cache already works well as it is.Sharlybg wrote: Mon Jun 17, 2019 5:12 pmHuuuh do you mean it can be the same for Indirect cache ? so it turn as an online cache ?And this with an update every 16 spp but exactly the same other caustic cache parameters:
Yes, but it would require a lot of work and be of quite little use. The current solution works transparently for all other code, reducing the radius would require some weight computation and explicit support in all code (CPU and OpenCL). And, as usual, it would be a pain to modify all OpenCL code. If the starter radius is about of the size of a pixel, there will be no difference in the final output anyway.
Sounds amazing, Thank you!Dade wrote: Mon Jun 17, 2019 2:56 pm I added the support for periodic update of the PGI caustic cache to PATHCPU ...
Code: Select all
(gdb) bt
#0 0x00007fffdb4b45de in slg::TracePhotonsThread::RenderFunc() () from /home/simon/.config/blender/2.79/scripts/addons/BlendLuxCore/bin/pyluxcore.so
#1 0x00007fffdc0f33b9 in thread_proxy () from /home/simon/.config/blender/2.79/scripts/addons/BlendLuxCore/bin/pyluxcore.so
#2 0x00007ffff79bc184 in start_thread (arg=0x7fff957ff700) at pthread_create.c:312
#3 0x00007ffff628a03d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
Code: Select all
slg::Scene::Intersect(luxrays::IntersectionDevice*, bool, bool, slg::PathVolumeInfo*, float, luxrays::Ray*, luxrays::RayHit*, slg::BSDF*, luxrays::RGBColor*, luxrays::RGBColor const*, slg::SampleResult*, bool) const 0x501
slg::TracePhotonsThread::TracePhotonPath(luxrays::RandomGenerator&, std::vector<float, std::allocator<float> > const&, std::vector<slg::TracePhotonsThread::RadiancePhotonEntry, std::allocator<slg::TracePhotonsThread::RadiancePhotonEntry> >&, std::vector<slg::Photon, std::allocator<slg::Photon> >&) 0x695
slg::TracePhotonsThread::RenderFunc() 0xe03
I still think it would be useful:Dade wrote: Mon Jun 17, 2019 6:05 pm The same process would be trivial to do for indirect cache (i.e. it would require to change only one line of code) but it would be practically useless: indirect cache already works well as it is.
It has a cost: we do hybrid rendering so if we use the CPU for cache update, we have to stop the CPU rendering (i.e. the cost).provisory wrote: Mon Jun 17, 2019 6:57 pm I still think it would be useful:
- The cache could be re-generated periodically on CPU parallel with the GPU rendering (no performance loss)