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 ISPC (Intel SPMD Program Compiler), and fully exploits modern instruction sets like Intel SSE4, AVX, AVX2, and AVX-512 to achieve high rendering performance, thus a CPU with support for at least SSE4.1 is required to run OSPRay.
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.4.0:
- The pathtracer optionally allows for alpha blending even if the background is seen through refractive objects like glass, by enabling
backgroundRefraction
- OSPRay now requires minimum Open VKL v0.11.0 to bring the following improvements:
- Improved rendering performance of VDB volumes
- Added support for configurable iterator depth via the
maxIteratorDepth
parameters for unstructured and particle volumes, improved performance - Added support for filter modes for structured volumes (regular and spherical)
- Expose parameter
horizonExtension
of Sun-sky light, which extends the sky dome by stretching the horizon over the lower hemisphere - Optimize handling of geometry lights by the pathtracer
- The optional
denoiser
image operation now respects frame cancellation, requiring Intel® Open Image Denoise with minimum version 1.2.3 - Fixed normals of (transformed) isosurfaces
- Robust calculation of normals of
boxes
geometry - Clipping geometry is now working correctly with
map_maxDepth
renderer parameter - Using materials in a renderer with a mismatched
renderer_type
no longer causes crashes while rendering
Changes in v2.3.0:
- Re-add SciVis renderer features (the previous version is still available as
ao
renderer)- Lights are regarded, and thus the OBJ material terms
ks
andns
have effect again - Hard shadows are enabled via the
shadows
parameter - The control of ambient occlusion changed:
- The
aoIntensity
parameter is replaced by the combined intensity of ambient lights in theWorld
- The effect range is controlled via
aoDistance
- The
- Lights are regarded, and thus the OBJ material terms
- Added support for data arrays with a stride between voxels in volumes
- Application thread waiting for finished image via
ospWait
participates in rendering, increasing CPU utilization; via rkcommon v1.5.0 - Added
ospray_cpp
compatibility headers for C++ wrappers to understand rkcommon and glm short vector types- For rkcommon, include
ospray/ospray_cpp/ext/rkcommon.h
- For glm, include
ospray/ospray_cpp/ext/glm.h
- Note in debug builds some compilers will not optimize out type trait definitions. This will require users to manually instantiate the glm definitions in one translation unit within the application using
#define OSPRAY_GLM_DEFINITIONS
before includingext/glm.h
: seeospTutorialGLM
as an example
- For rkcommon, include
- Changed parameters to
volume
texture: it now directly accepts thevolume
and thetransferFunction
- Fixed many memory leaks
- Handle
NaN
during volume sampling, which led to bounding boxes being visible for some volumes and settings - Depth is now “accumulated” as well, using the minimum
- Fix shading for multiple modes of the
debug
renderer - New minimum ISPC version is 1.14.1
For the complete history of changes have a look at the CHANGELOG.