-
New major revision of OSPRay brings API breaking improvements over
v1.x. Seedoc/ospray2_porting_guide.mdfor a deeper description of
migrating from v1.x to v2.0 anddoc/api.mdfor the latest API
documentationospRenderFramenow takes all participating objects as
function parameters instead of setting some as renderer paramsospRenderFrameis now asynchronous, where the task is managed
through a returnedOSPFuturehandle- 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 singleospSetParamAPI call - C++ wrappers found in
ospray_cpp.hnow automatically track
handle lifetimes, therefore applications using them do not need
to useospRelease(or the newospRetain) with them: see
usage example inapps/tutorials/ospTutorial.cpp - Unused parameters are reported as status messages when
logLevelis >= 1 (most easily set by enabling OSPRay debug on
initialization)
-
New utility library which adds functions to help with new API
migration and reduction of boilerplate code- Use
ospray_util.hto access these additional functions - All utility functions are implemented in terms of the core API
found inospray.h, therefore they are compatible with any
device backend
- Use
-
Introduction of new Intel® Open Volume Kernel Library (Open VKL)
for greatly enhanced volume sampling and rendering features and
performance -
Added direct support for Intel® Open Image Denoise as an optional
module, which adds adenoisertype toospNewImageOperation -
New CMake superbuild available to build both OSPRay's dependencies
and OSPRay itself- Found in
scripts/superbuild - See documentation for more details and example usage
- Found in
-
The
ospcommonlibrary now lives as a stand alone repository and
is required to build OSPRay -
New support for volumes in the
pathtracer- Several parameters are available for performance/quality
trade-offs for both photo-realistic and scientific visualization
use cases
- Several parameters are available for performance/quality
-
Simplification of the
scivisrenderer- Fixed AO lighting and simple ray marched volume rendering for
ease of use and performance
- Fixed AO lighting and simple ray marched volume rendering for
-
New API call for querying the bounds of objects (
OSPWorld,
OSPInstance, andOSPGroup) -
Lights now exist as a parameter to the world instead of the renderer
-
Removal of
slicesgeometry. Instead, any geometry with volume
texture can be used for slicing (see tutorial
ospTutorialStructuredVolumefor example) -
Introduction of new
boxesgeometry type -
Expansion of information returned by
ospPick -
Addition of API to query version information at runtime
-
Known issues:
- Open VKL must be built with a compatible set of ISAs with OSPRay
due to a known issue with VKL iterator types. This is easiest
to address by usingOSPRAY_BUILD_ISAandOPENVKL_BUILD_ISA
with the ISA of the target machine. This will be addressed for
the official v2.0 release. - The old variant of
ospNewDatawas temporarily retained in
ospray_util.hfor C++ applications and will be removed for the
official v2.0 release - ISPC v1.11.0 and Embree v3.6.0 are both incompatible with OSPRay
and should be avoided (OSPRay should catch this during CMake
configure) - This is a source-only release, binaries will be made available
for the official v2.0.0 release
- Open VKL must be built with a compatible set of ISAs with OSPRay