Releases: KhronosGroup/ANARI-SDK
Releases · KhronosGroup/ANARI-SDK
v0.11.1
What's Changed
- add back in a link to Threads::Threads by @jeffamstutz in #245
- Also track ANARILight objects for leak detection by @johguenther in #247
- fix const-correctness of ParameterizedObject get methods by @jeffamstutz in #250
- CTS - fix tangent generation by @UX3D-labode in #249
- Add anariDistributedTutorial by @johguenther in #251
- Fixed incorrect rpath settings on macOS (#238)
Full Changelog: v0.11.0...v0.11.1
v0.11.0
Changes since last release
- The ANARI front end library is now built both as a shared and static library using the
anari::anari
andanari::anari_static
CMake targets respectively- The
anariInfo
tool links againstanari::anari_static
for ease-of-use
- The
- New extensions now included in code_gen json:
KHR_INSTANCE_TRANSFORM_ARRAY
KHR_GEOMETRY_ISOSURFACE
- New OpenUSD plugin for Hydra 'hdAnari'
- Currently runs within
usdview
and ought to run in any Hydra based viewport - Implementation is experimental and will continue to mature in further release
- Currently runs within
- The
debug
device can now be enabled and controlled entirely with environment variables- See readme section for details
- CTS improvements:
- Removed usage of
glm
in favor oflinalg
header shipped by the SDK - Added test descriptions to reports
- Added tests based on glTF-Sample-Assets
- Data is downloaded and cached via CMake
FetchContent()
when CTS is enabled
- Data is downloaded and cached via CMake
- Added
KHR_GEOMETRY_ISOSURFACE
test
- Removed usage of
- Helide improvements:
- Updated to Embree v4.3.3
- Implemented support for
KHR_INSTANCE_TRANSFORM_ARRAY
- Tasking system size can be controlled via the
HELIDE_NUM_THREADS
environment variable - Add renderer parameter to tweak eye light blend amount
anari_viewer
improvements:- New top-level namespace to better organize code
- Updated Dear Imgui and nfd versions
- Simplification to the
remote
device build dependency requirements - Other various small bug fixes
Full Changelog
- add prototype hdAnari implementation by @jeffamstutz in #205
- fix returning uninitialized bounds in anari_viewer by @jeffamstutz in #206
- allow specifying helide's Embree thread count via an environment variable by @jeffamstutz in #207
- hdAnari enhancements by @jeffamstutz in #208
- debug layer wrapped device via environment variable by @jeffamstutz in #209
- use FLOAT32 frame color channel to remove banding artifacts by @jeffamstutz in #210
- LibraryImpl + libhelium bug fixes by @jeffamstutz in #212
- Remote device cleanup and fixes by @szellmann in #211
- Fix a misplaced } in generate_headers.py by @LDeakin in #213
- fix C compatibility in frontend/type_utility.h + add compile test by @jeffamstutz in #214
- Cts/remove glm by @UX3D-haertl in #215
- fix incorrect parameter name for image1D wrapMode in helide by @jeffamstutz in #217
- update ImGui + nfd versions by @jeffamstutz in #218
- Cts/descriptions by @UX3D-haertl in #216
- Cts/new tests by @UX3D-haertl in #219
- hdanari: Improve UsdPreviewSurface and per instance primvars support by @tarcila in #220
- Add disabled support for using instance buffer based attributes by @tarcila in #221
- Add environment variables for debug device tracing configuration by @tarcila in #222
- Kill alpha on rgb only inputs by @tarcila in #223
- hdanari: Add support for geompoints by @tarcila in #225
- Moved build stage of generated python bindings from cffi to cmake by @kvankooten in #224
- fix parameter-based debug device init by @jeffamstutz in #228
- Add isosurface geometry to queries by @johguenther in #229
- Queries: remove default 'isovalue', it is required by @johguenther in #230
- support changing framebuffer color channel format in anari_viewer viewport by @jeffamstutz in #232
- fix blending and accumulation edge cases, add eye light ratio parameter by @jeffamstutz in #234
- Release GIL by default to prevent multithreading issues by @UX3D-haertl in #235
- Cts/python management by @UX3D-haertl in #233
- unify anari_viewer code into a top-level namespace by @jeffamstutz in #237
- Test and fix isosurface/volume test by @UX3D-haertl in #236
- Add glTF Scenes to CTS by @UX3D-labode in #239
- build frontend library as both shared and static by @jeffamstutz in #243
- implement transform array extension in helide by @jeffamstutz in #244
New Contributors
- @tarcila made their first contribution in #220
- @UX3D-labode made their first contribution in #239
Full Changelog: v0.10.0...v0.11.0
v0.10.0
Changes since last release
- Build updates to allow installing code-gen scripts and
anari_viewer
without needing to use them in the build - Add new helium smart pointer type (
ChangeObserverPtr
) to automatically manage object observers - Add support in helide for
ANARI_KHR_FRAME_COMPLETION_CALLBACK
- Sync size of
ANARI_BOOL
to be 1 byte instead of 4 to match latest spec revision - Add glTF and KTX support to
anariViewer
- Minor updates to
anari_cpp
headers to be more consistent - Fix various bugs in code gen, python bindings, and examples
PRs
- Helium commit observer generalizations by @jeffamstutz in #192
- ensure correct usage of C++ bool in accordance with ANARI spec by @jeffamstutz in #194
- fix issue in helium where all objects emitted messages as ANARI_OBJECT by @jeffamstutz in #195
- support KHR_FRAME_COMPLETION_CALLBACK in helide by @jeffamstutz in #196
- Added python bindings install option and some windows fixes by @kvankooten in #197
- update code_gen targets, regenerate devices, update baseline json by @jeffamstutz in #198
- initialize ANARI before window is spawned in example viewer by @jeffamstutz in #199
- generalize per-frame app callbacks methods in anari_viewer by @jeffamstutz in #201
- Support glTF + KTX in viewer by @jeffamstutz in #202
- enable installing targets that may not be built locally by @jeffamstutz in #203
- misc v0.10.0 release updates by @jeffamstutz in #204
Full Changelog: v0.9.1...v0.10.0
v0.9.1
What's Changed
- fix blending issues in helide + update readme with additional implementations by @jeffamstutz in #191
Full Changelog: v0.9.0...v0.9.1
v0.9.0
Changes since last release
- Added support for uniform geometry attributes to queries and
helide
- Added empty
libhelium
device (hecore) for use as a starting template - Improved error messages when
libhelium
element type is incorrectly queried - Update Dear ImGui version to v1.94 for
anari_viewer
- Various bug fixes and reduced compiler warnings
PRs
- add uniform geometry attributes to queries and implement in helide by @jeffamstutz in #175
- Helium object leak warnings by @jeffamstutz in #176
- Add empty helium device example by @jeffamstutz in #177
- improved error checking messages when querying bad array element types by @jeffamstutz in #178
- avoid using std::thread for top-level async support in helide by @jeffamstutz in #179
- enable render tests in CI for debug builds by @jeffamstutz in #180
- improve viewport controls for laptop trackpads by @jeffamstutz in #181
- fix incorrect name for spatial field on transferFunction1D volumes by @jeffamstutz in #182
- move more utility functions from helide into helium by @jeffamstutz in #183
- fix warnings caught by clang by @jeffamstutz in #184
- remove duplicate operator==() for ANARIDataType by @jeffamstutz in #187
- remove C++17 usage in linalg.h by @jeffamstutz in #188
- v0.9.0 release maintenance by @jeffamstutz in #189
- rename src dir + fix anari_viewer teardown order for some GL backends by @jeffamstutz in #190
Full Changelog: v0.8.0...v0.9.0
v0.8.0
Changes since last release
- Added new (experimental) add-on for Blender v4.0+
- Added missing JSON definition for
KHR_FRAME_ACCUMULATION
- Lifted host-side
ANARIArray
implementation intohelium
fromhelide
for use in other devices - Added features to aid
helium
devices in implementingKHR_DEVICE_SYNCHRONIZATION
- Added support for additional extensions in
helide
:KHR_FRAME_CHANNEL_PRIMITIVE_ID
KHR_FRAME_CHANNEL_OBJECT_ID
KHR_FRAME_CHANNEL_INSTANCE_ID
KHR_DEVICE_SYNCHRONIZATION
- Fix crash in
libanari
front end library when ANARI library loading fails - Added new README guide for how to enable a device implementation under
libanari
- Various robustness fixes + cleanups for
remote
device - Various CMake cleanups and improvements
- New usage of find_package
COMPONENTS
for requesting/using optional SDKviewer
andcode_gen
components
- New usage of find_package
- Various viewer improvements
What's Changed
- fix missing return value on ANARILibrary load error by @jeffamstutz in #154
- Fix extension query in CTS by @johguenther in #155
- Add a light editor widget for HDRI lights by @szellmann in #156
- add advanced CMake option for allowing anariViewer to be installed by @jeffamstutz in #158
- Parameter queries by @szellmann in #157
- implement prim/obj/inst ID frame channels in helide by @jeffamstutz in #160
- Simpler serialization by @szellmann in #159
- Cleanup and smaller fixes to the remote device by @szellmann in #161
- fix incorrect volume blending in helide by @jeffamstutz in #162
- export targets for other libraries built by the SDK by @jeffamstutz in #165
- move common helide array impl to helium by @jeffamstutz in #163
- CMake updates by @jeffamstutz in #166
- Various small improvements by @jeffamstutz in #168
- add missing ANARI_KHR_FRAME_ACCUMULATION extension definition by @jeffamstutz in #169
- make helium devices more robust to being called by multiple API threads by @jeffamstutz in #170
- use a semaphore to make sure array updates and rendering do not overlap by @jeffamstutz in #171
- Blender 4.x add-on by @jeffamstutz in #173
- additional documentation + remove unused code by @jeffamstutz in #174
Full Changelog: v0.7.2...v0.8.0
v0.7.2
Changes since last release
- Various CMake improvements to prevent invalid build setups
- Fix crash in CTS when querying device information
- Fix incorrect type of
outOffset
parameter intransform
sampler queries - Mention vcpkg deployment in README
- Revise regression test binary help text
- Fix
helide
incorrectly handling background color - Fix
helide
incorrectly handling cameraimageRegion
parameter
What's Changed
- helide fixes by @jeffamstutz in #151
- Update name of binary and add scene option in the help message for render tests by @goodbadwolf in #150
- patch fixes by @jeffamstutz in #153
New Contributors
- @goodbadwolf made their first contribution in #150
Full Changelog: v0.7.1...v0.7.2
v0.7.1
Changes since last release
- Fix issue in
helide
where indexed spheres did not fetch the correct attributes - Fix incorrect property name used for querying the
helide
extension list from the device - Fix issues when installing
anari_viewer
and consuming it in downstream builds
What's Changed
- v0.7.1 patch updates by @jeffamstutz in #148
Full Changelog: v0.7.0...v0.7.1
v0.7.0
Changes since last release
Updates to synchronize with the latest changes in the v1.0 ANARI Specification
- Frame channels have their own individually associated extensions
- Instances are subtyped for motion blur
scivis
volume was renamed totransferFunction1D
- Strides have been removed from shared arrays
- Devices and applications wanting to use sparse arrays should implement them as vendor extensions, but lack of existing usage made their inclusion in v1.0 premature
- New API calls for directly setting array parameters (
anariSetParameterArray[1,2,3]D()
) - Object queries are now done primarily using
ANARIDevice
instead ofANARILibrary
, as it is possible to create devices without going through the standard library loading mechanism
Other SDK updates
- Major additions to
helide
, demonstrating many more ANARI extensions - New C++ class-based method for specifying
ANARILibrary
implementations.- See
helide
orsink
devices as an example of how to adapt to the new way of implementing libraries
- See
- Many CTS updates to improve API test coverage
anari_utilities
has been removed in favor of usinghelium
- Added new tutorials and updated existing ones to add clarity of concepts each one introduces to users
- New version of
anariViewer
to more easily showcase test scenes and other ANARI concepts- The components to create viewers like
anariViewer
are installable as an experimental component, see theanari_viewer
README for more details
- The components to create viewers like
- The
debug
device no longer requires custom debug objects to be created by devices, all debugging is done via the normal device/object queries - New experimental
remote
device implementation- This implements a server/client model of forwarding ANARI calls to a remote machine, see the device's README for details
- External dependencies downloaded by CMake are consolidated under the source tree, making builds without an internet connection possible
- Additional source archives will be created for each release which contain all downloaded dependencies
What's Changed
- Various maintenance commits by @progschj in #85
- helium + helide fixes by @jeffamstutz in #86
- nvcc compile fixes + regen CTS by @jeffamstutz in #87
- fix C tutorial by @jeffamstutz in #88
- Fix channel names in debug tracer and add cylinder scene by @progschj in #89
- fix warnings, fix incorrect static_assert() in AnariAny::getObject() by @jeffamstutz in #90
- Add conversion function to type_utility by @progschj in #91
- Fix AnariAny dereferencing ANARI_VOID_POINTER by @progschj in #93
- Add PBR material by @progschj in #92
- Various maintenance commits by @progschj in #94
- Helide bug fix + helium getParam alternative by @jeffamstutz in #95
- Prevent apple builds from attempting to use GLES/EGL in the viewer by @progschj in #99
- Add new camera and renderer features to json and debug device by @progschj in #97
- Helide: initial volume rendering support by @jeffamstutz in #100
- Fix windows build by @progschj in #101
- Helide updates by @jeffamstutz in #104
- Add experimental dir and experimental volume sample rate feature by @progschj in #103
- Viewer updates by @jeffamstutz in #105
- encapsulate debug object and info query generation into cmake functions by @jeffamstutz in #107
- Fix array mapping pointer name in traces by @progschj in #106
- viewer revamp by @jeffamstutz in #109
- Fix when building without examples by @kvankooten in #110
- support ANARI_STRING_LIST for viewer UI by @jeffamstutz in #111
- Add dummy conversion functions for non numeric types by @progschj in #112
- viewer tweaks by @jeffamstutz in #113
- Add spot lights to viewer ui by @progschj in #114
- Add "use" info to queries and regenerate by @progschj in #115
- Separate out viewer components into standalone library by @jeffamstutz in #116
- CMake fixes by @jeffamstutz in #117
- Implement various samplers to helide by @jeffamstutz in #119
- Fix API coverage + occasional crashes during async frames by @jeffamstutz in #121
- Add device params and readme by @szellmann in #122
- Implement (un)mapArray for remote device by @szellmann in #123
- helide: add device option to permit rendering surfaces with invalid materials by @jeffamstutz in #125
- various breaking SDK updates from the spec by @progschj in #126
- Fix swapped parameters in anariTutorial.c by @progschj in #127
- Additional post api update maintenance by @progschj in #128
- misc. cleanups by @jeffamstutz in #129
- Only use compression if this is supported by server and client by @szellmann in #131
- Adding environment variables for remote device's server.hostname and server.port by @szellmann in #130
- viewer improvements by @jeffamstutz in #132
- Implement mapParameterArrayN() functions by @szellmann in #133
- Some smaller usability and compile fixes to the remote server app by @szellmann in #134
- implement anariUnsetAllParameters by @jeffamstutz in #135
- Allow writing zero-length array through remote pass-through device by @szellmann in #136
- CTS phase 2 by @UX3D-haertl in #118
- implement in/out offsets for samplers, add opacityHeatmap render method by @jeffamstutz in #137
- convert to using class-based approach to implementing libraries by @jeffamstutz in #138
- Release maintenance by @jeffamstutz in #139
- [docs] Updated
anari_viewer::README.md
- added mention ofDear ImGUi
by @inobelar in #143 - Release SDK maintenance by @progschj in #141
- updates for release 0.7.0 by @jeffamstutz in #146
New Contributors
Full Changelog: v0.3.0...v0.7.0
v0.3.0
Changes since last release
Updates to synchronize with the latest changes in the ANARI Specification
- Framebuffer channel names are prefixed with
"channel."
- Rename
ANARI_TYPE_LIST
toANARI_DATA_TYPE_LIST
- Fix camera and instance transforms to accept 4x4 matrices instead of 4x3
Other SDK updates
- Initial implementation of the python based Conformance Test Suite (CTS)
- This phase of CTS development focused on construction of testing infrastructure, future work will focus on creating tests to cover API features and extensions
- See README for details on how to run the test suite
- New base device library (
helium
) for expediting common device abstractions and base implementation- This library replaces
anari_utilities
, which will be removed in the next release - See README for details on how to leverage the library
- This library replaces
- New example device based on
helium
(helide
)- This device is built on Embree and is intended to primarily demonstrate
helium
and be widely available. This fully replaces the old example device, but shares the non-goal of ANARI extension completeness.
- This device is built on Embree and is intended to primarily demonstrate
- Loading the
environment
device (i.e. readingANARI_LIBRARY
) does not terminate on failure - Robustness and completeness updates in code generation infrastructure
- New OpenGLES version of the example viewer app
What's Changed
- Handle cast fix by @progschj in #59
- Fix camera transform not being mat4 in definitions by @progschj in #61
- Various fixes by @progschj in #62
- Rename ANARI_TYPE_LIST to ANARI_DATA_TYPE_LIST by @progschj in #64
- Fix VS2017 build errors in struct initialization by @PanGao-h in #65
- fix api error handling by @jeffamstutz in #68
- Add prefix to framebuffer channels and channel queries by @progschj in #66
- Python bindings by @progschj in #67
- Fix strncmp length typo by @player1537 in #69
- Query maintenance by @progschj in #70
- Query maintenance 2 by @progschj in #72
- add libhelium and helide device implementations by @jeffamstutz in #73
- document helium, update README accordingly by @jeffamstutz in #74
- fix license headers by @jeffamstutz in #75
- default helide configuration fixes for Apple ARM machines by @jeffamstutz in #76
- CTS Implementation by @UX3D-haertl in #71
- tweak cts CMake + install layout, use anari prefix for python bindings lib by @jeffamstutz in #77
- helide device updates + CTS tweaks by @jeffamstutz in #78
- CTS leak fix, tweaks, and helium fix by @jeffamstutz in #80
- Gles viewer by @progschj in #81
- Helide: implement float attributes for primitives and triangle/sphere vertices by @jeffamstutz in #82
- Helide: add support for fixed point geometry attributes by @jeffamstutz in #83
- Helide: add vertex attributes for cone, curve, and cylinder geometries by @jeffamstutz in #84
New Contributors
- @PanGao-h made their first contribution in #65
- @player1537 made their first contribution in #69
- @UX3D-haertl made their first contribution in #71
Full Changelog: v0.2.0...v0.3.0