问题描述
我正在 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 模块测量程序的速度。