Releases: RenderKit/ospray
Releases · RenderKit/ospray
OSPRay v3.2.0
- 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
targetFramesparameter at the framebuffer - Note a maximum of 64k samples is supported
- Improved
denoiserimage operation:- User-controlled quality levels via parameter
quality - Optionally denoise alpha channel as well, enabled via parameter
denoiseAlpha
- User-controlled quality levels via parameter
- Support half-precision (16 bit float) texture formats
OSP_TEXTURE_[RGBA16F|RGB16F|RA16F|R16F]and two-channel 32 bit float texturesOSP_TEXTURE_RA32F - New parameter
limitIndirectLightSamplesfor thepathtracerwhich 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
zeContextandzeDevicedevice parameters are no longer supportedispcrtContextandispcrtDevicedevice parameters are no longer supported
- Clarify the size of
OSP_BOOLto be 1 byte - Fix artifacts occasionally appearing with
gpudevice - The new minimum versions of dependencies:
- Embree v4.3.3 (better error reporting)
- Open Image Denoise v2.3 (better image quality with
HIGHquality mode, addedFASTquality mode) - rkcommon v1.14.0
Click for more details and example images:
Braun KS 20 Coffee Maker by cekuhnen rendered with targetFrames=0 (white noise) and with targetFrames=1 (blue noise), and denoised respectively:
| white noise | blue noise | |
|---|---|---|
pixelSamples=8 |
![]() |
![]() |
| denoised | ![]() |
![]() |
Contemporary Bathroom rendered with pixelSamples=16 and denoised with OSP_DENOISER_QUALITY_LOW, OSP_DENOISER_QUALITY_MEDIUM, and OSP_DENOISER_QUALITY_HIGH:
![]() |
![]() |
![]() |
![]() |
OSPRay v3.1.0
- 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_DRIVERto 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
- 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 newgpudevice:- Multiple volumes in the scene
- Clipping
- Motion blur
- Subdivision surfaces
- Progress reporting via
ospGetProgressor canceling the frame viaospCancel - Picking via
ospPick - Adaptive accumulation via
OSP_FB_VARIANCEandvarianceThreshold - Framebuffer channels
OSP_FB_ID_*(id buffers) - Experimental support for shared device-only data, works only for
structuredRegularvolume - 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
- 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
- Add implicit indexing for
meshgeometry - Add support for transferring ownership of temporary buffers:
ospNewSharedDataaccepts an optional deleter callback - Optimizations for MPI module, supported by new integrated performance tracing framework
- Optimize
scivisgradient 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
denoiserto 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
- Renamed
OSP_TEXTURE_FILTER_BILINEARtoOSP_TEXTURE_FILTER_LINEARandOSP_VOLUME_FILTER_TRI[LINEAR|CUBIC]toOSP_VOLUME_FILTER_[LINEAR|CUBIC] - Most enums now use storage type
uint32 gridSpacingof 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; usecpu volumetexture andisosurfacegeometry:volumetricModel; useOSPVolume volume- Transfer function
vec2f valueRange; usebox1f value hdriandsun-skylights:intensityQuantityOSP_INTENSITY_QUANTITY_RADIANCEspotlight withintensityDistribution:intensityQuantityother thanOSP_INTENSITY_QUANTITY_SCALE
- Renamed
OSPRay v2.12.0
- Support denoising on the GPU with OIDN 2.0, which is the new minimum
version. Thedenoisernow uses HDR mode - New parameter
maxScatteringEventsfor thepathtracerwhich
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
pathtracerwhenlightSamples > 0but there are no lights in the scene - Fix transparent shadows with too high
minContributionsetting - The new minimum version for ISPC is v1.20.0
- Release binaries on Linux are built on Rocky 8
OSPRay v2.11.0
- Support single ISPC target on Windows
- OSPRay's superbuild can now be provided a CMake toolchain file for
cross-compilation - Add support for double pumped NEON instruction on ARM64
- Reduce the memory overhead of the
mpiOffloaddevice and resolve
memory andMPI_Commhandle leaks - Support for volume rendering (and thus the dependency to Open VKL)
can now be compile-time controlled via CMake variable
OSPRAY_ENABLE_VOLUMES - OSPRay's MPI modules have been split up and renamed, the
mpiOffload
device is now in thempi_offloadmodule, while thempiDistributed
device is now in thempi_distributed_cpumodule - 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
data - Fix
dynamicSceneflag on World and Group to influence BVH quality
again: default is now "high", which should improve rendering
performance, depending on the scene; and "low" whendynamicScene
is enabled (improving BVH build performance) - Fix a crash in
pathtracerwhen there are no lights - Fix a data corruption bug when setting string parameters for objects
in thempiOffloaddevice - 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
- 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_JOBby
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
improvements:- VDB volumes added support for contiguous data layouts, which can
provide improved performance (nodesPackedDense,
nodesPackedTileparameters) - Particle volumes are more memory efficiency and improved
performance
- VDB volumes added support for contiguous data layouts, which can
- 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 valueRangeparameter of thepiecewiseLinear
transfer function, usebox1f valueinstead
OSPRay v2.9.0
- Add support for multi-segment deformation motion blur for
mesh
geometry - OSPRay now requires minimum Open VKL v1.2.0 to bring the following
improvements:- Structured regular volumes support for cell-centered data via
thecellCenteredparameter (vertex-centered remains the
default) - Particle volumes ignore particles with zero radius
- Structured regular volumes support for cell-centered data via
- Add support for dynamic load balancing in MPI Offload device
- Support for photometric lights (e.g., IES or EULUMDAT) also for
sphereandquadlights. When settingintensityDistribution,
other values forintensityQuantitythan
OSP_INTENSITY_QUANTITY_SCALEare deprecated - Changed CMake variables for enabling app categories:
OSPRAY_ENABLE_APPS_BENCHMARKreplacesOSPRAY_APPS_BENCHMARKOSPRAY_ENABLE_APPS_EXAMPLESreplacesOSPRAY_APPS_EXAMPLESOSPRAY_ENABLE_APPS_TUTORIALSreplacesOSPRAY_APPS_TUTORIALSOSPRAY_ENABLE_APPS_TESTINGreplacesOSPRAY_APPS_TESTING
- 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
cpu - Minimum version of rkcommon is 1.9.0, which brings the following
improvements:- Add support for Intel oneAPI DPCPP compiler
- Fix memory leak
OSPRay v2.8.0
- Lights can be now part of
OSPGroupand 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
- 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
rendering - Correctly initialize
renderFrameprogress - 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
- Add support for transformation and camera Motion Blur (with the path
tracer) viashutterparameter of the camera andmotion.transform
array andtimeparameter 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
backgroundvalues for all volume types (default
NaN), 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
- 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 (materiald = 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
xfmparameter of the instance, usetransform
instead - Dependencies Google Benchmark, GoggleTest, and Snappy moved
out-of-source to superbuild ExternalProjects







