Skip to content

Releases: ospray/ospray

OSPRay v3.1.0

22 Feb 23:49
Choose a tag to compare
  • Principled and Luminous materials support emissive textures
  • Add native support for disc and oriented disc geometry
  • Add support for mirror repeat and clamp to edge texture wrap modes
  • GPU device now also supports motion blur
  • Improve noise in reflections of ThinGlass
  • Improve adaptive accumulation: working with GPU, fix correlations
  • Fix indirectly seen albedo and normal buffer
  • Fix artifacts when using specular texture for Principled
  • Fixes for PixelFilter
    • Parameter was ignored (always using the default Gaussian)
    • Avoid a shift/misalignment within the pixel for first sample
  • Fix empty image on Windows when focusDistance=0
  • Fix missing SDK headers for ISPCDevice*
  • The new minimum versions of dependencies:
    • Embree v4.3.1
    • Open VKL v2.0.1
    • Open Image Denoise v2.2 (better quality with fine details, support AArch64 CPU on Linux)
    • ISPCRT v1.23.0 (uses environment variable ISPCRT_GPU_DRIVER to select GPU to run on when multiple (i)GPUs are present)
    • rkcommon v1.13.0 (fixes crash using GPU and emissive geometry)

OSPRay v3.0.0

18 Oct 15:39
Choose a tag to compare
  • Beta support for Intel Xe GPUs (Intel Arc™ GPUs a Intel Data Center GPU Flex and Max Series), exploiting ray tracing hardware support. Implementation is based on the SYCL cross-platform programming language implemented by Intel oneAPI Data Parallel C++ (DPC++).
    Note that the following features are not implemented yet or are not working correctly on the new gpu device:
    • Multiple volumes in the scene
    • Clipping
    • Motion blur
    • Subdivision surfaces
    • Progress reporting via ospGetProgress or canceling the frame via ospCancel
    • Picking via ospPick
    • Adaptive accumulation via OSP_FB_VARIANCE and varianceThreshold
    • Framebuffer channels OSP_FB_ID_* (id buffers)
    • Experimental support for shared device-only data, works only for structuredRegular volume
    • Further known issues
      • Some delay on start-up or when changing the scene, because kernel code is JIT compiled and specialized. JIT compilation can be cached by setting environment variable SYCL_CACHE_PERSISTENT=1, then consecutive starts or rendering the same scene configuration is without delay
      • For some combination of compiler, GPU driver and scene the rendered images might show artifacts (e.g., vertical lines or small blocks)
      • Multidevice does not support OSPImageOperations for denoising or tone mapping
  • Add implicit indexing for mesh geometry
  • Add support for transferring ownership of temporary buffers: ospNewSharedData accepts an optional deleter callback
  • Optimizations for MPI module, supported by new integrated performance tracing framework
  • Optimize scivis gradient shading
  • Main thread does not set FTZ/DAZ anymore for denormals handling
  • Compute intersection epsilon for Mesh to avoid rendering artifacts due to self-intersection
  • Fix energy conservation of Pricipled material under certain parameter combinations
  • Fix denoiser to not wipe the alpha channel
  • Fix crash in HDRI light
  • Fix link order for Debug build on Windows
  • The new minimum versions of dependencies:
    • Embree v4.3.0
    • Open VKL v2.0.0
    • Open Image Denoise v2.1.0
    • ISPC v1.21.1
    • rkcommon v1.12.0
  • Breaking API changes
    • Most enums now use storage type uint32
    • gridSpacing of spherical regular volume defaults to full sphere
    • Remove deprecated parameters and API calls
      • error callback signatures without user pointer
      • first argument of ospNewMaterial
      • module name ispc; use cpu
      • volume texture and isosurface geometry: volumetricModel; use OSPVolume volume
      • Transfer function vec2f valueRange; use box1f value
      • hdri and sun-sky lights: intensityQuantity OSP_INTENSITY_QUANTITY_RADIANCE
      • spot light with intensityDistribution: intensityQuantity other than OSP_INTENSITY_QUANTITY_SCALE

