2
Embree Ray Tracing Kernels: Overview and New Features Attila T. ´ Afra * Ingo Wald Carsten Benthin Sven Woop § Intel Corporation Figure 1: Images rendered with Embree. Mazda model by Evermotion, Imperial Crown of Austria model by Martin Lubich (http://www. loramel.net), Toad King model by Craig Barr. Abstract Embree is an open source ray tracing library consisting of high- performance kernels optimized for modern CPUs with increasingly wide SIMD units. Since its original release, it has become the state- of-the-art for professional CPU-based rendering applications. In the first half of this talk, we will give a brief overview of the Embree framework and how to use it. In the second half, we will present recent improvements and features introduced since the initial pub- lication of the system. These additions include new geometry types commonly used in production renderers (quads, subdivision sur- faces, and hair), improved motion blur support, and ray streams that can be traversed more efficiently than single rays and ray packets. Keywords: ray tracing, SIMD, CPU Concepts: Computing methodologies Ray tracing; 1 Introduction Embree [Wald et al. 2014] is an open source ray tracing framework designed to achieve high performance in professional rendering en- vironments. It features a set of state-of-the-art spatial acceleration structures and ray traversal kernels optimized for the latest x86 pro- cessor architectures, leveraging the SSE, AVX, AVX2, AVX-512, and IMCI instruction sets. The Embree API enables these kernels to be used effectively in existing and new renderers with minimal programming effort. Embree has received increasing attention since its original publi- cation and has become the method of choice for a wide range of * [email protected] [email protected] [email protected] § [email protected] Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third- party components of this work must be honored. For all other uses, contact the owner/author(s). c 2016 Copyright held by the owner/author(s). SIGGRAPH ’16, July 24-28, 2016, Anaheim, CA, ISBN: 978-1-4503-4282-7/16/07 DOI: http://dx.doi.org/10.1145/2897839.2927450 ray tracing based applications, including production renderers and visualization systems. Also, major improvements and new features have been introduced, such as faster ray traversal and acceleration structure building, quad geometry, subdivision surfaces, hair, linear motion blur of user defined geometries, and ray streams. 2 New Features Quads. Until recently, Embree supported only triangle meshes, but most 3D modeling packages produce quad meshes which first had to be converted to triangles. Embree now supports quads as well, and using them results in half the memory usage in the best case, faster BVH building, and higher ray intersection throughput. Subdivision surfaces. We have implemented Catmull-Clark subdivision surfaces for triangle and quad meshes, including sup- port for edge creases, vertex creases, holes, non-manifold geome- try, and displacement mapping. We employ a fixed-size lazy-build tessellation cache [Benthin et al. 2015], which allows real-time ren- dering performance for complex scenes and low memory usage. Hair. We have added support for hair geometries consisting of cu- bic B´ ezier curves [Woop et al. 2014] and, more recently, line seg- ments as well, with varying radius per control point. For hair we build BVHs that use both axis-aligned and oriented bounding boxes to exploit similarity in the orientation of neighboring hairs, increas- ing ray culling efficiency. Motion blur of user geometries. The user defined geometry fea- ture enables renderer developers to implement custom geometric primitives and intersection algorithms that are not available in Em- bree by default (e.g., points and disks). Rendering these user ge- ometries with linear motion blur has been recently implemented, which is a common requirement of production renderers. Ray streams. In addition to single rays and SIMD-sized ray packets, it is now possible to intersect arbitrarily large streams of rays as well. Ray streams enable better coherence extraction, which results in higher rendering performance. We provide novel stream traversal kernels that group rays with similar directions together and process them in a round-robin fashion to better hide memory access latency, which is the main bottleneck of ray traversal on CPUs.

Embree Ray Tracing Kernels: Overview and New Features · 2020-05-11 · ray tracing based applications, including production renderers and visualization systems. Also, major improvements

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Embree Ray Tracing Kernels: Overview and New Features · 2020-05-11 · ray tracing based applications, including production renderers and visualization systems. Also, major improvements

Embree Ray Tracing Kernels: Overview and New Features

Attila T. Afra∗ Ingo Wald† Carsten Benthin‡ Sven Woop§

Intel Corporation

Figure 1: Images rendered with Embree. Mazda model by Evermotion, Imperial Crown of Austria model by Martin Lubich (http://www.loramel.net), Toad King model by Craig Barr.

Abstract

Embree is an open source ray tracing library consisting of high-performance kernels optimized for modern CPUs with increasinglywide SIMD units. Since its original release, it has become the state-of-the-art for professional CPU-based rendering applications. Inthe first half of this talk, we will give a brief overview of the Embreeframework and how to use it. In the second half, we will presentrecent improvements and features introduced since the initial pub-lication of the system. These additions include new geometry typescommonly used in production renderers (quads, subdivision sur-faces, and hair), improved motion blur support, and ray streams thatcan be traversed more efficiently than single rays and ray packets.

Keywords: ray tracing, SIMD, CPU

Concepts: •Computing methodologies→ Ray tracing;

1 Introduction

Embree [Wald et al. 2014] is an open source ray tracing frameworkdesigned to achieve high performance in professional rendering en-vironments. It features a set of state-of-the-art spatial accelerationstructures and ray traversal kernels optimized for the latest x86 pro-cessor architectures, leveraging the SSE, AVX, AVX2, AVX-512,and IMCI instruction sets. The Embree API enables these kernelsto be used effectively in existing and new renderers with minimalprogramming effort.

Embree has received increasing attention since its original publi-cation and has become the method of choice for a wide range of

[email protected][email protected][email protected]§[email protected]

Permission to make digital or hard copies of part or all of this work forpersonal or classroom use is granted without fee provided that copies arenot made or distributed for profit or commercial advantage and that copiesbear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contactthe owner/author(s). c© 2016 Copyright held by the owner/author(s).SIGGRAPH ’16, July 24-28, 2016, Anaheim, CA,ISBN: 978-1-4503-4282-7/16/07DOI: http://dx.doi.org/10.1145/2897839.2927450

ray tracing based applications, including production renderers andvisualization systems. Also, major improvements and new featureshave been introduced, such as faster ray traversal and accelerationstructure building, quad geometry, subdivision surfaces, hair, linearmotion blur of user defined geometries, and ray streams.

2 New Features

Quads. Until recently, Embree supported only triangle meshes,but most 3D modeling packages produce quad meshes which firsthad to be converted to triangles. Embree now supports quads aswell, and using them results in half the memory usage in the bestcase, faster BVH building, and higher ray intersection throughput.

Subdivision surfaces. We have implemented Catmull-Clarksubdivision surfaces for triangle and quad meshes, including sup-port for edge creases, vertex creases, holes, non-manifold geome-try, and displacement mapping. We employ a fixed-size lazy-buildtessellation cache [Benthin et al. 2015], which allows real-time ren-dering performance for complex scenes and low memory usage.

Hair. We have added support for hair geometries consisting of cu-bic Bezier curves [Woop et al. 2014] and, more recently, line seg-ments as well, with varying radius per control point. For hair webuild BVHs that use both axis-aligned and oriented bounding boxesto exploit similarity in the orientation of neighboring hairs, increas-ing ray culling efficiency.

Motion blur of user geometries. The user defined geometry fea-ture enables renderer developers to implement custom geometricprimitives and intersection algorithms that are not available in Em-bree by default (e.g., points and disks). Rendering these user ge-ometries with linear motion blur has been recently implemented,which is a common requirement of production renderers.

Ray streams. In addition to single rays and SIMD-sized raypackets, it is now possible to intersect arbitrarily large streams ofrays as well. Ray streams enable better coherence extraction, whichresults in higher rendering performance. We provide novel streamtraversal kernels that group rays with similar directions together andprocess them in a round-robin fashion to better hide memory accesslatency, which is the main bottleneck of ray traversal on CPUs.

Page 2: Embree Ray Tracing Kernels: Overview and New Features · 2020-05-11 · ray tracing based applications, including production renderers and visualization systems. Also, major improvements

References

BENTHIN, C., WOOP, S., NIESSNER, M., SELGRAD, K., ANDWALD, I. 2015. Efficient ray tracing of subdivision surfacesusing tessellation caching. In Proceedings of the 7th High-Performance Graphics Conference, ACM.

WALD, I., WOOP, S., BENTHIN, C., JOHNSON, G. S., ANDERNST, M. 2014. Embree: A kernel framework for efficientCPU ray tracing. ACM Trans. Graph. 33, 4 (July), 143:1–143:8.

WOOP, S., BENTHIN, C., WALD, I., JOHNSON, G. S., ANDTABELLION, E. 2014. Exploiting local orientation similarityfor efficient ray traversal of hair and fur. In High-PerformanceGraphics 2014, Lyon, France, 2014. Proceedings, 41–49.