Skip to content

@johguenther johguenther released this Feb 8, 2021

  • Add native support for cones or cylinders with curves geometry of
    type OSP_DISJOINT, requiring minimum version 3.12.0 of Embree
  • Replaced OSPRay's internal implementation of round linear curves by
    Embree's native implementation. Internal surfaces at joints are now
    correctly removed, leading to higher quality renderings with
    transparency, at the cost of intersection performance
  • SciVis renderer improvements:
    • Colored transparency, colored shadows
    • Light sources are visible including HDRI Light environment map
  • The MPI module is now distributed as part of OSPRay in the modules
    directory
    • The socket-based communication layer has been removed
  • Add intensityQuantity parameter to light sources to control the
    interpretation and convertion of the intensity into a radiative
    quantity
  • OSPRay now requires minimum Open VKL v0.12.0 to bring the following
    improvements:
    • Better default sampling rate for scaled volumes, improving
      performance
    • Higher robustness for axis-aligned rays
  • Removed limit on the number of volumes (both overlapped and separate)
    that a ray can intersect while rendering. Now it is limited by
    available memory only.
  • Move to OIDN v1.3.0 to bring the following improvements:
    • Improved denoising quality (sharpness of fine details, fewer
      noisy artifacts)
    • Slightly improved performance and lower memory consumption
  • Both geometric and volumetric models can now have their child
    geometry/volume objects rebound using an object parameter
  • Fix light leaking artifacts at poles of HDRI (and Sun-Sky) light
  • Add sRGB conversion to ospExamples such that the color of the
    widget for backgroundColor actually matches
  • Dropping support for MSVC14, new minimum compiler on Windows is
    MSVC15 (Visual Studio 2017)
Assets 7

@johguenther johguenther released this Oct 2, 2020

  • 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
Assets 7

@johguenther johguenther released this Sep 14, 2020

  • Re-add SciVis renderer features (the previous version is still
    available as ao renderer)
    • Lights are regarded, and thus the OBJ material terms ks and
      ns 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
  • 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 including ext/glm.h: see
      ospTutorialGLM as an example
  • Changed parameters to volume texture: it now directly accepts the
    volume and the transferFunction
  • 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
Assets 7

@johguenther johguenther released this Jul 14, 2020

  • 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 the
    lightSamples parameter
  • Support ring light by extending spot with innerRadius
  • Fixed nonphysical behavior of the spot and sphere light sources
    • for area lights (when radius > 0) surfaces close 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
      will require some application updates to account for these
      changes
  • Fix bug where ospGetCurrentDevice would crash if used before
    ospInit
  • Allow NULL handles to be passed to ospDeviceRetain and
    ospDeviceRelease
  • ISPC generated headers containing the exported functions for
    OSPRay's ISPC types and functions are now distributed with the SDK
  • Add CarPaint flakeColor parameter, defaults to current Aluminium
  • Fixed Debug build (which were producing different images)
  • The path tracer now also regards the renderer materialist when
    creating geometry lights
Assets 7

@johguenther johguenther released this May 25, 2020

  • 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
Assets 7

@johguenther johguenther released this Apr 9, 2020

  • 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 fixed 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
  • Fix computation of strides for OSPData
  • Fix transparency in scivis renderer
  • Add missing C++ wrapper for ospGetVariance
  • Proper demonstration of ospGetVariance in ospTutorialAsync
  • Fix 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
  • Fix issue with OSPRay ignoring tasking system thread count settings
  • Fix issue where OSPRay always loaded the ISPC module, even if not
    required
  • OSPRay now requires minimum Open VKL v0.9.0
Assets 7

