Recent Releases
3.2.007 Aug 2024 14:05
major feature:
Sampling improvements:
- Better performance (lower rendering time and faster convergence).
- More pleasing blue noise enabled when the total number of frames
to be accumulated is known in advance and set as the.
`targetFrames` parameter at the framebuffer.
- Note a maximum of 64k samples is supported.
Improved `denoiser` image operation:
- User-controlled quality levels via parameter `quality`.
- Optionally denoise alpha channel as well, enabled via
parameter `denoiseAlpha`.
Support half-precision (16 bit float) texture formats.
`OSP_TEXTURE_ RGBA16F RGB16F RA16F R16F ` and two-channel 32 bit
float textures `OSP_TEXTURE_RA32F`.
New parameter `limitIndirectLightSamples` for the `pathtracer` which
limits the number of light samples after the first non-specular.
(i.e., diffuse and glossy) bounce to at most one.
Implement MIP Mapping for better texture filtering. If the
additional memory per texture needed cannot be spared, applications
can disable the generation of MIP maps with device parameter.
`disableMipMapGeneration`.
The backplate (background texture) is now always sampled at the pixel
center and thus not blurred by the pixel filter anymore.
Avoid color bleeding across eye-subimages when stereo rendering.
Superbuild uses binary packages of Open VKL.
Removed Intel ISPCRT dependency (ISPC compiler is still needed):
- oneAPI Level Zero Loader is no longer necessary.
- `zeContext` and `zeDevice`device parameters are no longer supported.
- `ispcrtContext` and `ispcrtDevice`device parameters are no longer
supported.
Clarify the size of `OSP_BOOL` to be 1 byte.
artifacts occasionally appearing with `gpu` device.
The new minimum versions of dependencies:
- Embree v4.3.3 (better error reporting).
- Open Image Denoise v2.3 (better image quality with `HIGH`
quality mode, added `FAST` quality mode).
- rkcommon v1.14.0.
3.1.023 Feb 2024 16:25
major bugfix:
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, correlations.
indirectly seen albedo and normal buffer.
artifacts when using specular texture for Principled.
for PixelFilter.
- Parameter was ignored (always using the default Gaussian).
- Avoid a shift/misalignment within the pixel for first sample.
empty image on Windows when `focusDistance=0`.
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.
3.0.014 Jan 2024 19:55
minor feature:
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 lin
3.0.0_beta_rc230 Sep 2023 12:05
minor feature:
Experimental support for device data
DEVICE DATA.
For device data we now detect the case where the application shares that.
With us and, by default, handle it by copying into an internal shared.
Buffer, just like we do for host data. The copy, as implemented.
Requires a corresponding change in ispcrt that is expected in the next.
Release. In the interim the superbuild applies the needed commit as.
Patch.
The new OSPRAY_ALLOW_DEVICE_MEMORY environment flag turns on an.
Experimental mode where OSPRay instead leaves the buffer alone and.
Attempts to use the device data in place. The mode is experimental.
Because in most cases the app will simply crash as most code in OSPRay.
VKL and Embree do not yet support device data. Applications that know.
Exactly what they are doing ie using it only for VKL structured volumes.
With the upcoming VKL release, or RGB surface colors, can use it to.
Avoid a copy.
TESTING.
The --own-SYCL argument to ospTestSuite causes the test app to.
Emulate in situ use cases where the sycl enabled application owns the.
Context and shares it with ospray.
The new test_sharedusm_data test (only available when compiled with.
SYCL) creates a simple volumetric data set and validates that usm.
Host, shared, or device data sharing work as expected.
Co-authored-by: Johannes Günther lt;johannes.guenther@intel.com gt;.
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