Theory and formulationĪs decribed in, this is an a posteriori formulation, that is, we have information from the previous frame and we will use it to improve the next frame. I’ll first talk about the theoretical model as described in section 3 of and then a simple implementation of idea using a temporal implementation described in section 4 of. So the goal is distribute the errors of Monte Carlo integration as blue noise in screen space. If you instead only care about the implementation of the sorting pass then click here. Background and Original Paperįirst, let’s talk about the theory. This blog post is a result of over a week of work by me in collaboration with Alan Wolfe who helped me a lot to understand some of the more theoretical aspects of the paper. However, what if I told you there was a way to significantly improve the perceptual quality of low spp images without making any changes whatsoever in to your raytracer? And what if I also told you that the entire implementation, at least for the first pass, can fit into a compute shader with less than 100 lines of code? Sounds great right!? Well it is! This method was first described in by Eric Heitz and Laurent Belcout in 2019, and in this blog post I’ll hopefully describe a way that you can integrate in your raytracer without much trouble. In such scenarios, the scene is usually rendered with one sample per pixel(spp) and usually a spatio-temporal denoiser is used to filter out the noise. This, however, isn’t really possible for real-time applications like games which usually have a target of 16ms per frame. In order to mitigate this, the usual convention is to increase the number of samples per pixel in order to make the image converge to ground truth. One of the key results is that the results are extremely noisy, and are usually distributed as white noise in screen space. Many of us have written a monte carlo raytracer. Distributing Monte Carlo errors as Blue Noise in Screen Space, Part 1 - Theory and Sorting | Shubham Sachdeva Blog Shubham Sachdeva Blog Distributing Monte Carlo errors as Blue Noise in Screen Space, Part 1 - Theory and Sorting March 18, 2021