@jeffamstutz jeffamstutz released this Feb 7, 2020

  • Fix bug where Embree user-defined geometries were not indexed correctly
    in the scene, which now requires Embree v3.8.0+
  • Fix crash when the path tracer encounters geometric models that do not
    have a material
  • Fix crash when some path tracer materials generated NULL bsdfs
  • Fix bug where ospGetBounds returned incorrect values
  • Fix missing symbol in denoiser module
  • Fix 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
  • Fix various inconsistent handling of frame buffer alpha between renderers
  • ospGetCurrentDevice now increments the ref count of the returned
    OSPDevice 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 (disabled by default)
  • The superbuild now will emit a CMake error when using any 32-bit CMake
    generator, as 32-bit builds are not supported
Assets 7

@jeffamstutz jeffamstutz released this Jan 19, 2020

  • 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 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 in ospray.h, therefore they are compatible with any
      device backend
  • 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 a denoiser type to ospNewImageOperation
  • OSPRay now requires minimum Embree v3.7.0
  • 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
  • The ospcommon library now lives as a stand alone repository and
    is required to build OSPRay
  • The MPI module is now a separate repository, which also contains all
    MPI distributed rendering documentation
  • Log levels are now controled with enums and named strings (where applicable)
    • A new flag was also introduced which turns all OSP_LOG_WARNING messages
      into errors, which are submitted to the error callback instead of the
      message callback
    • Any unused parameters an object ignores now emit a warning message
  • 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
  • Simplification of the SciVis renderer
    • Fixed AO lighting and simple ray marched volume rendering for
      ease of use and performance
  • Overlapping volumes are now supported in both the pathtracer and scivis
    renderers
  • New API call for querying the bounds of objects (OSPWorld,
    OSPInstance, and OSPGroup)
  • 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
  • Introduction of new boxes geometry type
  • Expansion of information returned by ospPick
  • Addition of API to query version information at runtime
  • Curves now supports both, per vertex varying radii as in vec4f[] vertex.position_radius and constant radius for the geometry with
    float radius. It uses OSP_ROUND type and OSP_LINEAR basis by
    default to create the connected segments of constant radius. For per
    vertex varying radii curves it uses Embree curves.
  • Add new Embree curve type OSP_CATMULL_ROM for curves
  • Minimum required Embree version is now 3.7.0
  • Removal of cylinders and streamlines geometry, use curves
    instead
  • Triangle mesh and Quad mesh are superseded by the mesh geometry
  • Applications need to use the various error reporting methods to
    check wether the creation (via ospNew...) of objects failed; a
    returned NULL is not a special handle anymore to signify an error
  • Changed module init methods to facilitate version checking:
    extern "C" OSPError ospray_module_init_<name>(int16_t versionMajor, int16_t versionMinor, int16_t versionPatch)
  • The map_backplate texture is supported in all renderers and does
    not hide lights in infinity (like the HDRI light) anymore;
    explicitely make lights invisible if this is needed
  • Changed the computation of variance for adaptive accumulation to be
    independent of TILE_SIZE, thus varianceThreshold needs to be
    adapted if using a different TILE_SIZE than default 64
  • OSPGeometricModel now has the option to index a renderer-global material
    list that lives on the renderer, allowing scenes to avoid renderer-specific
    materials
  • Object type names and parameters all now follow the camel-case convention
  • New ospExamples app which consolidates previous interactive apps into one
  • New ospBenchmark app which implements a runnable benchmark suite
  • Known issues:
    • 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)
Assets 6

@jeffamstutz jeffamstutz released this Oct 1, 2019

  • 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 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 in ospray.h, therefore they are compatible with any
      device backend
  • 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 a denoiser type to ospNewImageOperation

  • 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
  • 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
  • Simplification of the scivis renderer

    • Fixed AO lighting and simple ray marched volume rendering for
      ease of use and performance
  • New API call for querying the bounds of objects (OSPWorld,
    OSPInstance, and OSPGroup)

  • 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 using OSPRAY_BUILD_ISA and OPENVKL_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
Assets 2

@jeffamstutz jeffamstutz released this Apr 19, 2019

  • 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
Assets 8