Recent Releases
2.7.101 Oct 2021 13:45
minor feature:
Use Open VKL v1.0.1 to sporadic slowdowns when rendering
structured regular and VDB volumes with the SciVis renderer.
CMake variables and logic.
crash when transferfunction.opacity = 0.
in MPI data-parallel rendering that caused rendering to hang.
Workaround dynamic linking on Windows in MPI distributed
rendering.
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.
2.7.017 Aug 2021 09:25
minor feature:
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 (defaultNaN), defining region outside the volume domain
Better default sampling rate for scaled VDB volumes, improved
Robustness
Structured regular volumes now support tricubic filtering and
More accurate gradient computations as well as more robust
Isosurfaces
.
Configurable background values for all volume types (defaultNaN), defining region outside the volume domain.
Better default sampling rate for scaled VDB volumes, improved
Robustness.
Structured regular volumes now support tricubic filtering and
More accurate gradient computations as well as more robust
Isosurfaces.
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 ly 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.
Crash on exit when using the MPI device.
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
2.6.021 May 2021 08:05
minor feature:
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 valueOSP_INTENSITY_QUANTITY_RADIANCE is deprecated. WhenOSP_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. AnMPICH-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
Toolkit.
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
Artifacts for isosurfaces of unstructured volumes
Performance improvements for isosurfaces when multiple
Isovalues are selected
Better, adaptive sampling of AMR volumes
.
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.
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 t
Object on the rank that owns that object. Other ranks will report
no hit.
Messages d 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.
Behavior of committing the framebuffer in distributed rendering
to match that of local rendering.
2.5.009 Feb 2021 17:25
minor feature:
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
.
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
.
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
.
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
.
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.
light leaking artifacts at poles of HDRI (and Sun-Sky) light.
Add sRGB conversion to ospExamples such that the color of the
widget for ba
2.4.003 Oct 2020 03:17
minor feature:
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 themaxIteratorDepth parameters for unstructured and particle
volumes, improved performance
Added support for filter modes for structured volumes (regular
and spherical)
.
Improved rendering performance of VDB volumes.
Added support for configurable iterator depth via themaxIteratorDepth 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.
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.
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