Page 1 of 1

Another interesting thing, for Dade, dithering for Sobol

Posted: Thu Jan 30, 2020 6:06 pm
by juangea
I'm back with another interesting topic that can lead to the need of less samples per render.

This is Dithering for the Sobol sampler, it could be something kind of "easy" to implement (please keep in mind that I use the "easy" term very carefully because I'm not sure if it's actually "easy") but it can benefit A LOT the render results and it could help A LOT also with denoising quality.

I will present here an example, in this case and for the shake of making the effect more visible I will be also using Scramble Distance in Cycles, but the effects of dithering are good without scrambel too.

Here I present two pictures, the first one is the standard Sobol pattern of cycles at 500 samples:
NO_Dithering_500Samples.jpg
The second one is the exact same scene with the exact same amount of samples, just that it renders 3 seconds faster and delivers a far better quality under the same amount of samples:
With_Dithering_500Samples.jpg
Now the better sobol pattern ends up giving less visible noise (or subjective noise) and a far better picture to look at.

Also the denoiser behaves way better, here is the example (There is a bit JPG compression):
Denoise_Comparison.jpg
Here are both denoised pictures:

NO Dither version:
NO_Dithering_Denoised.jpg
DIther version:
With_Dithering_Denoised.jpg
Regarding the technical side of things here is a paper from Solid Angle about this, I think this is the one used in Cycles:

https://www.arnoldrenderer.com/research ... stract.pdf

And also here is the patch from Lukas Stockner with the implementation in Cycles, it may be useful since I read in the wiki the sobol implementation is coming from the Cycles Sobol implementation :)

(OK, I'll post the patch later, it seems blender.org is under DoS attack for some reason :S )

I hope you see the benefits, and what it's more important, I hope it's easy to implement and we can get big improvement with low effort :)

Re: Another interesting thing, for Dade, dithering for Sobol

Posted: Fri Feb 07, 2020 2:56 pm
by juangea
And LordOdin found this paper that is pretty recent that look MUCH more interesting even!

https://hal.archives-ouvertes.fr/hal-02 ... slides.pdf

This could accelerate rendering quite a lot!

Re: Another interesting thing, for Dade, dithering for Sobol

Posted: Fri Feb 07, 2020 3:22 pm
by Dade
It is something I have definitely to look into but I will after I have fished to work on the new OpenCL Textures (already done) and Material (in progress) evaluation code to totally remove the need to re-compile GPU kernels: https://github.com/LuxCoreRender/LuxCor ... erial_eval

Re: Another interesting thing, for Dade, dithering for Sobol

Posted: Fri Feb 07, 2020 3:43 pm
by kintuX
... and to keep things organized, "CGI tech news" is where we post such beneficial stuff collected in one place ;)

Re: Another interesting thing, for Dade, dithering for Sobol

Posted: Fri Feb 07, 2020 4:34 pm
by juangea
Noted! Next things will end up in that thread :)

Thanks.