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