Production release of OpenVDB 8.0

123 views
Skip to first unread message

Ken Museth

unread,
Jan 11, 2021, 10:02:45 PM1/11/21
to OpenVDB Forum
OpenVDB 8.0 is now available to download. The highlights of this release are

  • release of OpenVDB AX, a C++ library that provides a powerful and easy way of interacting with OpenVDB volume and point data
  • ABI-breaking changes that improve performance and reduce memory usage
  • various bug fixes and other improvements
The complete release notes are included below for your convenience.

Version 8.0.0 - December 23, 2020

This version introduces ABI changes relative to older major releases, so to preserve ABI compatibility it might be necessary to define the macro OPENVDB_ABI_VERSION_NUMBER=N, where, for example, N is 6 for Houdini 18.0 and 7 for Houdini 18.5.

Official release of OpenVDB AX, a new C++ library that implements a domain specific JIT (just-in-time) compiled expression language, providing users with a new way of interacting with OpenVDB data. AX is tailored towards writing highly parallelizable and customizable OpenVDB volume and point kernel operations. See the documentation for more.


New features:

Improvements:
  • Made LeafManager class non-virtual.

Bug fixes:
  • Fixed a determinism bug in NodeManager when using non-thread-safe functor members.
  • Fix grid transformer tool construction to use correct rotate-scale-translate order when recomposing matrix components. [Contributed by Tom Cnops]
  • OpenVDB AX: Fixed a potential code generation crash in binary, ternary or comma operators when errors occurred in first operand.

ABI changes:
  • Grid::isTreeUnique is now virtual as of ABI=8 so that it can be accessed from the GridBase.
  • Private method RootNode::getChildCount has been removed as of ABI=8.
  • Mark map classes and functions as final for ABI=8 where beneficial to allow devirtualization optimization.
  • As of ABI 8, Vector, Matrix and Quaternion types now satisfy the Trivial Type requirement. Their empty constructors and copy constructors have been removed (and are left to the compiler to define).
  • As of ABI 8, removed an unnecessary specialization of NodeUnion and CopyTraits from NodeUnion.h. Replaced std::is_pod usage with std::is_trivially_copyable which allows more types to benefit from the union storage.
  • As of ABI 8, PointDataGrids use the union NodeUnion specialization, reducing the memory footprint of their topology by 50%.

API changes:
  • Removed a number of deprecated point, volume and AX methods.

Houdini:
  • VDB to Spheres SOP doesn't reset the radius when in worldspace mode. VDB Write SOP should likewise not reset the compression values.

Build:
  • As of this release, VFX Reference Platform 2018 is no longer supported. CMake now issues deprecation warnings for 2019 VFX Reference Platform version dependencies, with the exception that OpenEXR/IlmBase 2.2 is still supported.
  • Added a missing header include to resolve an undefined size_t build error on GCC10.
  • Improved the python module's linkage with the CMake 3.15 Python::Module target. Explicitly linking with the Development target could result in crashes, particularly on macOS. [Reported by Alexander Hagen]
  • Removed OPENVDB_DEPRECATED macro in favor of C++14 [[deprecated]] attribute.
Reply all
Reply to author
Forward
0 new messages