I need to compare the irradiation between scenes with different sets of lenses.
Tracing performance will be impacted by differences of the scenes, and external factors like e.g. system load. So I cannot expect that a fixed tracing duration would deliver comparable results. How can a best achieve that?
My approach would be to make only my fixed size and fixed position measurement surface visible to the camera, and run a fixed number of samples. I tried
mick wrote: ↑Thu May 24, 2018 3:31 pm
I need to compare the irradiation between scenes with different sets of lenses.
Tracing performance will be impacted by differences of the scenes, and external factors like e.g. system load. So I cannot expect that a fixed tracing duration would deliver comparable results. How can a best achieve that?
My approach would be to make only my fixed size and fixed position measurement surface visible to the camera, and run a fixed number of samples. I tried
Stats reported 3.81M samples per sec for my 800x600 image. So I'd expect that 10spp should be achieve in a bit more than 1 sec. What's wrong?
Yes, it should be done in a couple of seconds, can you post the fragment of code using session.WaitForDone() ? This fragment of code works: https://github.com/LuxCoreRender/LuxCor ... le.cpp#L55 and allows you to print some information during the rendering (instead of being stuck in WaitForDone()).
P.S. 10 samples/sec is can be a bit low has value for a noise-free image
Support LuxCoreRender project with salts and bounties
Uh, no, you have to remove the while loop: session.WaitForDone() is supposed to be used to wait the end of the rendering once; than the rendering is done. Just use something like:
Of course I don't need the loop. This is just for the time restricted approach. But that's not the issue. It should print the stats after returning from WaitForDone(), and then break anyway if more the 5 secs past.
But it hangs (processing) before reaching the print.
Using the PATH engine and samples halt condition has the problem that it is a "soft" halt condition (it will overshoot more or less and most of the time render a few more samples than requested).
renderengine.type = TILEPATHCPU
# This sampler must be used with this engine, no other samplers work
sampler.type = TILEPATHSAMPLER
# This controls the amount of samples per pixel
tilepath.sampling.aa.size = 3
# Stop once all pixels were sampled, do not start another pass
tile.multipass.enable = 0
HasDone works with both engines. There was a problem with the break condition in my latest code. Still I guess that the is something wrong with WaitForDone().