|
2 | 2 |
|
3 | 3 | @page changes Release Notes |
4 | 4 |
|
5 | | -@htmlonly <a name="v9_1_1_changes"></a>@endhtmlonly |
| 5 | +@htmlonly <a name="v10_0_0_changes"></a>@endhtmlonly |
6 | 6 | @par |
7 | | -<B>Version 9.1.1</B> - <I>In development</I> |
| 7 | +<B>Version 10.0.0</B> - <I>October 27, 2022</I> |
| 8 | + |
| 9 | +@par |
| 10 | +<BLOCKQUOTE> |
| 11 | +This version introduces ABI changes relative to older major releases, so to |
| 12 | +preserve ABI compatibility it might be necessary to define the macro |
| 13 | +<TT>OPENVDB_ABI_VERSION_NUMBER=</TT><I>N</I>. |
| 14 | +</BLOCKQUOTE> |
| 15 | + |
| 16 | +@par |
| 17 | +<BLOCKQUOTE> |
| 18 | +Introducing OpenVDBLink, which provides a |
| 19 | +<A HREF="https://www.wolfram.com/mathematica/">Mathematica</A> interface to <A HREF="https://openvdb.org">OpenVDB</A>. |
| 20 | +</BLOCKQUOTE> |
| 21 | + |
| 22 | +@par |
| 23 | +<BLOCKQUOTE> |
| 24 | +Introducing a new command line tool, |
| 25 | +dubbed <A HREF="https://github.com/AcademySoftwareFoundation/openvdb/tree/master/openvdb_cmd/vdb_tool">vdb_tool</A>, |
| 26 | +that can combine any number of the high-level tools available |
| 27 | +in <A HREF="https://github.com/AcademySoftwareFoundation/openvdb/tree/master/openvdb/openvdb/tools">openvdb/tools</A>. |
| 28 | +</BLOCKQUOTE> |
| 29 | + |
| 30 | +@par |
| 31 | +New Features: |
| 32 | +- Introducing OpenVDBLink, which provides a Mathematica interface to |
| 33 | + OpenVDB. This link ports over access to various grid containers |
| 34 | + including level sets, fog volumes, vector grids, integer grids, |
| 35 | + Boolean grids, and mask grids. Construction, modification, |
| 36 | + combinations, visualisations, queries, import, export, etc. |
| 37 | + can be achieved over grids too. Any Mathematica 3D region |
| 38 | + that's ConstantRegionQ and BoundedRegionQ can be represented |
| 39 | + as a level set grid, providing a more seamless integration with |
| 40 | + OpenVDB. |
| 41 | +- Introducing a new command-line tool, |
| 42 | + dubbed <A HREF="https://github.com/AcademySoftwareFoundation/openvdb/tree/master/openvdb_cmd/vdb_tool">vdb_tool</A>, |
| 43 | + that can combine any number of the of high-level tools available |
| 44 | + in <A HREF="https://github.com/AcademySoftwareFoundation/openvdb/tree/master/openvdb/openvdb/tools">openvdb/tools</A>. |
| 45 | + For instance, it can convert a sequence of polygon meshes and particles to |
| 46 | + level sets, perform a large number of operations on these level set |
| 47 | + surfaces and export them as adaptive polyon meshes. |
| 48 | +- Added nanovdb::IndexGrid that allows for arbitrary voxel values and |
| 49 | + even multiple channels to be associated with NanoVDB grids. They are |
| 50 | + more flexible and memory efficient than regular grids at a small cost |
| 51 | + of random-access performance. IndexGrids are constructed with the new |
| 52 | + nanovdb::IndexGridBuilder and accessed with the new |
| 53 | + nanovdb::ChannelAccessor. |
| 54 | +- Added iterators to all tree node classes for visiting inactive, |
| 55 | + active, or all values and child nodes. |
| 56 | +- NanoVDB.h now includes standalone implementations of reading and |
| 57 | + writing uncompressed nanovdb grids buffers. |
| 58 | +- Added Stats::getExtrema, which computes the min/max values of all |
| 59 | + voxels in a NanoVDB grid that intersects with a user-defined bounding-box. |
| 60 | +- Added nanovdb::Mask::countOn(int) which is essential to the new |
| 61 | + nanovdb::IndexGrid. |
| 62 | +- Added RootNode::probeChild and InternalNode::probeChild. |
| 63 | + |
| 64 | +@par |
| 65 | +Improvements: |
| 66 | +- Significantly improved the performance of all ValueAccessor methods which |
| 67 | + access LeafNode value buffer data. This improvement applies to any type which |
| 68 | + is delay load compatible (all default types except for bool and mask grids) |
| 69 | + and improves the performance of many OpenVDB tools. |
| 70 | +- Major updates to the command line interface of the vdb_ax binary, exposing |
| 71 | + more controls such as tile streaming, value iterator types and attribute |
| 72 | + bindings. |
| 73 | +- Improved the performance of volumeToMesh by 10-15%. |
| 74 | +- Added a new much improved nanovdb::NodeManager, that is both faster and |
| 75 | + more memory efficient, and that works on both the CPU and GPU. Note, it uses |
| 76 | + an handle for allocation (just like nanovdb::Grid) and replaces the old |
| 77 | + nanovdb::LeafManager which is now deprecated. |
| 78 | +- NanoToOpenVDB is extended to work with grids templated on Fp4, Fp8, Fp16, |
| 79 | + FpN, bool and ValueMask. |
| 80 | +- Rename RootNode::findTile to RootNode::probeTile and made it public. |
| 81 | +- Made Mask::getWord return both an const and non-const reference. |
| 82 | +- Improved unit-tests to use explicit 32B alignment (see aligment bug-fix below). |
| 83 | +- PNanoVDB.h (a C99 port of NanoVDB.h) has been updated. |
8 | 84 |
|
9 | 85 | @par |
10 | 86 | Bug Fixes: |
11 | 87 | - Fixed an issue with tools::topologyToLevelSet which would previously |
12 | | -ignore active tiles in the input topology. [Reported by Tobias Rittig] |
| 88 | + ignore active tiles in the input topology. [Reported by Tobias Rittig] |
| 89 | +- Fixed a bug with ValueAccessor::addLeaf and ValueAccessor::addTile which |
| 90 | + wouldn't add the provided leaf nodes to the underlying tree. This bug did |
| 91 | + NOT affect the specialized accessors which are used by the default tree |
| 92 | + configuration. [Contributed by Andrey Zakirov] |
| 93 | +- Fixed a bug where ValueAccessor::probeNode<NodeT> and |
| 94 | + ValueAccessor:probeConstNode<NodeT> would return a nullptr if the NodeT type |
| 95 | + was not explicitly being cached by the accessor but the node existed in the |
| 96 | + tree. |
| 97 | +- Fixed a bug on Windows where math::Abs could truncate 64bit integer values. |
| 98 | + [Contributed by Edward Lam] |
| 99 | +- Fixed an occurance of undefined behaviour with math::floatToInt32 and |
| 100 | + math::doubleToInt64. [Reported by Vojtěch Bubník] |
| 101 | +- Fixed bugs in the sum merge that produced incorrect merged grids when |
| 102 | + deep-copying the input nodes or when non-zero background grids were being used. |
| 103 | +- Fixed a bug in FastSweeping where voxels/tiles are left with min/max float |
| 104 | + values. |
| 105 | +- Fixed a bug in math/Tuple.h that prevented compilation with VS2017. |
| 106 | +- Fixed a bug in nanovdb::HostBuffer that could produce crashes due |
| 107 | + to misaligned CPU memory allocations. |
| 108 | +- Fixed bug related to uninitialized memory in nanovdb::Grid which could |
| 109 | + confuse CRC32 checksum validation. |
| 110 | +- Fixed bugs related to the use of intrinsic functions for fast bit-counting |
| 111 | + in nanovdb. |
| 112 | +- Fixed a potential security vulnerability in NanoVDB.h related to buffer |
| 113 | + overflow exploits. |
| 114 | + |
| 115 | +@par |
| 116 | +ABI changes: |
| 117 | +- ABI change to openvdb::RootNode, which now has a new member that defines |
| 118 | + the origin of the node. For now this origin is set to a default value of |
| 119 | + (0,0,0), but in the near future we will allow for offsets to improve access |
| 120 | + performance and reduce the memory footprints. |
| 121 | +- Removed deprecated virtual methods from AttributeArray. |
| 122 | + |
| 123 | +@par |
| 124 | +API changes: |
| 125 | +- Removed PagedArray::push_back(). |
| 126 | +- Removed Tree visitor methods from Tree, RootNode, InternalNode and LeafNode |
| 127 | + classes - visit(), visit2(), visitActiveBBox(). |
| 128 | +- Removed LeafManager::getNodes(). |
| 129 | +- Removed tools::dilateVoxels() and tools::erodeVoxels() in favor of |
| 130 | + tools::dilateActiveValues() and tools::erodeActiveValues(). |
| 131 | +- Removed tools::FindActiveValues::any() and tools::FindActiveValues::none(). |
| 132 | +- StringGrid and StringTrees have been removed. |
| 133 | + |
| 134 | +@par |
| 135 | +Houdini: |
| 136 | +- Add convex hull activation for VDB Activate SOP (requires 19.5). |
| 137 | +- Improved SDF activation to use dynamic node manager. |
| 138 | +- Fixed a bug in VDB Visualize SOP where color values that exceed the range wrap |
| 139 | + around instead of being clamped. |
13 | 140 |
|
| 141 | +@par |
| 142 | +Build: |
| 143 | +- Added OPENVDB_USE_DELAYED_LOAD flag that enables delayed loading and defaults |
| 144 | + to on. |
| 145 | +- Add a placeholder to inject the specific revision and URL used to build |
| 146 | + OpenVDB, useful for 3rd party build scripts to publish their exact versions. |
| 147 | +- Fixed an issue where OPENVDB_AX_DLL was not being defined on shared |
| 148 | + library builds of AX, resulting in symbols not being exported. |
| 149 | + [Reported by Ray Molenkamp] |
| 150 | +- Fixed an issue where setting Tbb_INCLUDE_DIR could cause CMake failures. |
| 151 | +- Updated FindTBB.cmake to support newer library ABI suffixing in TBB 2021.5. |
| 152 | +- Updated FindBlosc.cmake to better handle cases where blosc is built with |
| 153 | + external sources. |
| 154 | +- Resolved LLVM deprecation warnings in AX and added support for LLVM 14. |
| 155 | +- On Windows (MSVC), OpenVDB is now built with extra compiler options to |
| 156 | + ensure stricter C++ conformance: /permissive- /Zc:throwingNew /Zc:inline. |
| 157 | +- On Windows (MSVC), the _USE_MATH_DEFINES macro is no longer defined when |
| 158 | + including <openvdb/Platform.h> (or any dependent headers). If you were |
| 159 | + relying on this in your own project for M_PI, M_PI_2, etc. you can add |
| 160 | + -D_USE_MATH_DEFINES to your own project compiler options. See |
| 161 | + <A HREF="https://docs.microsoft.com/en-us/cpp/c-runtime-library/math-constants">this page</A> |
| 162 | + for more info. |
| 163 | + |
| 164 | +@htmlonly <a name="v9_1_0_changes"></a>@endhtmlonly |
14 | 165 | @par |
15 | 166 | <B>Version 9.1.0</B> - <I>June 9, 2022</I> |
16 | 167 |
|
|
0 commit comments