- Added support for VDB sparse structured volumes (
"vdb"
volume type) - Added
vdb_util
library to simplify instantiation of VDB volumes, and support loading of .vdb files using OpenVDB - Added
VKLObserver
and associated APIs, which may used by volume types to pass information back to the application- A
LeafNodeAccess
observer is provided for VDB volumes to support on-demand loading of leaf nodes
- A
- Structured regular volumes:
- Up to 6x performance improvement for scalar iterator initialization
- Up to 2x performance improvement for scalar iterator iteration
- General improvements to the CMake Superbuild for building Open VKL and all associated dependencies
- Allowing instantiation of ISPC driver for any supported SIMD width (in addition to the default automatically selected width)
- Volume type names are now camelCase (legacy snake_case type names are
deprecated), impacting
structuredRegular
andstructuredSpherical
volumes - Enabling
flushDenormals
driver mode by default - Aligning public
vkl_vvec3f[4,8,16]
andvkl_vrange1f[4,8,16]
types - Added
VKL_LOG_NONE
log level - Fixed bug in
vklExamples
which could lead to improper rendering on macOS Catalina - Fixed bug in unstructured volume interval iterator which could lead to errors with some combinations of lane masks
- Now providing binary releases for Linux, macOS, and Windows
- Added support for structured volumes on spherical grids
(
"structured_spherical"
volume type) - Structured regular volumes:
- Up to 8x performance improvement for scalar (single-wide) sampling
- Fixed hit iterator bug which could lead to isosurfacing artifacts
- Renamed
voxelData
parameter todata
- Unstructured volumes:
- Up to 4x performance improvement for scalar (single-wide) sampling
- Improved interval iterator implementation for more efficient space skipping and tighter value bounds on returned intervals
- Now using Embree for BVH builds for faster build times / volume commits
- Renamed
vertex.value
andcell.value
parameters tovertex.data
andcell.data
, respectively
- AMR volumes:
- renamed
block.cellWidth
parameter tocellWidth
, and clarified API documentation
- renamed
- Added
vklGetValueRange()
API for querying volume value ranges - Added new driver parameters, APIs, and environment variables allowing user control of log levels, log / error output redirection, number of threads, and other options
vklIterateHit[4,8,16]()
andvklIterateInterval[4,8,16]()
calls now only populate hit / interval data for active lanes- Changed
VKLDataType
enum values for better forward compatibility - ISPC-side hit and interval iterator objects must now be declared
varying
- More flexible ISA build configuration through
OPENVKL_MAX_ISA
andOPENVKL_ISA_*
CMake build options - Minimum ospcommon version is now 1.1.0
- Initial public alpha release, with support for structured, unstructured, and AMR volumes.