  Stochastic sampling techniques are ubiquitous in real-time rendering, where
performance constraints force the use of low sample counts, leading to noisy
intermediate results. To remove this noise, the post-processing step of
temporal and spatial denoising is an integral part of the real-time graphics
pipeline. The main insight presented in this paper is that we can optimize the
samples used in stochastic sampling such that the post-processing error is
minimized. The core of our method is an analytical loss function which measures
post-filtering error for a class of integrands - multidimensional Heaviside
functions. These integrands are an approximation of the discontinuous functions
commonly found in rendering. Our analysis applies to arbitrary spatial and
spatiotemporal filters, scalar and vector sample values, and uniform and
non-uniform probability distributions. We show that the spectrum of Monte Carlo
noise resulting from our sampling method is adapted to the shape of the filter,
resulting in less noisy final images. We demonstrate improvements over
state-of-the-art sampling methods in three representative rendering tasks:
ambient occlusion, volumetric ray-marching, and color image dithering. Common
use noise textures, and noise generation code is available at
https://github.com/electronicarts/fastnoise.