OSPRay v2.12.0

19 Jun 12:33
Choose a tag to compare
  • Support denoising on the GPU with OIDN 2.0, which is the new minimum
    version. The denoiser now uses HDR mode
  • New parameter maxScatteringEvents for the pathtracer which
    limits the number of non-specular (i.e., diffuse and glossy) bounces
  • Optimized dynamic load balancing for MPI devices
  • Fix crash when using small image resolution and many MPI ranks
  • Fix crash in pathtracer when lightSamples > 0 but there are no lights in the scene
  • Fix transparent shadows with too high minContribution setting
  • The new minimum version for ISPC is v1.20.0
  • Release binaries on Linux are built on Rocky 8

OSPRay v2.11.0

08 Mar 17:30
Choose a tag to compare
  • Support single ISPC target on Windows
  • OSPRay's superbuild can now be provided a CMake toolchain file for
  • Add support for double pumped NEON instruction on ARM64
  • Reduce the memory overhead of the mpiOffload device and resolve
    memory and MPI_Comm handle leaks
  • Support for volume rendering (and thus the dependency to Open VKL)
    can now be compile-time controlled via CMake variable
  • OSPRay's MPI modules have been split up and renamed, the mpiOffload
    device is now in the mpi_offload module, while the mpiDistributed
    device is now in the mpi_distributed_cpu module
  • Add native support for spheres via Embree, which requires the
    positions and radius of the spheres to be interleaved in memory; if
    this is not the case, OSPRay will internally create a copy of the
  • Fix dynamicScene flag on World and Group to influence BVH quality
    again: default is now "high", which should improve rendering
    performance, depending on the scene; and "low" when dynamicScene
    is enabled (improving BVH build performance)
  • Fix a crash in pathtracer when there are no lights
  • Fix a data corruption bug when setting string parameters for objects
    in the mpiOffload device
  • Various documentation fixes
  • OSPRay now has a new dependency, which is ISPC Run Time (ISPCRT) in
    minimum 1.19.0 version
  • Adapt to Embree v4.0.0 API changes, which is thus the new minimum
    version; additionally, the new minimum version for Open VKL is
    v1.3.2 and for ISPC v1.19.0
  • Removed support of MSVC14.0 (Visual Studio 2015) and the second
    generation Intel Xeon Phi processor (codename Knights Landing)

OSPRay v2.10.0

21 Jun 17:23
Choose a tag to compare
  • Add support for primitive, object, and instance ID buffers as
    framebuffer channels
  • Support face-varying attributes for Mesh and Subdivision geometry
  • Replace CMake variable OSPRAY_PIXELS_PER_JOB by
    OSPRAY_RENDER_TASK_SIZE; variance tracking for adaptive
    accumulation is now per task instead of per tile, allowing for more
    granular adaptation
  • OSPRay now requires minimum Open VKL v1.3.0 to bring the following
    • VDB volumes added support for contiguous data layouts, which can
      provide improved performance (nodesPackedDense,
      nodesPackedTile parameters)
    • Particle volumes are more memory efficiency and improved
  • OSPRay now requires minimum ISPC v1.18.0 for Open VKL and to include
    a fix for parallel dispatch of uniform function pointers
  • MPI Offload: resolve object life time tracking issue that would
    result in framebuffer and data info being release too early, leading
    to a crash
  • Fix crash with OpenMPI due to argument handling
  • Fix clipping when rays are parallel to clipping planes
  • Fix missing SDK headers from CPU and MPI module
  • Deprecated the vec2f valueRange parameter of the piecewiseLinear
    transfer function, use box1f value instead

OSPRay v2.9.0

