Efficient Ray Tracing of Subdivision Surfaces using Tessellation Caching

Loading...
Thumbnail Image
Date
2015
Journal Title
Journal ISSN
Volume Title
Publisher
ACM Siggraph
Abstract
A common way to ray trace subdivision surfaces is by constructing and traversing spatial hierarchies on top of tessellated input primitives. Unfortunately, tessellating surfaces requires a substantial amount of memory storage, and involves significant construction and memory I/O costs. In this paper, we propose a lazy-build caching scheme to efficiently handle these problems while also exploiting the capabilities of today's many-core architectures. To this end, we lazily tessellate patches only when necessary, and utilize adaptive subdivision to efficiently evaluate the underlying surface representation. The core idea of our approach is a shared lazy evaluation cache, which triggers and maintains the surface tessellation. We combine our caching scheme with SIMD-optimized subdivision primitive evaluation and fast hierarchy construction over the tessellated surface. This allows us to achieve high ray tracing performance in complex scenes, outperforming the state of the art while requiring only a fraction of the memory. In addition, our method stays within a fixed memory budget regardless of the tessellation level, which is essential for many applications such as movie production rendering. Beyond the results of this paper, we have integrated our method into Embree, an open source ray tracing framework, thus making interactive ray tracing of subdivision surfaces publicly available.
Description

        
@inproceedings{
10.1145:2790060.2790061
, booktitle = {
High-Performance Graphics
}, editor = {
Petrik Clarberg and Elmar Eisemann
}, title = {{
Efficient Ray Tracing of Subdivision Surfaces using Tessellation Caching
}}, author = {
Benthin, Carsten
 and
Woop, Sven
 and
Nießner, Matthias
 and
Selgard, Kai
 and
Wald, Ingo
}, year = {
2015
}, publisher = {
ACM Siggraph
}, ISBN = {
978-1-4503-3707-6
}, DOI = {
10.1145/2790060.2790061
} }
Citation