0

嗨,我目前正在开展一个项目,我们必须组合多个 3d 对象。因此,例如将它们彼此相邻放置,有时它们也会相交。

我正在寻找一种算法/库或任何可以将这个新合并对象减少为仅由外表面组成的想法。(我们的 3d 对象目前是 .stl 文件,但我们不受此格式的约束)

我们已经尝试将这些对象与 numpy-stl 组合,但似乎这个库没有任何优化可以帮助解决这个问题。我们还尝试使用来自 pymesh 的布尔合并,但这需要非常多的时间来处理详细的对象。

我们希望释放对象内部的所有信息,只保留外部的信息。因此,例如,如果您将这个组合的 3d 对象放入水中,我们只需要会被水触及的面。

我们更喜欢 python,但任何可以在 python 中实现的算法都会让我们前进。

我们感谢每一个答案:)

4

1 回答 1

0

LibIGL 似乎有 Python 绑定。我建议对每个方面的环境遮挡进行阈值处理。例如,可能删除遮挡值高于 0.8 的所有构面

https://libigl.github.io/libigl-python-bindings/igl_docs/#ambient_occlusion

该函数的输入是顶点、顶点索引的小平面、小平面质心的位置以及每个小平面的法线。输出是每个面的环境光遮蔽,它是一个介于 0 和 1 之间的值。值 0 表示面完全可见,值 1 表示完全阴影。

于 2020-04-14T14:42:48.593 回答