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 .
Current Release: v4.3.3
- Added RTCError RTC_ERROR_LEVEL_ZERO_RAYTRACING_SUPPORT_MISSING which can indicate a GPU driver that is too old or not installed properly.
- Added the API function rtcGetDeviceLastErrorMessage to query additional information about the last RTCError returned by rtcGetDeviceError. This can be used in case device creation failed and a rtcErrorFunction could not be set up for this purpose.
- Added the API function rtcGetErrorString which returns a string representation of a given RTCError error code. This is purely meant for convenient error information reporting on the user application side.
- Performance improvements on GPU for the one level instancing case (RTC_MAX_INSTANCE_LEVEL_COUNT 1).
- Reduced the number of unneccessary GPU-CPU USM back-migrations which can increase build performance for scene with many instances on GPU.
- Started adding public CI tests for streamlining integration of external pull requests.
- Work-around for problem with unsigned Windows binaries.
Why Embree?
Hardware accelerated GPU ray tracing
Embree supports hardware accelerated ray tracing on Intel GPUs through the SYCL programming language for excellent GPU rendering performance.
Highest 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.
Feature rich
Embree provides all features required for professional rendering, including various primitive types (including advanced hair primitives), motion blur, multi-level instancing, etc.
Cross Platform
Embree supports Windows, Linux, and macOS, as well as support for x86 CPUs, ARM CPUs, and Intel GPUs
Open Source
Embree is released as open source under the Apache 2.0 License .
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
Embree Features
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.
Motion Blur
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 Scenes
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
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.