Tweet | HPG'10 Best Paper Awards 2nd place Morgan McGuire, NVIDIA and Williams College
|
Abstract
This paper presents a hybrid algorithm for rendering approximate motion and defocus blur with precise stochastic visibility evaluation. It demonstrates---for the first time, with a full stochastic technique---real-time performance on conventional GPU architectures for complex scenes at 1920x1080 HD resolution. The algorithm operates on dynamic triangle meshes for which per-vertex velocity or corresponding vertices from the previous frame are available. It leverages multisample antialiasing (MSAA) and a tight space-time-aperture convex hull to efficiently evaluate visibility independently of shading. For triangles that cross z=0, it fall backs to a 2D bounding box that we hypothesize but do not prove is conservative. The algorithm further reduces sample variance within primitives by integrating textures according to ray differentials in time and aperture.
Selected Images
The following presentation images were gamma adjusted,cropped, and had resolution adjusted to print and display on screen inthe PDF format. These images do not all appear in the final version of thepaper.

























You can also download the high-resolution images used to produce the PDF images above. Except for those that were already cropped or had insets added, these were unmodified from the output of our program and are suitable for result comparison in experiments.
Data
The publicly available scenes used for generating results are from the following sources:
- Sibenik Cathedral by Marco Dabrovic
- City racetrack from Q3 Rally
- Lamborghini Diablo by psychojoker4u
- Bugatti Veyron by Vectorium
- Pont Neuf Bridge by Realfusio
- Ben and Fairy from the UT AnimRep by Ingo Wald
Source Code
Download our source code: stochastic-shaders-reference.zip (29 kB)
This is a tool to help you build your own stochastic rasterizationsystem to reproduce our published results and explore your own algorithms.
You need to write your own C++ infrastructure for loading scenes, computing shadow maps, and issuing the rendering calls.In addition, the shaders may use some features of the G3D library's GLSLpreprocessor that are not standard GLSL, and were developed for NVIDIAOpenGL drivers. The files refer to some classes that are not defined withinthe provided code. The implementations of those classes are tied to yourrendering infrastructure, not the rasterization algorithm, so you must provideyour own implementations.
Epilogue
The paper asserts that a triangle that is backfacing at the beginning and end of the exposure is always backfacing and may be culled. This is incorrect. If the triangle twists during the exposure, it may become frontfacing temporarily. Backface Culling For Motion Blur and Depth of Field by Munkberg and Akenine-Möller gives an example of this and then derives a conservative backface test for defocused and moving triangles.
BibTex
@inproceedings{McGuire2010Stochastic, author = {Morgan McGuire and Eric Enderton and Peter Shirley and David Luebke}, title = {Real-time Stochastic Rasterization on Conventional {GPU} Architectures}, booktitle = {{ACM} {SIGGRAPH}/Eurographics High Performance Graphics 2010 ({HPG'10})}, note = {Proceedings of High Performance Graphics 2010}, month = {June}, year = {2010}, url = {https://casual-effects.com/research/McGuire2010Stochastic/index.html}, location = {Saarbrucken, Germany}, }