3D 格布尔运算开源库
3D 格布尔运算开源库
常用的开源库
开源库的名称 | 应用范围 | 实验结果 | BooleanOperation API | 下载地址 |
---|---|---|---|---|
VTK | 生物医学领域 | 计算速度中等,但是非常不稳定,cpu利用效率低 | vtkBooleanOperationPolyDataFilter | https://vtk.org/download/ |
VTKbool | 生物医学领域 | 计算速度很慢,比较稳定,cpu利用效率比较低 | vtkPolyDataBooleanFilter | https://github.com/zippy84/vtkbool |
CGAL | 计算机图形处理库 | 计算速度最快,稳定性比VTK稍强,cpu利用效率中等 | corefine_and_compute_difference | https://www.cgal.org/download.html |
Cork(使用的最为广泛) | Blender设计;建筑;CloudCompare,开源的几何处理库生物医学领域 | 计算速度很快,比CGAL慢,比libigl封装的CGAL快,稳定性较好,不会崩(遇到not solid的物体)程序不会崩,但是无法结束,使用的内存一直递增,原始版本为单核计算,CPU利用率较低。 | compute Differencec omputeUnionc omputeIntersection |
原始版本-https://github.com/gilbo/cork 多线程版本-https://github.com/stephanfr/Cork Blender版本-https://github.com/dfelinto/cork-on-blender |
libigl | 计算机图形处理库 | 计算速度比较快,稳定性比较强,CPU利用率100% | igl::copyleft::cgal::mesh_boolean igl::copyleft::cork::mesh_boolean |
https://github.com/libigl/libigl |
MEPP2 | 计算机图形处理库,处理3D 格和点云的数据库 | 类似于Cork,计算速度较快,稳定性较好 | https://projet.liris.cnrs.fr/mepp/mepp2/index.html | |
QuickCSG(免费但是不公开代码) | 专门处理 格布尔运算的库,只有exe程序,不公开源代码 | 计算速度非常快,稳定性非常好,非封闭的曲面也可以进行计算,但是生成的曲面碎片化比较明显 | http://morpheo.inrialpes.fr/static/QuickCSG/ | |
trimesh | 计算机图形学库,布尔运算使用的是OpenSCAD和Blender作为后端 | base.intersection(cuts, engine=‘scad’) | https://github.com/mikedh/trimesh | |
Cassiopee | CFD图形处理库,用于 格的布尔运算 | http://elsa.onera.fr/Cassiopee/Userguide.html |
Cork的评价
Cork的需要输入的模型为Solid的,也就是 格模型需要是流形的,对非流形 格( non-manifold)非常敏感。流形 格包含两个情况,自相交的和非封闭的。可以使用CGAL将非流形 格转为流形 格,(需要注意CGAL不能加载部分off文件,而meshlab、MEPP等软件可以加载)Cork的多线程版本比原始版本稳定性稍低些,需要线程无法结束导致崩溃的问题。多线程版本的计算时间减少70%左右,运行消耗的内存空间提升为原始版本的3倍左右,并行效率较好。
多线程版本
QuickCSG的效果与评价
前几次的运算,效果比较好,运算速度非常快,不到1S,生成的 格(绿色区域)也比较好
文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树服务 格(istio)ServiceMesh介绍8859 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!