* Sat Feb 22 2020 Hans-Peter Jansen <email@example.com>
- add 8G memory constraint
* Sat Feb 22 2020 firstname.lastname@example.org
- add tools subpackage for the command line programs
* Wed Feb 05 2020 Hans-Peter Jansen <email@example.com>
- Version 7.0.0 - December 6, 2019
Some changes in this release (see "ABI changes" below) alter
the grid ABI so that it is incompatible with earlier versions
of the OpenVDB library, such as the ones built into Houdini
up to and including Houdini 18.0. To preserve ABI compatibility,
when compiling OpenVDB or any dependent code define the macro
OPENVDB_ABI_VERSION_NUMBER=N, where, for example, N is 5 for
Houdini 17.0 and 17.5 and 6 for Houdini 18.0.
As of this release, a C++14 compiler is required and the oldest
supported Houdini version is 17.0.
- LevelSetMeasure can now compute multiple types of curvatures (averge and total
Gaussian and mean curvature) as well as Euler characteristic and genus of
level set surfaces.
- Most stencil classes now have an intersection method that detcts the axial
directions of zero-crossings (as oppose to the existing boolean intersection test).
- The CurvatureStencil can now compute Gaussian and principal
curvatures (in addition to mean curvature).
- Added Tree::nodeCount, which counts the number and type of nodes
in a tree very efficiently.
- Added new RootNode::addChild() and InternalNode::addChild() methods to
allow the insertion of child nodes directly.
- The minimum ABI for OpenVDB is now always enforced through CMake
separately from other minimum dependency version variables.
- Added support for CMake 3.12 compatible Xxx_ROOT variables.
- Replaced the CMake USE_SYSTEM_LIBRARY_PATHS option with
DISABLE_CMAKE_SEARCH_PATHS and removed the hard coded list of
SYSTEM_LIBRARY_PATHS in favor of using CMake's default search procedure.
SYSTEM_LIBRARY_PATHS can still be used as a global list of paths for all
- Improvements to OpenVDB's CMake module setup order in regards to CMake
policy, minimum version and project calls.
- Replaced occurrences of boost::scoped_array with std::unique_ptr.
- Added an OPENVDB_SIMD option to CMake to optionally define SSE4.2 and
AVX compiler flags, this is switched off by default.
- Made various small changes to improve Visual Studio compatiblity and
deprecate some logic for compilers older than Visual Studio 2017.
- Standardized CMake install locations using GNUInstallDirs. Importantly,
this changes the default library installation folder from lib to lib64
on some 64-bit systems, or to lib/multiarch-tuple on Debian
[Contributed by David Aguilar]
- Added SIMD intrinsics to a few common NodeMask methods.
[Contributed by Konstantin]
- Fixed a bug in FindJemalloc.cmake where paths were not being handled
- Fixed a Windows build issue in openvdb_render.
- Fixed a non deterministic threading bug in tools::meshToVolume() during
polygon voxelization which could result in different distance values.
- OpFactory destructor is now virtual as of ABI=7
- Added new virtual methods for copying const grids and replacing
the metadata and/or the transform - GridBase::copyGridReplacingMetadata,
- AttributeArray copy constructor is now thread-safe.
- VolumeToMesh::pointList() and VolumeToMesh::polygonPoolList() now return
a std::unique_ptr instead of a boost::scoped_array.
- AttributeArray::copyUncompressed() is now deprecated.
- Removed the requirement of CMake 3.14 for NumPy usage.
- Added support for Boost versions 1.65 and later when building
the Python module with NumPy support through CMake.
- Improved CMake Python3 support.
- The Python Module is now disabled by default in CMake.
- Fixed a bug in the Points Convert SOP during conversion from
Houdini geometry to OpenVDB Points, where point group information
could end up corrupted or cause a crash with non-contiguous
point offsets (mesh inputs).
- Threaded the population of point group memberships during conversion
from Houdini geometry to OpenVDB Points
- Added logic to the Rasterize Points SOP to suppress the output of
non-finite attribute values due to subnormal input densities.
- Introduced a position compression option to the Scatter SOP for VDB
Points and default to 16-bit fixed point.
- adjust to so version 7_0
* Thu Nov 21 2019 Hans-Peter Jansen <firstname.lastname@example.org>
- Update to Version 6.2.1 - September 30, 2019
- Fixed a crash that arose from an inadvertent ABI change of an I/O class
with the 6.2.0 release. The crash occured when attempting to write out
a point data grid using an I/O routine from a different version of
OpenVDB than the one with which the grid was authored and when
one of those OpenVDB versions was 6.2.0.
- Update to Version 6.2.0 - September 18, 2019
- Added tools::FindActiveValues, which counts the active values
in a tree that intersect a given bounding box.
- Added io::DelayedLoadMetadata, which stores mask offsets and compression
sizes on write to accelerate delayed load reading.
- LeafNode::modifyValue() and LeafNode::modifyValueAndActiveState()
now modify voxel values in place for improved performance.
- Added math::isInfinite() and math::isNan() to resolve Visual Studio
compatibility issues with integer types.
- Made minor performance improvements to moving and filtering VDB points.
- Improved performance related to a mutex contention when appending
multiple AttributeArrays in parallel through various point operations.
- Significantly improved the performance of createLevelSetSphere()
- Improved directory and file path lookups of some CMake commands in
the root CMakeLists.txt
[Reported by Daniel Elliott]
- Improved CMake support for GLFW versions 3.1 and later.
- FindOpenVDB.cmake now correctly propagates CXX version requirements.
- Added CMake support for linking against Jemalloc and TBB malloc
and enabled Jemalloc by default for Linux and non-Maya builds
and TBB malloc for all other builds.
- Added a USE_COLORED_OUTPUT option to CMake to display compiler output
- Added an OPENVDB_CODE_COVERAGE option to CMake.
- CMake now automatically detects and configures the CXX11 ABI requirement
for Houdini builds.
- CMake now issues deprecation warnings for 2017 VFX Reference Platform
version dependencies. In particular, C++11-only compilers are now
deprecated; OpenVDB 7.0 will require a C++14-compatible compiler.
- Replaced std::vector with std::deque as the underlying container
for util::PagedArray, to address a rare crash when reading
from multiple threads while writing from another thread.
- Fixed a bug that could cause an empty CoordBBox to report nonzero volume.
- Fixed a bug in tools::computeScalarPotential() that could produce
a corrupt result due to invalid memory access.
[Reported by Edwin Braun]
- Partially reverted tools::ClosestSurfacePoint's distance calculations
to their pre-OpenVDB 5.0 behavior to address a bug in the
fillWithSpheres() tool that caused generated spheres to sometimes
extend outside the target volume.
- CMake now correctly sets rpaths for the unit test binary.
- Addressed a Valgrind warning by allocating the AttributeArray registry
using a Meyers singleton.
[Contributed by Autodesk]
- ABI versions 3 and older are now deprecated, and support for them will be
removed in a future release. Until then, define the macro
OPENVDB_USE_DEPRECATED_ABI (or set the CMake OPENVDB_USE_DEPRECATED_ABI
option to ON) to suppress deprecation messages when compiling OpenVDB or
- Changed points::RandomLeafFilter::LeafMap from a std::map to
- Removed the TableT template argument from util::PagedArray.
The table type is now hardcoded to std::deque.
- The minimum supported version of GLFW is now 3.1.
- CMake now always produces a .so for the Python module on Unix
and Linux platforms.
- Fixed a compile-time error when building the Python module for Python 3.
[Reported by yurivict]
- OpenVDB SOPs are now displayed in an ASWF sub-menu of the VDB tab menu.
- Added API documentation and examples.
- Added openvdb_houdini::GEOvdbApply(), which invokes a functor
on a VDB primitive if the resolved grid type is a member of
a given type list.
- Fixed a regression in the Fill SOP that caused it to modify VDBs
in the input detail.
- The Combine SOP no longer crashes in Copy B mode when the destination
is not a VDB.
- Added a houdini_utils::OpFactory::addSpareData() method
and addOperatorSpareData() and getOperatorSpareData() functions
to manage spare data associated with operator types.
- Added an opsparedata HScript command and hou.NodeType.spareData()
and hou.NodeType.spareDataDict() methods to retrieve spare data
associated with operator types.
- Added a pythonrc.py startup script to set the tab menu visibility
of nodes and their native Houdini equivalents, based on an
OPENVDB_OPHIDE_POLICY environment variable.
- Added a houdini_utils::OpFactory::setInvisible() method to hide nodes
from tab menus.
- Added an OpenVDBOpFactory::setNativeName() method to pair OpenVDB nodes
with their native Houdini equivalents.
- Added a houdini_utils::OpPolicy::getTabSubMenuPath() method to allow
OpPolicy subclasses to provide their own tab sub-menu path.
- OpenVDB nodes now override OP_Operator::getVersion() to return
a version string of the form "vdb6.2.0 houdini18.0.222".
- Clean up spec file, remove superfluous parameterization
* Tue Nov 19 2019 Stefan Brüns <email@example.com>
- Replace cmake(TBB) BuildRequires with equivalent tbb-devel, the
latter is also available on Leap 15.x.
* Fri Aug 23 2019 Jan Engelhardt <firstname.lastname@example.org>
- Trim bias and metadata redundancies from description.
- Then openSUSE %ix86 platforms are not guaranteed to have SSE.
* Thu Jul 11 2019 Hans-Peter Jansen <email@example.com>
- version 6.1.0: initial build