The Open, Scalable, and Portable Ray Tracing Engine
OSPRay Overview
Intel® OSPRay is an open source, scalable, and portable ray tracing engine for high-performance, high-fidelity visualization on Intel Architecture CPUs, Intel Xe GPUs, and Aarch64/ARM64 CPUs. OSPRay is part of the Intel Rendering Toolkit (Render Kit) and is released under the permissive Apache 2.0 license.
The purpose of OSPRay is to provide an open, powerful, and easy-to-use rendering library that allows one to easily build applications that use ray tracing based rendering for interactive applications (including both surface- and volume-based visualizations). OSPRay runs on anything from laptops, to workstations, to compute nodes in HPC systems.
OSPRay internally builds on top of Intel Embree, Intel Open VKL, and Intel Open Image Denoise. The CPU implementation is based on Intel ISPC (Implicit SPMD Program Compiler) and fully exploits modern instruction sets like Intel SSE4, AVX, AVX2, AVX-512 and NEON to achieve high rendering performance. Hence, a CPU with support for at least SSE4.1 is required to run OSPRay on x86_64 architectures, or a CPU with support for NEON is required to run OSPRay on ARM64 architectures.
OSPRay’s GPU implementation (beta status) is based on the SYCL cross-platform programming language implemented by Intel oneAPI Data Parallel C++ (DPC++) and currently supports Intel Arc™ GPUs on Linux and Windows, and Intel Data Center GPU Flex and Max Series on Linux, exploiting ray tracing hardware support.
OSPRay Support and Contact
OSPRay is under active development, and though we do our best to guarantee stable release versions a certain number of bugs, as-yet-missing features, inconsistencies, or any other issues are still possible. For any such requests or findings please use OSPRay’s GitHub Issue Tracker (or, if you should happen to have a fix for it, you can also send us a pull request).
To receive release announcements simply “Watch” the OSPRay repository on GitHub.
Changes in v3.2.0:
- Sampling improvements:
- Better performance (lower rendering time and faster convergence)
- More pleasing blue noise enabled when the total number of frames to
be accumulated is known in advance and set as the
targetFrames
parameter at the framebuffer - Note a maximum of 64k samples is supported
- Improved
denoiser
image operation:- User-controlled quality levels via parameter
quality
- Optionally denoise alpha channel as well, enabled via parameter
denoiseAlpha
- User-controlled quality levels via parameter
- Support half-precision (16 bit float) texture formats
OSP_TEXTURE_[RGBA16F|RGB16F|RA16F|R16F]
and two-channel 32 bit float texturesOSP_TEXTURE_RA32F
- New parameter
limitIndirectLightSamples
for thepathtracer
which limits the number of light samples after the first non-specular (i.e., diffuse and glossy) bounce to at most one - Implement MIP Mapping for better texture filtering. If the
additional memory per texture needed cannot be spared, applications can
disable the generation of MIP maps with device parameter
disableMipMapGeneration
- The backplate (background texture) is now always sampled at the pixel center and thus not blurred by the pixel filter anymore
- Avoid color bleeding across eye-subimages when stereo rendering
- Superbuild uses binary packages of Open VKL
- Removed Intel ISPCRT dependency (ISPC compiler is still needed):
- oneAPI Level Zero Loader is no longer necessary
zeContext
andzeDevice
device parameters are no longer supportedispcrtContext
andispcrtDevice
device parameters are no longer supported
- Clarify the size of
OSP_BOOL
to be 1 byte - Fix artifacts occasionally appearing with
gpu
device - The new minimum versions of dependencies:
- Embree v4.3.3 (better error reporting)
- Open Image Denoise v2.3 (better image quality with
HIGH
quality mode, addedFAST
quality mode) - rkcommon v1.14.0
Changes in v3.1.0:
- Principled and Luminous materials support emissive textures
- Add native support for disc and oriented disc geometry
- Add support for mirror repeat and clamp to edge texture wrap modes
- GPU device now also supports motion blur
- Improve noise in reflections of ThinGlass
- Improve adaptive accumulation: working with GPU, fix correlations
- Fix indirectly seen albedo and normal buffer
- Fix artifacts when using specular texture for Principled
- Fixes for PixelFilter
- Parameter was ignored (always using the default Gaussian)
- Avoid a shift/misalignment within the pixel for first sample
- Fix empty image on Windows when
focusDistance=0
- Fix missing SDK headers for
ISPCDevice*
- The new minimum versions of dependencies:
- Embree v4.3.1
- Open VKL v2.0.1
- Open Image Denoise v2.2 (better quality with fine details, support AArch64 CPU on Linux)
- ISPCRT v1.23.0 (uses environment variable
ISPCRT_GPU_DRIVER
to select GPU to run on when multiple (i)GPUs are present) - rkcommon v1.13.0 (fixes crash using GPU and emissive geometry)
For the complete history of changes have a look at the CHANGELOG.