我想降低 openvdb 网格的体素密度。受此答案的启发,我尝试了以下代码:
const auto dim = grid->evalActiveVoxelDim().asVec3i();
std::cout << dim.x() << " " << dim.y() << " " << dim.z() << std::endl;
T::Ptr dest = T::create();
dest->setTransform(openvdb::math::Transform::createLinearTransform(1.0f));
openvdb::tools::resampleToMatch<openvdb::tools::BoxSampler>(*grid, *dest);
const auto dd = dest->evalActiveVoxelDim().asVec3i();
std::cout << dd.x() << " " << dd.y() << " " << dd.z() << std::endl;
我尝试的带有网格的打印输出如下:
86 93 82
8 8 6
我不明白这是什么意思。使用缩放 1.0,我期望相同的体素密度。原始网格是否包含一些我需要考虑的缩放比例?
另外,有没有办法多线程执行此操作?