【实用工具】利用MeshLab进行模型数据的合并

数据准备

利用Blender构建两个模型,一个立方体Cube、一个圆柱体Cylinder,相同视角。

模型操作

打开MeahLab软件,按照下面流程进行操作。

【Filters】-->【Mesh Layer】-->【Mesh Booleans:Union】

将它们"合并"成一个统一的实体,同时处理重叠、相交部分,生成一个新的、拓扑正确的网格。

具体弹出对话框。

参数解释:
First mesh :选择参与布尔运算的第一个输入网格对象。
Second mesh :选择参与布尔运算的第二个输入网格对象。
Transfer系列选项:

Name 功能描述 适用场景
Transfer face color 将面片颜色从输入网格传递到输出网格 需要保留材质、或分区着色
Transfer vertex color 将顶点颜色从输入网格传递到输出网格 原始模型中有顶点着色(如热力图)
Transfer face quality 传递面片质量值(如曲率、误差等) 当进行网格分析时使用
Transfer vertex quality 传递顶点质量值 当进行网格分析时使用

注意:两个网格必须是封闭的流形体(watertight manifold),否则布尔运算可能失败或者产生错误结果。

生成的结果如下:

后记

但是,我这里用Blender生成的cube和cylinder,经过MeshLab的Compute Geometric measures,结果显示都不是watertight的,而且无法直接得到几何体的体积。但是,这里的模型合并又能够进行,且生成新的合并模型union体积和面积都是正确的。所以,问题出在哪里呢?


相关推荐
大布布将军12 小时前
Vue 3 的“降维打击”:Composition API 是如何让 Mixin 成为历史文物的?
前端·javascript·vue.js·程序人生·面试·前端框架·学习方法
郝学胜-神的一滴12 小时前
Linux信号捕捉的特性详解
linux·服务器·开发语言·c++·程序人生
大布布将军1 天前
一种名为“Webpack 配置工程师”的已故职业—— Vite 与“零配置”的快乐
前端·javascript·学习·程序人生·webpack·前端框架·学习方法
小清兔1 天前
一个unity中URP的环境下旋转天空盒的脚本(RotationSky)
开发语言·数据库·学习·程序人生·unity·c#·游戏引擎
立志成为大牛的小牛2 天前
数据结构——五十四、处理冲突的方法——开放定址法(王道408)
数据结构·学习·程序人生·考研·算法
郝学胜-神的一滴3 天前
Python的内置类型:深入理解与使用指南
开发语言·python·程序人生
郝学胜-神的一滴3 天前
Linux信号集操作函数详解
linux·服务器·开发语言·c++·程序人生
承渊政道3 天前
C++学习之旅【C++基础知识介绍】
c语言·c++·学习·程序人生