@@ -5,56 +5,46 @@ Version 10.0.1 - In development
55
66Version 10.0.0 - October 27, 2022
77
8- New Features:
9- - Introducing OpenVDBLink, which provides a Mathematica interface to
10- OpenVDB. This link ports over access to various grid containers including
11- level sets, fog volumes, vector grids, integer grids, Boolean grids,
12- and mask grids. Construction, modification, combinations, visualisations,
13- queries, import, export, etc. can be achieved over grids too. Any
14- Mathematica 3D region that's ConstantRegionQ and BoundedRegionQ can
15- be represented as a level set grid, providing a more seamless integration
16- with OpenVDB.
17- - Introducing a new command-line tool, dubbed vdb_tool, that can combine any
18- number of the high-level tools available in openvdb/tools. For
19- instance, it can convert a sequence of polygon meshes and particles to
20- level sets, perform a large number of operations on these level set
21- surfaces and export them as adaptive polygon meshes.
22- - Added nanovdb::IndexGrid that allows for arbitrary voxel values and even
23- multiple channels to be associated with NanoVDB grids. They are more
24- flexible and memory efficient than regular grids at a small cost of
25- random-access performance. IndexGrids are constructed with the new
26- nanovdb::IndexGridBuilder and accessed with the new
27- nanovdb::ChannelAccessor.
28- - Added iterators to all tree node classes for visiting inactive, active, or
29- all values and child nodes.
30- - NanoVDB.h now includes standalone implementations of reading and writing
31- uncompressed nanovdb grids buffers.
32- - Added Stats::getExtrema, which computes the min/max values of all voxels
33- in a NanoVDB grid that intersects with a user-defined bounding-box.
34- - Added nanovdb::Mask::countOn(int) which is essential to the new
35- nanovdb::IndexGrid.
36- - Added RootNode::probeChild and InternalNode::probeChild.
37-
8+ Highlights:
9+ - Introducing OpenVDBLink, which provides a Mathematica interface to
10+ OpenVDB. This link ports over access to various grid containers including
11+ level sets, fog volumes, vector grids, integer grids, Boolean grids,
12+ and mask grids. Construction, modification, combinations, visualisations,
13+ queries, import, export, etc. can be achieved over grids too. Any
14+ Mathematica 3D region that's ConstantRegionQ and BoundedRegionQ can
15+ be represented as a level set grid, providing a more seamless integration
16+ with OpenVDB.
17+ - Introducing a new command-line tool, dubbed vdb_tool, that can combine any
18+ number of the high-level tools available in openvdb/tools. For
19+ instance, it can convert a sequence of polygon meshes and particles to
20+ level sets, perform a large number of operations on these level set
21+ surfaces and export them as adaptive polygon meshes.
22+
23+ OpenVDB:
3824 Improvements:
3925 - Significantly improved the performance of all ValueAccessor methods which
4026 access LeafNode value buffer data. This improvement applies to any type
4127 which is delay load compatible (all default types except for bool and mask
4228 grids) and improves the performance of many OpenVDB tools.
43- - Major updates to the command line interface of the vdb_ax binary, exposing
44- more controls such as tile streaming, value iterator types and attribute
45- bindings.
4629 - Improved the performance of volumeToMesh by 10-15%.
47- - Added a new much improved nanovdb::NodeManager, that is both faster and
48- more memory efficient, and that works on both the CPU and GPU. Note, it
49- uses a handle for allocation (just like nanovdb::Grid) and replaces the
50- old nanovdb::LeafManager which is now deprecated.
51- - NanoToOpenVDB is extended to work with grids templated on Fp4, Fp8, Fp16,
52- FpN, bool and ValueMask.
53- - Renamed RootNode::findTile to RootNode::probeTile and made it public.
54- - Made Mask::getWord return both a const and non-const reference.
55- - Improved unit-tests to use explicit 32B alignment (see alignment bug-fix
56- below).
57- - PNanoVDB.h (a C99 port of NanoVDB.h) has been updated.
30+
31+ ABI changes:
32+ - ABI change to openvdb::RootNode, which now has a new member that defines
33+ the origin of the node. For now this origin is set to a default value of
34+ (0,0,0), but in the near future we will allow for offsets to improve
35+ access performance and reduce the memory footprints.
36+ - Removed deprecated virtual methods from AttributeArray.
37+
38+ API changes:
39+ - Removed PagedArray::push_back().
40+ - Removed Tree visitor methods from Tree, RootNode, InternalNode and
41+ LeafNode classes - visit(), visit2(), visitActiveBBox().
42+ - Removed LeafManager::getNodes().
43+ - Removed tools::dilateVoxels() and tools::erodeVoxels() in favor of
44+ tools::dilateActiveValues() and tools::erodeActiveValues().
45+ - Removed tools::FindActiveValues::any() and
46+ tools::FindActiveValues::none().
47+ - StringGrid and StringTrees have been removed.
5848
5949 Bug Fixes:
6050 - Fixed an issue with tools::topologyToLevelSet which would previously
@@ -80,6 +70,56 @@ Version 10.0.0 - October 27, 2022
8070 - Fixed a bug in FastSweeping where voxels/tiles are left with min/max float
8171 values.
8272 - Fixed a bug in math/Tuple.h that prevented compilation with VS2017.
73+
74+ OpenVDB AX:
75+ Improvements:
76+ - Major updates to the command line interface of the vdb_ax binary, exposing
77+ more controls such as tile streaming, value iterator types and attribute
78+ bindings.
79+
80+ OpenVDB Houdini:
81+ New Features:
82+ - Add convex hull activation for VDB Activate SOP (requires 19.5).
83+
84+ Improvements:
85+ - Improved SDF activation to use dynamic node manager.
86+
87+ Bug Fixes:
88+ - Fixed a bug in VDB Visualize SOP where color values that exceed
89+ the range wrap around instead of being clamped.
90+
91+ NanoVDB:
92+ New Features:
93+ - Added nanovdb::IndexGrid that allows for arbitrary voxel values and even
94+ multiple channels to be associated with NanoVDB grids. They are more
95+ flexible and memory efficient than regular grids at a small cost of
96+ random-access performance. IndexGrids are constructed with the new
97+ nanovdb::IndexGridBuilder and accessed with the new
98+ nanovdb::ChannelAccessor.
99+ - Added iterators to all tree node classes for visiting inactive, active, or
100+ all values and child nodes.
101+ - NanoVDB.h now includes standalone implementations of reading and writing
102+ uncompressed nanovdb grids buffers.
103+ - Added Stats::getExtrema, which computes the min/max values of all voxels
104+ in a NanoVDB grid that intersects with a user-defined bounding-box.
105+ - Added nanovdb::Mask::countOn(int) which is essential to the new
106+ nanovdb::IndexGrid.
107+ - Added RootNode::probeChild and InternalNode::probeChild.
108+
109+ Improvements:
110+ - Added a new much improved nanovdb::NodeManager, that is both faster and
111+ more memory efficient, and that works on both the CPU and GPU. Note, it
112+ uses a handle for allocation (just like nanovdb::Grid) and replaces the
113+ old nanovdb::LeafManager which is now deprecated.
114+ - NanoToOpenVDB is extended to work with grids templated on Fp4, Fp8, Fp16,
115+ FpN, bool and ValueMask.
116+ - Renamed RootNode::findTile to RootNode::probeTile and made it public.
117+ - Made Mask::getWord return both a const and non-const reference.
118+ - Improved unit-tests to use explicit 32B alignment (see alignment bug-fix
119+ below).
120+ - PNanoVDB.h (a C99 port of NanoVDB.h) has been updated.
121+
122+ Bug Fixes:
83123 - Fixed a bug in nanovdb::HostBuffer that could produce crashes due to
84124 misaligned CPU memory allocations.
85125 - Fixed bug related to uninitialized memory in nanovdb::Grid which could
@@ -89,53 +129,29 @@ Version 10.0.0 - October 27, 2022
89129 - Fixed a potential security vulnerability in NanoVDB.h related to buffer
90130 overflow exploits.
91131
92- ABI changes:
93- - ABI change to openvdb::RootNode, which now has a new member that defines
94- the origin of the node. For now this origin is set to a default value of
95- (0,0,0), but in the near future we will allow for offsets to improve
96- access performance and reduce the memory footprints.
97- - Removed deprecated virtual methods from AttributeArray.
98-
99- API changes:
100- - Removed PagedArray::push_back().
101- - Removed Tree visitor methods from Tree, RootNode, InternalNode and
102- LeafNode classes - visit(), visit2(), visitActiveBBox().
103- - Removed LeafManager::getNodes().
104- - Removed tools::dilateVoxels() and tools::erodeVoxels() in favor of
105- tools::dilateActiveValues() and tools::erodeActiveValues().
106- - Removed tools::FindActiveValues::any() and
107- tools::FindActiveValues::none().
108- - StringGrid and StringTrees have been removed.
109-
110- Houdini:
111- - Add convex hull activation for VDB Activate SOP (requires 19.5).
112- - Improved SDF activation to use dynamic node manager.
113- - Fixed a bug in VDB Visualize SOP where color values that exceed
114- the range wrap around instead of being clamped.
115-
116- Build:
117- - Added OPENVDB_USE_DELAYED_LOAD flag that enables delayed loading and
118- defaults to on.
119- - Add a placeholder to inject the specific revision and URL used
120- to build OpenVDB, useful for 3rd party build scripts to publish
121- their exact versions.
122- - Fixed an issue where OPENVDB_AX_DLL was not being defined on shared
123- library builds of AX, resulting in symbols not being exported.
124- [Reported by Ray Molenkamp]
125- - Fixed an issue where setting Tbb_INCLUDE_DIR could cause CMake failures.
126- - Updated FindTBB.cmake to support newer library ABI suffixing in
127- TBB 2021.5.
128- - Updated FindBlosc.cmake to better handle cases where blosc is built with
129- external sources.
130- - Resolved LLVM deprecation warnings in AX and added support for LLVM 14.
131- - On Windows (MSVC), OpenVDB is now built with extra compiler options to
132- ensure stricter C++ conformance: /permissive- /Zc:throwingNew /Zc:inline.
133- - On Windows (MSVC), the _USE_MATH_DEFINES macro is no longer defined when
134- including <openvdb/Platform.h> (or any dependent headers). If you were
135- relying on this in your own project for M_PI, M_PI_2, etc. you can add
136- -D_USE_MATH_DEFINES to your own project compiler options. See
137- https://docs.microsoft.com/en-us/cpp/c-runtime-library/math-constants
138- for more info.
132+ Build:
133+ - Added OPENVDB_USE_DELAYED_LOAD flag that enables delayed loading and
134+ defaults to on.
135+ - Add a placeholder to inject the specific revision and URL used
136+ to build OpenVDB, useful for 3rd party build scripts to publish
137+ their exact versions.
138+ - Fixed an issue where OPENVDB_AX_DLL was not being defined on shared
139+ library builds of AX, resulting in symbols not being exported.
140+ [Reported by Ray Molenkamp]
141+ - Fixed an issue where setting Tbb_INCLUDE_DIR could cause CMake failures.
142+ - Updated FindTBB.cmake to support newer library ABI suffixing in
143+ TBB 2021.5.
144+ - Updated FindBlosc.cmake to better handle cases where blosc is built with
145+ external sources.
146+ - Resolved LLVM deprecation warnings in AX and added support for LLVM 14.
147+ - On Windows (MSVC), OpenVDB is now built with extra compiler options to
148+ ensure stricter C++ conformance: /permissive- /Zc:throwingNew /Zc:inline.
149+ - On Windows (MSVC), the _USE_MATH_DEFINES macro is no longer defined when
150+ including <openvdb/Platform.h> (or any dependent headers). If you were
151+ relying on this in your own project for M_PI, M_PI_2, etc. you can add
152+ -D_USE_MATH_DEFINES to your own project compiler options. See
153+ https://docs.microsoft.com/en-us/cpp/c-runtime-library/math-constants
154+ for more info.
139155
140156Version 9.1.0 - June 9, 2022
141157
0 commit comments