15 Feb 22:46
Choose a tag to compare
  • Add support for multi-segment deformation motion blur for mesh
  • OSPRay now requires minimum Open VKL v1.2.0 to bring the following
    • Structured regular volumes support for cell-centered data via
      the cellCentered parameter (vertex-centered remains the
    • Particle volumes ignore particles with zero radius
  • Add support for dynamic load balancing in MPI Offload device
  • Support for photometric lights (e.g., IES or EULUMDAT) also for
    sphere and quad lights. When setting intensityDistribution,
    other values for intensityQuantity than
  • Changed CMake variables for enabling app categories:
  • Improve sampling of quad lights in the pathtracer (solid angle
    instead of area)
  • Instances can now have the group object rebound via a parameter
  • Fix leaking framebuffers in the MPI Offload device
  • Resolve possible race condition in assigning IDs to distributed
    objects in the MPI device
  • Move ISPC module to modules/ folder and renamed the module to
  • Minimum version of rkcommon is 1.9.0, which brings the following
    • Add support for Intel oneAPI DPCPP compiler
    • Fix memory leak

OSPRay v2.8.0

04 Nov 13:42
Choose a tag to compare
  • Lights can be now part of OSPGroup and thus instanced like
    geometries and volumes and thus lights also support motion blur
    (with the path tracer)
  • Add cylinder light (with solid area sampling)
  • Add support for rolling shutter of cameras
  • Add support for quaternion motion blur for instance and camera to
    allow for smoothly interpolated rotations
  • Fix illumination from emissive quad meshes

OSPRay v2.7.1

30 Sep 14:48
Choose a tag to compare
  • 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
  • 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

OSPRay v2.7.0

16 Aug 21:17
Choose a tag to compare
  • Add support for transformation and camera Motion Blur (with the path
    tracer) via shutter parameter of the camera and motion.transform
    array and time parameter 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:
    • Configurable background values for all volume types (default
      NaN), defining region outside the volume domain
    • Better default sampling rate for scaled VDB volumes, improved
    • Structured regular volumes now support tricubic filtering and
      more accurate gradient computations as well as more robust
  • 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 ospNewMaterial, i.e.,
    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 xfm parameter of the instance, use transform
  • Dependencies Google Benchmark, GoggleTest, and Snappy moved
    out-of-source to superbuild ExternalProjects

OSPRay v2.6.0

20 May 09:32
Choose a tag to compare
  • Added new intensityQuantity type OSP_INTENSITY_QUANTITY_SCALE
    for the hdri and sunSky light source. For the future this is the
    only supported quantity for these lights, the value
    OSP_INTENSITY_QUANTITY_SCALE is used for sunSky the default
    value of intensity is 0.025 to match the old behaviour
  • The MPI module is included in the releases packages. An
    MPICH-ABI compatible build is provided
    for Linux that can be run with the Intel oneAPI HPC Toolki, MPICH,
    and other MPICH-ABI compatible MPI distributions. The Windows
    release is built against MPI provided in the Intel oneAPI HPC
  • OSPRay now requires minimum Open VKL v0.13.0 to bring the
    following improvements:
    • Support half precision float (fp16) voxel data in strutured
      volumes (regular and spherical) and VDB volume
    • Supporting tricubic filtering via VKL_FILTER_TRICUBIC filter
      for VDB volume
    • Fixed artifacts for isosurfaces of unstructured volumes
    • Performance improvements for isosurfaces when multiple
      isovalues are selected
    • Better, adaptive sampling of AMR volumes
  • The mpiOffload and mpiDistributed devices now support picking.
    Picking in the distributed device will return the globally closest
    object on the rank that owns that object. Other ranks will report
    no hit
  • Messages issued from ISPC code use the same reporting path as the C++
    code, thus now the whole OSPRay console output can be consistently
    filtered with log levels
  • Open VKL and Embree internal errors are now correctly mapped to
    their corresponding OSPRay errors
  • Fix behavior of committing the framebuffer in distributed rendering
    to match that of local rendering