为什么 Pymesh 布尔运算在我简单的几何设置中非常慢?

问题描述

我正在 pymesh 中测试布尔运算的效率,看看它计算布尔值的速度有多快。但是与 libigl paper

相比,我使用默认引擎获得的性能非常慢

0.25 s 计算 8616 个网格的自并。

我做了一个与一个小的原始盒子相交的颗粒网格的实验。 纹理有 12 个顶点,原始框有 8 个顶点。谷物的位置刚好在盒子表面的半上方。计算这两个对象的交集需要 0.036 秒。

这么简单的计算,为什么要0.036秒? 在进行这个布尔运算时,我们用Libigl作为引擎,用C++编写的pymesh。 我是否必须用 C++ 编写代码才能直接使用 Libigl 以获得类似的性能?

这些结果是在以下环境中产生的:

  • 处理器:2.3 GHz 双核 Intel Core i5
  • 内存:8 GB 2133 MHz LPDDR3
  • 操作系统:Mac OS Catalina 10.15.7
  • IDE:Visual Studio Code、Jupyter Notebook
  • Python 版本:3.7.5
  • Pymesh 版本:pymesh2==0.3

解决方法

PyMesh 将自己描述为一个快速原型库,它依赖于许多其他库。

如果您想直接使用 Python 中的 libigl,您不妨试试他们的 Python bindings

无论哪种情况,请务必使用 timeit 模块测量程序的速度。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...