High Performance Ray Tracing
Intel® Embree is a high-performance ray tracing library developed at Intel which supports x86 CPUs under Linux, macOS, and Windows; ARM CPUs on macOS; as well as Intel® Arc™ GPUs under Linux and Windows. Embree targets graphics application developers to improve the performance of photo-realistic rendering applications and is optimized towards production rendering. Embree is released as open source under the Apache 2.0 License.
Hardware accelerated GPU ray tracing
Embree supports hardware accelerated ray tracing on Intel GPUs through the SYCL programming language for excellent GPU rendering performance.
Embree provides highest performance for your CPU renderer by using state of the art high quality data structures and algorithms, parallelized and optimized for modern instruction sets, such as AVX2. Integrating Embree can double the performance of your CPU renderer.
Easy to use
Embree provides an easy to use API and can get integrated into rendering applications by just replacing the ray tracing operation.
Embree provides all features required for professional rendering, including various primitive types (including advanced hair primitives), motion blur, multi-level instancing, etc.
Embree supports Windows, Linux, and macOS, as well as support for x86 CPUs, ARM CPUs, and Intel GPUs
Embree Team receives Scientific & Technical Achievement Award!
The award recognizes Intel® Embree for its geometric rendering in contributing innovation in significant and lasting ways to the moviemaking process.
Award recipients are Sven Woop, Carsten Benthin, Attila Afra, Manfred Ernst and Ingo Wald.
Sr. Director of Intel® Advanced Rendering & Visualization Jim (James L.) Jeffers
See the Scientific & Technical Achievement Awards 2021 page
Advanced Hair Geometry
Various flavors of hair primitives are supported, including flat, round, and normal oriented curves, all supported with different basis functions, such as linear, Bézier, Hermite, Catmull-Rom, and B-Spline.
The flat curve type is designed to achieve highest rendering performance for distance hair, round curves can be used to render accurate hair closeups, and normal oriented curves are often used to render grass-type geometry.
Choosing a basis function that matches the application allows Embree to share vertex buffers for memory savings.
Embree supports advanced motion blur to render dynamic content. Multi-segment motion blur can be used to render deforming meshes, transformation blur allows to blur entire geometry instances, and quaternion blur allows blurred instance rotations.
An advanced 4D data structure represents spatial and temporal aspects of motion and allows highest levels of performance.
Dynamic scene support allows previews to be rendered interactively. Embree uses morton code algorithms to rapidly rebuild data structures for highly dynamic content.
Multi-level instancing allows rendering of highly complex outdoor scenes with moderate memory usage.
This example show a rendering of the complex Moana Island Scene using instancing accelerated by Embree.
SYCL support makes GPU programming easy
Embree builds on the SYCL cross platform abstraction layer to support hardware acclerated ray tracing on the GPU. Using Embree and SYCL you can write a single renderer in C++, that runs on the both the CPU and GPU with excellent performance. Using C++ as a language simplifies porting existing CPU rendering code and makes programming the GPU easy.