The Open, Scalable, and Portable Ray Tracing Engine
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 firstname.lastname@example.org.
To receive release announcements simply “Watch” the OSPRay repository on GitHub.
Changes in v2.7.1:
- Use Open VKL v1.0.1 to fix sporadic slowdowns when rendering structured regular and VDB volumes with the SciVis renderer
- Fix CMake variables and logic
- Fix crash when transferfunction.opacity = 0
- Fix bug in MPI data-parallel rendering that caused rendering to hang
- Workaround dynamic linking issue on Windows in MPI distributed rendering
- Correctly initialize renderFrame progress
- Improved performance of data-parallel rendering for scenes with a large number of regions
- Expanded camera model support of the data-parallel renderer, data-parallel rendering can now use all the camera models supported by the scivis renderer
- Clarify documentation and error messages
Changes in v2.7.0:
- Add support for transformation and camera Motion Blur (with the path tracer) via
shutterparameter of the camera and
timeparameter of the instance and camera
- OSPRay can now be built for ARM64 CPUs with NEON (e.g., Apple M1) using the superbuild. Thus, new minimum versions are for ISPC 1.16.0, for Embree 3.13.1 and for rkcommon 1.7.0
- OSPRay now requires minimum Open VKL v1.0.0 to bring the following improvements:
backgroundvalues for all volume types (default
NaN), defining region outside the volume domain
- Better default sampling rate for scaled VDB volumes, improved robustness
- Structured regular volumes now support tricubic filtering and more accurate gradient computations as well as more robust isosurfaces
- The multidevice module contains a new OSPRay device implementation that delegates work to any number of subdevices. This is an experimental feature in this release but we invite feedback
- SciVis Renderer now ignores normal/albedo/depth hits on surfaces that are fully transmissive (material
d = 0)
- Changed the behavior of background rendering in SciVis renderer to more closely reflect that of the path tracer: Background hits are rendered in background color in the albedo buffer and black in the normal buffer
- The SciVis renderer does not compute depth of field (DoF) anymore, as this effect does not align with the SciVis renderer definition and exposed artifacts
- Fixed crash on exit when using the MPI device
- Fixed rendering of depth buffer in the example application
- The first argument to material constructor
renderer_type, is now deprecated and will be removed in a future release. AO and SciVis renderers still assume “obj” like behavior for all material types
- Deprecated the
xfmparameter of the instance, use
- Dependencies Google Benchmark, GoggleTest, and Snappy moved out-of-source to superbuild ExternalProjects
For the complete history of changes have a look at the CHANGELOG.