3D网格布尔运算开源库

3D网格布尔运算开源库

3D网格布尔运算开源库

网格的布尔运算广泛应用于建筑、医学导航软件、游戏和电影动画等应用场景中,3D模型的编辑软件,3D Max、Maya以及Blender就广泛应用网格的布尔运算于构建新的模型。

常用的开源库

开源库的名称应用范围实验结果BooleanOperation API下载地址
VTK生物医学领域计算速度中等,但是非常不稳定,cpu利用效率低vtkBooleanOperationPolyDataFilterhttps://vtk.org/download/
VTKbool生物医学领域计算速度很慢,比较稳定,cpu利用效率比较低vtkPolyDataBooleanFilterhttps://github.com/zippy84/vtkbool
CGAL计算机图形处理库计算速度最快,稳定性比VTK稍强,cpu利用效率中等corefine_and_compute_differencehttps://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
CassiopeeCFD图形处理库,用于网格的布尔运算http://elsa.onera.fr/Cassiopee/Userguide.html

Cork的评价

Cork的需要输入的模型为Solid的,也就是网格模型需要是流形的,对非流形网格( non-manifold)非常敏感。流形网格包含两个情况,自相交的和非封闭的。可以使用CGAL将非流形网格转为流形网格,(需要注意CGAL不能加载部分off文件,而meshlab、MEPP等软件可以加载)Cork的多线程版本比原始版本稳定性稍低些,需要线程无法结束导致崩溃的问题。多线程版本的计算时间减少70%左右,运行消耗的内存空间提升为原始版本的3倍左右,并行效率较好。
多线程版本
在这里插入图片描述
原始版本
在这里插入图片描述

QuickCSG的效果与评价

前几次的运算,效果比较好,运算速度非常快,不到1S,生成的网格(绿色区域)也比较好
在这里插入图片描述
但是,第四次运算的时候,出现断面的情况,生成的网格面与原始网格面并不相连接
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值