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. OSPRay is part of the Intel oneAPI Rendering Toolkit 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 is completely CPU-based, and runs on anything from laptops, to workstations, to compute nodes in HPC systems.
OSPRay internally builds on top of Intel Embree and 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, thus a CPU with support for at least SSE4.1 is required to run OSPRay on x86_64 architectures. A CPU with support for NEON is required to run OSPRay on ARM64 architectures.
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. Should you find any such issues please report them immediately via OSPRay’s GitHub Issue Tracker (or, if you should happen to have a fix for it,you can also send us a pull request); for missing features please contact us via email at ospray@googlegroups.com.
To receive release announcements simply “Watch” the OSPRay repository on GitHub.
Changes in v2.12.0:
- Support denoising on the GPU with OIDN 2.0, which is the new minimum
version. The
denoiser
now uses HDR mode - New parameter
maxScatteringEvents
for thepathtracer
which limits the number of non-specular (i.e., diffuse and glossy) bounces - Optimized dynamic load balancing for MPI devices
- Fix crash when using small image resolution and many MPI ranks
- Fix crash in
pathtracer
whenlightSamples > 0
but lights in the scene - Fix transparent shadows with too high
minContribution
setting - The new minimum version for ISPC is v1.20.0
- Release binaries on Linux are built on Rocky 8
Changes in v2.11.0:
- Support single ISPC target on Windows
- OSPRay’s superbuild can now be provided a CMake toolchain file for cross-compilation
- Add support for double pumped NEON instruction on ARM64
- Reduce the memory overhead of the
mpiOffload
device and resolve memory andMPI_Comm
handle leaks - Support for volume rendering (and thus the dependency to Open VKL)
can now be compile-time controlled via CMake variable
OSPRAY_ENABLE_VOLUMES
- OSPRay’s MPI modules have been split up and renamed, the
mpiOffload
device is now in thempi_offload
module, while thempiDistributed
device is now in thempi_distributed_cpu
module - Add native support for spheres via Embree, which requires the positions and radius of the spheres to be interleaved in memory; if this is not the case, OSPRay will internally create a copy of the data
- Fix
dynamicScene
flag on World and Group to influence BVH quality again: default is now “high”, which should improve rendering performance, depending on the scene; and “low” whendynamicScene
is enabled (improving BVH build performance) - Fix a crash in
pathtracer
when there are no lights - Fix a data corruption bug when setting string parameters for objects
in the
mpiOffload
device - Various documentation fixes
- OSPRay now has a new dependency, which is ISPC Run Time (ISPCRT) in minimum 1.19.0 version
- Adapt to Embree v4.0.0 API changes, which is thus the new minimum version; additionally, the new minimum version for Open VKL is v1.3.2 and for ISPC v1.19.0
- Removed support of MSVC14.0 (Visual Studio 2015) and the second generation Intel Xeon Phi processor (codename Knights Landing)
For the complete history of changes have a look at the CHANGELOG.