OSPRay v2.0.0-alpha
-
New major revision of OSPRay brings API breaking improvements over
v1.x. Seedoc/ospray2_porting_guide.md
for a deeper description of
migrating from v1.x to v2.0 anddoc/api.md
for the latest API
documentationospRenderFrame
now takes all participating objects as
function parameters instead of setting some as renderer paramsospRenderFrame
is now asynchronous, where the task is managed
through a returnedOSPFuture
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 singleospSetParam
API call - C++ wrappers found in
ospray_cpp.h
now 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
logLevel
is >= 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.h
to 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 adenoiser
type 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
ospcommon
library 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
scivis
renderer- 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
slices
geometry. Instead, any geometry with volume
texture can be used for slicing (see tutorial
ospTutorialStructuredVolume
for example) -
Introduction of new
boxes
geometry 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_ISA
andOPENVKL_BUILD_ISA
with the ISA of the target machine. This will be addressed for
the official v2.0 release. - The old variant of
ospNewData
was temporarily retained in
ospray_util.h
for 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