TY - GEN
T1 - Efficient ray tracing of subdivision surfaces using tessellation caching
AU - Benthin, Carsten
AU - Woop, Sven
AU - Nieβner, Matthias
AU - Selgard, Kai
AU - Wald, Ingo
N1 - Publisher Copyright:
© 2015 ACM.
PY - 2015/8/7
Y1 - 2015/8/7
N2 - 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.
AB - 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.
KW - Caching
KW - Ray tracing
KW - Subdivision surfaces
UR - http://www.scopus.com/inward/record.url?scp=84959306814&partnerID=8YFLogxK
U2 - 10.1145/2790060.2790061
DO - 10.1145/2790060.2790061
M3 - Conference contribution
AN - SCOPUS:84959306814
T3 - Proceedings - High Performance Graphics 2015
SP - 5
EP - 12
BT - Proceedings - High Performance Graphics 2015
A2 - Spencer, Stephen N.
PB - Association for Computing Machinery, Inc
T2 - 17th High Performance Graphics, HPG 2015
Y2 - 7 August 2015 through 9 August 2015
ER -