数据准备
利用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体积和面积都是正确的。所以,问题出在哪里呢?

