Orthogonal array sampling for Monte Carlo rendering

1Dartmouth College 2Pixar Animation Studios

In Computer Graphics Forum (Proceedings of EGSR), 2019

We create high-dimensional samples which simultaneously stratify all bivariate projections, here shown for a set of 25 4D samples, along with their six stratified 2D projections and expected power spectra. We can achieve 2D jittered stratifications (a), optionally with stratified 1D (multi-jittered) projections (b). We can further improve stratification using correlated multi-jittered (c) offsets for primary dimension pairs (xy and uv) while maintaining multi-jittered properties for cross dimension pairs (xu, xv, yu, yv). In contrast to random padding, which degrades to white noise or Latin hypercube sampling in cross dimensional projections, we maintain high-quality stratification and spectral properties in all 2D projections.


We generalize N-rooks, jittered, and (correlated) multi-jittered sampling to higher dimensions by importing and improving upon a class of techniques called orthogonal arrays from the statistics literature. Renderers typically combine or “pad” a collection of lower-dimensional (e.g. 2D and 1D) stratified patterns to form higher-dimensional samples for integration. This maintains stratification in the original dimension pairs, but looses it for all other dimension pairs. For truly multi-dimensional integrands like those in rendering, this increases variance and deteriorates its rate of convergence to that of pure random sampling. Care must therefore be taken to assign the primary dimension pairs to the dimensions with most integrand variation, but this complicates implementations. We tackle this problem by developing a collection of practical, in-place multi-dimensional sample generation routines that stratify points on all t-dimensional and 1-dimensional projections simultaneously. For instance, when t=2, any 2D projection of our samples is a (correlated) multi-jittered point set. This property not only reduces variance, but also simplifies implementations since sample dimensions can now be assigned to integrand dimensions arbitrarily while maintaining the same level of stratification. Our techniques reduce variance compared to traditional 2D padding approaches like PBRT's (0,2) and Stratified samplers, and provide quality nearly equal to state-of-the-art QMC samplers like Sobol and Halton while avoiding their structured artifacts as commonly seen when using a single sample set to cover an entire image. While in this work we focus on constructing finite sampling point sets, we also discuss potential avenues for extending our work to progressive sequences (more suitable for incremental rendering) in the future.



Presentation slides video

Interactive result comparisons

Below you can view interactive comparisons of the full OpenEXR rendered results from the paper. You can also find low-dynamic range versions below each thumbnail if you prefer.

Blue spheres
Blue spheres
(LDR version)
(LDR version)
Cornell box
Cornell box
(LDR version)


We are grateful to the anonymous reviews for helpful suggestions for improving the paper. Wojciech and Afnan thank past and present members of the Dartmouth Visual Computing Lab, particularly Gurprit Singh, for early discussions about sample generation. Andrew, Charlie, and Per would like to thank everyone on Pixar’s RenderMan team. This work was partially supported by NSF grants IIS-181279 and CNS-1205521, as well as funding from the Neukom Scholars Program and the Dartmouth UGAR office.


Wojciech Jarosz, Afnan Enayet, Andrew Kensler, Charlie Kilpatrick, Per Christensen. Orthogonal array sampling for Monte Carlo rendering. Computer Graphics Forum (Proceedings of EGSR), 38(4):135–147, July 2019.
    author    = {Jarosz, Wojciech and Enayet, Afnan and Kensler, Andrew and Kilpatrick, Charlie and Christensen, Per},
    title     = {Orthogonal array sampling for {{Monte}} {{Carlo}} rendering},
    journal   = {Computer Graphics Forum (Proceedings of EGSR)},
    year      = {2019},
    volume    = {38},
    number    = {4},
    month     = jul,
    pages     = {135--147},
    doi       = {10/gf6rx5},
    publisher = {The Eurographics Association}
© The Author(s). This is the author's version of the work. It is posted here by permission of The Eurographics Association for your personal use. Not for redistribution. The definitive version is available at diglib.eg.org.