We present a new method for directly rendering complex closed-form implicit surfaces on modern GPUs, taking advantage of their massive parallelism. Our model representation is unambiguously solid, can be sampled at arbitrary resolution, and supports both constructive solid geometry (CSG) and more unusual modeling operations (e.g. smooth blending of shapes). The rendering strategy scales to large-scale models with thousands of arithmetic operations in their underlying mathematical expressions. Our method only requires C0 continuity, allowing for warping and blending operations which break Lipshitz continuity.
To render a model, its underlying expression is evaluated in a shallow hierarchy of spatial regions, using a high branching factor for efficient parallelization. Interval arithmetic is used to both skip empty regions and construct reduced versions of the expression. The latter is the optimization that makes our algorithm practical: in one benchmark, expression complexity decreases by two orders of magnitude between the original and reduced expressions. Similar algorithms exist in the literature, but tend to be deeply recursive with heterogeneous workloads in each branch, which makes them GPU-unfriendly; our evaluation and expression reduction both run efficiently as massively parallel algorithms, entirely on the GPU.
The resulting system renders complex implicit surfaces in high resolution and at interactive speeds. We examine how performance scales with computing power, presenting performance results on hardware ranging from older laptops to modern data-center GPUs, and showing significant improvements at each stage.
Paper (4.6 MB, preprint) | |
Slides (10 MB) | |
DOI (ACM Digital Library) | |
Source (Github) |
@article {keeter2020,
author = {Keeter, Matthew J.},
title = {Massively Parallel Rendering of Complex Closed-Form Implicit Surfaces},
journal = {{ACM} Transactions on Graphics (Proceedings of SIGGRAPH)},
year = "2020",
volume = "39",
number = "4",
month = "jul",
}
I'm incredibly grateful to everyone who read drafts and gave feedback as I worked on this project: Jonathan Bachrach, Blake Courter, Neil Gershenfeld, Raph Levien, Brian Merchant, Doug Moen, and Amira Abdel Rahman. Special thanks to Martin Galese, who both provided feedback and loaned me time on his VR/ML workstation for benchmarking.
The architectural model in Figure 1 is based on a design by Jennifer Keeter, for whom I am very grateful.
The bear head is based on a design by Hazel Fraticelli and Anthony Taconi; thanks for providing a particularly challenging benchmark! The gear model uses a clever closed-form expression for an involute curve derived by Peter Fedak.
I’d like to thank the anonymous reviewers for their feedback and insights. Finally, thanks to my colleagues at Formlabs for encouraging my independent research, and the folks at nTopology for their support of the libfive kernel.
(Don't be shy – if you're looking at this page, I probably want to hear from you and will almost certainly respond!)
For my behind-the-scenes look at writing a SIGGRAPH paper for fun, check out this writeup.
To keep up with my future work, subscribe using RSS or follow me on Twitter.