OSPRay 2.3.0

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.

Tags renderer
License Apache
State stable

Recent Releases

2.3.015 Sep 2020 16:45 minor feature: 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 the World The effect range is controlled via aoDistance . 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 the World The effect range is controlled via aoDistance . The aoIntensity parameter is replaced by the combined intensity of ambient lights in the World. The effect range is controlled via aoDistance. 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 debuilds 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 including ext/glm.h: seeospTutorialGLM as an example . For rkcommon, include ospray/ospray_cpp/ext/rkcommon.h. For glm, include ospray/ospray_cpp/ext/glm.h. Note in debuilds 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 including ext/glm.h: seeospTutorialGLM as an example. Changed parameters to volume texture:
2.2.010 Jul 2020 17:05 minor feature: Support for texture transformation in SciVis OBJ material. Add transformations for volume textures; volume texture lookups are Now with local object coordinates (not world coordinates anymore). Changed behavior: if solely a texture is given, then the default Value of the corresponding parameter is not multiplied. Support for better antialiasing using a set of different pixel Filters (e.g, box, Gaussian...). The size of the pixel filter is Defined by the used filter type. Previously OSPRay implicitly used a Box filter with a size of 1, for better results the default filter is now OSP_PIXELFILTER_GAUSS. Support stereo3d mode for panoramic camera. Add new camera stereoMode OSP_STEREO_TOP_BOTTOM (with left eye at top half of the image). Added support for random light sampling to the pathtracer, the Number of sampled light sources per path vertex is defined by thelightSamples parameter. Support ring light by extending spot with innerRadius. Nonphysical behavior of the spot and sphere light sources For area lights (when radius 0) surfaces to the light Will be darker The spot now has an angular falloff, such that a disk light is a proper lambertian area light, which leads to darker regions Perpendicular to its direction (thus barely visible with a Typically small openingAngle) . For area lights (when radius 0) surfaces to the light Will be darker. The spot now has an angular falloff, such that a disk light is a proper lambertian area light, which leads to darker regions Perpendicular to its direction (thus barely visible with a Typically small openingAngle). Support for Open VKL v0.10.0 and its new sampler object API, thus This is now the required minimum version. Added support for particle and VDB volumes. Move from ospcommon to rkcommon v1.4.2. New minimum ISPC version is 1.10.0. Status and error callbacks now support a user pointer. Enabled C++ wrappers (ospray_cpp) to work with non-rkcommon math Types Note that while the C API remains the same, the C++ wrappers Wil
2.1.126 May 2020 20:45 minor feature: CarPaint obeys coat weight parameter. Correct depth buffer values with SciVis renderer. Adaptions to Embree v3.10.0. The Linux binary release finds ospcommon again.
2.1.010 Apr 2020 16:45 minor feature: New clipping geometries feature that allows clipping any scene (geometry and volumes); all OSPRay geometry types can by used as. clipping geometry Inverted clipping is supported via new invertNormals parameter of GeometricModel Currently there is a upper limit (64) of how many clipping geometries can be nested When clipping with curves geometry (any basis except linear) some rendering artifacts may appear . Inverted clipping is supported via new invertNormals parameter of GeometricModel. Currently there is a upper limit (64) of how many clipping geometries can be nested. When clipping with curves geometry (any basis except linear) some rendering artifacts may appear. New plane geometry defined via plane equation and optional bounding box. Sun-sky light based on physical model of HoŇ°ek-Wilkie. Support for photometric lights (e.g. IES or EULUMDAT). Add new ospGetTaskDuration API call to query execution time of asynchronous tasks. Support for 16bit (unsigned short) textures. Add static cpp::Device::current method as a C++ wrapper equivalent to ospGetCurrentDevice. Generalized cpp::Device parameter setting to match other handle types. Passing NULL to ospRelease is not reported as error anymore. computation of strides for OSPData. transparency in scivis renderer. Add missing C++ wrapper for ospGetVariance. Proper demonstration of ospGetVariance in ospTutorialAsync. handling of --osp:device-params to process and set all passed arguments first before committing the device, to ensure it is committed in a valid state. Object factory functions are now registered during module initialization via the appropriate registerType function. with OSPRay ignoring tasking system thread count settings. where OSPRay always loaded the ISPC module, even if not required. OSPRay now requires minimum Open VKL v0.9.0.
2.0.108 Feb 2020 17:25 minor feature: Where Embree user-defined geometries were not indexed correctly in the scene, which now requires Embree v3.8.0+. Crash when the path tracer encounters geometric models that do not Have a material. Crash when some path tracer materials generated NULL bsdfs. Where ospGetBounds returned incorrect values. Missing symbol in denoiser module. Missing symbol exports on Windows for all OSPRay built modules. Add the option to specify a single color for geometric models. The scivis renderer now respects the opacity component of color on Geometric models. Various inconsistent handling of frame buffer alpha between renderers. OspGetCurrentDevice now increments the ref count of the returnedOSPDevice handle, so applications will need to release the handle when Finished by using ospDeviceRelease accordingly. Added denoiser to ospExamples app. Added module_mpi to superbuild. The superbuild now will emit a CMake error when using any 32-bit CMake Generator, as 32-bit builds are not supported.
2.0.020 Jan 2020 21:45 minor feature: New major revision of OSPRay brings API breaking improvements over v1.x. See doc/ospray2_porting_guide.md for a deeper description of Migrating from v1.x to v2.0 and doc/api.md for the latest API Documentation OspRenderFrame now takes all participating objects as Function parameters instead of setting some as renderer params OspRenderFrame is now asynchronous, where the task is managed Through a returned OSPFuture handle The heirarchy of objets in a scene are now more granular to Aid in scene construction flexibility and reduce potential Object duplication Type-specific parameter setting functions have been consolidated Into a single ospSetParam API call C++ wrappers found in ospray_cpp.h now automatically track Handle lifetimes, therefore applications using them do not need to use ospRelease (or the new ospRetain) with them: see Usage example in apps/tutorials/ospTutorial.cpp Unused parameters are reported as status messages whenlogLevel is = 1 (most easily set by enabling OSPRay deon Initialization) . OspRenderFrame now takes all participating objects as Function parameters instead of setting some as renderer params. OspRenderFrame is now asynchronous, where the task is managed Through a returned OSPFuture handle. The heirarchy of objets in a scene are now more granular to Aid in scene construction flexibility and reduce potential Object duplication. Type-specific parameter setting functions have been consolidated Into a single ospSetParam API call. C++ wrappers found in ospray_cpp.h now automatically track Handle lifetimes, therefore applications using them do not need to use ospRelease (or the new ospRetain) with them: see Usage example in apps/tutorials/ospTutorial.cpp. Unused parameters are reported as status messages whenlogLevel is = 1 (most easily set by enabling OSPRay deon Initialization). New utility library which adds functions to help with new API Migration and reduction of boilerplate code Use ospray_util.h to access these additional functions All u
2.0.0-alpha02 Oct 2019 08:25 minor feature: New major revision of OSPRay brings API breaking improvements over v1.x. See doc/ospray2_porting_guide.md for a deeper description of Migrating from v1.x to v2.0 and doc/api.md for the latest API Documentation OspRenderFrame now takes all participating objects as Function parameters instead of setting some as renderer params OspRenderFrame is now asynchronous, where the task is managed Through a returned OSPFuture handle The heirarchy of objets in a scene are now more granular to Aid in scene construction flexibility and reduce potential Object duplication Type-specific parameter setting functions have been consolidated Into a single ospSetParam API call C++ wrappers found in ospray_cpp.h now automatically track Handle lifetimes, therefore applications using them do not need to use ospRelease (or the new ospRetain) with them: see Usage example in apps/tutorials/ospTutorial.cpp Unused parameters are reported as status messages whenlogLevel is = 1 (most easily set by enabling OSPRay deon Initialization) . OspRenderFrame now takes all participating objects as Function parameters instead of setting some as renderer params. OspRenderFrame is now asynchronous, where the task is managed Through a returned OSPFuture handle. The heirarchy of objets in a scene are now more granular to Aid in scene construction flexibility and reduce potential Object duplication. Type-specific parameter setting functions have been consolidated Into a single ospSetParam API call. C++ wrappers found in ospray_cpp.h now automatically track Handle lifetimes, therefore applications using them do not need to use ospRelease (or the new ospRetain) with them: see Usage example in apps/tutorials/ospTutorial.cpp. Unused parameters are reported as status messages whenlogLevel is = 1 (most easily set by enabling OSPRay deon Initialization). New utility library which adds functions to help with new API. Migration and reduction of boilerplate code Use ospray_util.h to access these additional functions Al
1.8.524 Sep 2019 23:24 minor feature: Fix float precision cornercase (NaNs) in sphere light sampling Fix CMake bug that assumed .git was a directory, which is not true when using OSPRay as a git submodule Fix CMake warning Fix DLL_EXPORT issue with ospray_testing helper library on Windows