0

我计划使用 OpenVDB 来分析 3D 对象/网格。目标是:

  • 用一定的标准检测物体表面区域,比如斜率
  • 然后操纵那些区域
  • 例如,操作可能会将其他 3D 对象添加到这些区域

茶壶模型

OpenVDB 有一些可用的工具

  1. 转换工具
  2. 过滤器
  3. 拓扑运算
  4. 水平集工具
  5. 形态学运算
  6. 几何变换
  7. 合成工具
  8. ...

这是一大套令人困惑的工具可供选择。有 OpenVDB 经验的人知道吗:

  1. OpenVDB 是实现我目标的合适库吗
  2. 如果是这样,哪个 OpenVDB 工具最适合我的需求
4

1 回答 1

0

OpenVDB 社区提供的答案:

一个重要的问题是您所说的“3D 对象/网格”是什么意思。

OpenVDB 非常擅长通过将表面表示为带符号的距离场来执行这些区域。但是“网格”这个词引起了一些你可能想要维护拓扑的警钟。在这种情况下,另一个库可能更有效。

听起来您也有一个正在尝试探索的问题域。为此,我不会直接编写代码,而是先探索使用 3d 应用程序的解决方案。我自己有偏见的首选是 Houdini,你可以免费获得他的学徒版本。这将大部分 VDB 代码提供为单独的节点。因此,例如,您可以使用 File SOP 从磁盘加载网格,使用 VDB From Polygons 将其转换为有符号距离字段,然后使用 VDB 分析来计算梯度。我认为梯度与您正在寻找的坡度相匹配,但也有可能您正在寻找曲率......

要返回网格区域,您可以使用 VDB Convert。最后,ROP Geometry 可以保存它。

附件是一个文件,该文件显示了一个将近似 Y 斜率计算为体积的网络,将其应用回网格,然后保存到磁盘。

附件

于 2019-11-11T07:16:27.887 回答