Production release of OpenVDB 7.2.0

69 views
Skip to first unread message

Ken Museth

unread,
Dec 10, 2020, 5:27:56 PM12/10/20
to OpenVDB Forum

OpenVDB 7.2.0 is now available to download. The highlights of this release are:

  • Faster CSG operations with new parallel breadth-first algorithms and tools
  • Pre-release of AX, a JIT library for efficient manipulation of OpenVDB grids
  • Added support for grids with matrix values
  • Various bug fixes and other improvements

The complete release notes are included below for your convenience.

Version 7.2.0 - December 9, 2020

New features:
  • Added DynamicNodeManager that lazily caches the nodes at each level of the tree to allow for efficient threading of topology-changing top-down workflows.
  • Added CsgUnionOp, CsgIntersectionOp and CsgDifferenceOp that use a parallel breadth-first algorithm to accelerate CSG union, intersection and difference operations.
  • Added TreeToMerge which provides methods to steal or deep-copy from a tree based on the tag dispatch class used in its construction.
  • Pre-release of OpenVDB AX, an open source C++ library that provides a powerful and easy way of interacting with OpenVDB volume and point data.

Improvements:

Houdini:
  • Fixed a bug in the OpenVDB Points Convert SOP where the auto voxel transform was ignoring the contents of packed geometry.
  • Fixed a bug in the OpenVDB Points Convert SOP where points representing packed geometry were also being converted.
  • Fixed a bug where a Houdini SOP's verb would not be correctly associated with the corresponding node if the node's internal name was changed.
  • Fixed bug where OpenVDB Convert SOP could revert the name attribute.

Bug Fixes:
  • Fixed a bug which could cause recursive compile time instantiations of TypeList objects, manifesting in longer compile times.
  • Deprecated util::PagedArray::push_back due to a race condition. Instead use util::PagedArray::ValueBuffer::push_back which is faster and thread-safe.
  • Fixed various cases of undefined behavior in some LevelSetUtil methods [Reported by fkemmler]

API changes:
  • Deprecated tree::LeafManager::getNodes. This method is no longer used when constructing a NodeManager from a LeafManager.
  • Deprecated Tree::visitActiveBBox, Tree::visit and Tree::visit2 methods in favor of using a tree::DynamicNodeManager.
  • Removed tools::CsgVisitorBase, tools::CsgVisitorUnion, tools::CsgVisitorIntersection and tools::CsgVisitorDifference. The CSG tools now use the parallel breath-first algorithms.
  • Moved openvdb::TypeList from Types.h into its own header TypeList.h

Build:
  • Removed the Makefiles.
  • Re-organised the repository layout such that each independent library is able to be configured against an existing installation of OpenVDB without ambiguous include paths.
  • Upgraded CMake minimum version support to 3.12.
  • Removed OPENVDB_STATIC_SPECIALIZATION macro which is no longer required.
  • Fixed various compiler warnings for GCC 9.1.
  • Moved to CMake doxygen commands and removed the doxygen-config files for doxygen documentation.
  • Added USE_ZLIB compiler flag that enables zlib compression and defaults to on.
  • Added the OPENVDB_STATICLIB define to all static builds to fix builds on Windows which use the multithread/DLL-specific version of the CRT. [Reported by Tobias Rittig]
  • Core library unit tests use GoogleTest instead of CppUnit.
Reply all
Reply to author
Forward
0 new messages