diff --git a/openvdb/openvdb/tools/MeshToVolume.h b/openvdb/openvdb/tools/MeshToVolume.h index 2aac956e75..669ed621d7 100644 --- a/openvdb/openvdb/tools/MeshToVolume.h +++ b/openvdb/openvdb/tools/MeshToVolume.h @@ -1645,7 +1645,7 @@ checkNeighbours(const Index pos, const typename LeafNodeType::ValueType * data, // i + 1, j, k if (mask[0] && Compare::check(data[pos + NodeT::DIM * NodeT::DIM])) return true; // i+1, j, k-1 - if (mask[6] && Compare::check(data[pos + NodeT::DIM * NodeT::DIM])) return true; + if (mask[6] && Compare::check(data[pos + NodeT::DIM * NodeT::DIM - 1])) return true; // i-1, j, k-1 if (mask[7] && Compare::check(data[pos - NodeT::DIM * NodeT::DIM - 1])) return true; // i+1, j, k+1 diff --git a/pendingchanges/meshtovolumecheckneighboursoffset.txt b/pendingchanges/meshtovolumecheckneighboursoffset.txt new file mode 100644 index 0000000000..a98a68a26f --- /dev/null +++ b/pendingchanges/meshtovolumecheckneighboursoffset.txt @@ -0,0 +1,5 @@ +OpenVDB: + Bug Fixes: + - Fixed an incorrect voxel offset in MeshToVolume.h's checkNeighbours() that caused the + (i+1, j, k-1) edge-adjacent neighbor to be checked at the wrong location, duplicating + the (i+1, j, k) neighbor instead.