3D网格布尔运算开源库

3D网格布尔运算开源库

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

常用的开源库

开源库的名称 应用范围 实验结果 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,生成的网格(绿色区域)也比较好

但是,第四次运算的时候,出现断面的情况,生成的网格面与原始网格面并不相连接

3D网格布尔运算开源库相关推荐

  1. OpenPCDet:点云3D目标检测开源库

    本文转载自知乎,已获作者授权转载. 链接:https://zhuanlan.zhihu.com/p/152120636 随着自动驾驶与机器人技术的不断发展,基于点云表征的3D目标检测领域在近年来取得了 ...

  2. 可以直接使用的4轴插补算法库,不是丢给你一堆grlb或者写字机或者3d打印的开源代码,本运控库上项目级别的

    可以直接使用的4轴插补算法库,不是丢给你一堆grlb或者写字机或者3d打印的开源代码,本运控库上项目级别的,需要添加在自己的项目中,不支持gm码,只有运动控制核心代码,可以添加在自己项目中的,stm3 ...

  3. 开源项目推荐:3D点云处理开源库PCL/Cilantro/Open3d/Easy3D/PDAL/LAStools

    PCL Point Cloud Library是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库,它实现了大量点云相关的通用算法和高效数据结构,涉及到点云获取.滤波.分割.配准.检索 ...

  4. Android炫酷的3D球型标签云开源库 3dTagCloudAndroid 的使用

    Android炫酷的3D球形标签云开源库 3dTagCloudAndroid 的使用 文章目录 Android炫酷的3D球形标签云开源库 3dTagCloudAndroid 的使用 学习过程 使用体会 ...

  5. CSG网格布尔运算 笔记

    文章目录 1 前言 2 报错调试 2.1 错误1 3. CSG 1 前言 CSG是一个C++开源库,用于3D网格的布尔运算 使用这个库的最初目的不是为了建模,而是为了投机取巧实现网格模型的切割操作,但 ...

  6. Kimera:一个基于度量语义的SLAM开源库

    标题:Kimera:an Open-Source Library for Real-Time Metric-Semantic Localization and Mapping 作者:Antoni Ro ...

  7. Android开源项目以及开源库集合(持续更新中)

    UI Awesome-MaterialDesign – MaterialDesignCenter改名为Awesome-MaterialDesign,优化了布局,新增了不少库. awesome-andr ...

  8. Android开发:开源库集合

    开源库大全 目录 抽屉菜单 ListView WebView SwitchButton 按钮 点赞按钮 进度条 TabLayout 图标 下拉刷新 ViewPager 图表(Chart) 菜单(Men ...

  9. Github安卓流行布局开源库

    抽屉菜单 MaterialDrawer ★7337 - 安卓抽屉效果实现方案 Side-Menu.Android ★3865 - 创意边侧菜单 FlowingDrawer ★1744 - 向右滑动流动 ...

最新文章

  1. C 关于使用异或运算操作概述
  2. Squirrel的安装(windows上Phoneix可视化工具)
  3. MATLAB实现直方图均衡化与规定化
  4. 死磕Java并发:J.U.C之Condition
  5. C++运行库 Neptune C++ Runtime Library(xbmc)
  6. WCF自定义地址路由映射(不用svc文件)
  7. 牛客 - 字典序(思维)
  8. C#中使用jieba.NET、WordCloudSharp制作词云图
  9. 计算机2级什么时间考,全国计算机2级考试什么时间出成绩单
  10. 最全SSH命令 - 11种用法
  11. [150529](必看)档案挂靠与打回生源地、暂缓的对比 (广州)
  12. mysql什么时候产生临时表_什么时候会用到临时表?MySQL临时表的使用总结
  13. 波士顿房价预测实验报告
  14. Android:开发中,代码被横线划掉是什么意思
  15. AE PR模板基本图形预设素材包动态字幕文字标题排版动画预设效果
  16. 工作邮箱怎么注册?企业邮箱有哪些功能?
  17. fastcgi pass php-fpm,nginx: fastcgi_pass的配置
  18. 如何判断一个String字符串不为空或这不为空字符串
  19. 给一些女生提供公司常用的英文女生名字。分别从A-Z
  20. 小白站长是如何战胜注册机攻击的?

热门文章

  1. python中全局变量和局部变量的区别_Python全局变量与局部变量区别及用法分析
  2. 2018年高薪专业排名,信息安全居榜首
  3. 基于模型的测试用例设计(1)
  4. Jenkins使用笔记
  5. win10网络没计算机,win10电脑没有网络适配器怎么办
  6. SLA(服务等级协议)
  7. Nginx-简介及安装
  8. linux如何清理文件系统,五款最佳Linux文件系统清理工具
  9. [通讯录导入工具] [iPhone+安卓]如何将.CSV通讯录导入安卓手机和苹果手机,下面教你方法
  10. 图片上传接口的实现 记录一下,方便自己以后查看。