This work was mostly triggered by Out-of-Core rendering but it delivers some benefit for normal rendering too.
New Random/Sobol sampler parameters
Random/Sobol samplers have been reworked to expose new parameters:
Code: Select all
# Must be power of 2
sampler.sobol.bucketsize = 16
# Must be power of 2
sampler.sobol.tilesize = 16
sampler.sobol.supersampling = 1
sampler.sobol.overlapping = 1
Random/Sobol sampler: "Progressive" mode (default)
Configuration:
Code: Select all
sampler.sobol.bucketsize = 16
sampler.sobol.tilesize = 16
sampler.sobol.supersampling = 1
sampler.sobol.overlapping = 1
It renders 1 sample per pixel and it cover all the image very fast.
Random/Sobol sampler: "Cache-friendly" mode (default)
Configuration:
Code: Select all
sampler.sobol.bucketsize = 1
sampler.sobol.tilesize = 16
sampler.sobol.supersampling = 1
sampler.sobol.overlapping = 32
Random/Sobol sampler: "Out-of-Core" mode
Configuration:
Code: Select all
sampler.sobol.bucketsize = 1
sampler.sobol.tilesize = 16
sampler.sobol.supersampling = <a number between 4 and 64, better if power of 2>
sampler.sobol.overlapping = 32
I have sincerely some problem to test OoC rendering at the moment. First of all, I lack a test scene to put out of memory the 8GB of my GPU. So this topic may need some further investigation to check the results.
Conclusion
As I wrote, the UI (i.e. BlendLuxCore) should only expose 3 new options for Random/Sobol:
- Progressive
- Cache-friendly
- Out-of-Core (we may expose the "sampler.sobol.supersampling" parameter here too)
so very little complexity is exposed to the end user. And, for instance, the mode could also be forced if OoC rendering is enabled.