如何在保留初始拓扑的前提下从另一网格表面局部重建网格
网格局部重建:保留原始拓扑的补丁替换方案
- 核心约束:用高精度补丁网格替换初始水密三角网格的指定区域,必须保留原始网格的三角拓扑,仅允许修改补丁网格的拓扑;二者已对齐,且已完成原始网格目标区域的移除操作。
- 过往尝试问题:通过点云+泊松重建的方式会完全破坏原始网格的拓扑结构,不符合要求。
- 预期效果:保留蓝色的原始剩余网格拓扑,调整绿色补丁网格的拓扑,通过移除补丁边界部分面解决二者的少量重叠问题。
- 效果示意图1:蓝色原始网格(已移除补丁覆盖区域)与绿色补丁网格的对齐状态
- 效果示意图2:完成替换后的完整网格(原始拓扑保留,补丁与原始网格无缝衔接)
可行实现步骤
- 提取原始网格的边界环:获取原始网格被移除区域的边界顶点序列,确保这一环的拓扑结构完全保留。
- 裁剪补丁网格:基于原始边界环的范围,移除补丁网格中超出边界或重叠的面,得到与原始边界环匹配的补丁子网格。
- 边界匹配与拓扑调整:
- 找到补丁网格的边界顶点,通过最近邻或投影匹配的方式,将其与原始网格的边界环顶点一一对应。
- 调整补丁网格的三角面拓扑,使其边界与原始边界环的顶点序列完全吻合,确保衔接处的边和顶点完全对应。
- 合并网格:将调整后的补丁网格与原始剩余网格合并,形成新的水密网格(因原始网格已移除目标区域,补丁调整后边界匹配,合并后自然水密)。
工具推荐
可使用OpenMesh、CGAL等网格处理库实现相关操作:
- OpenMesh的边界遍历API可快速提取原始网格的边界环;
- CGAL的网格裁剪和拓扑调整工具可辅助完成补丁的适配修改。
内容的提问来源于stack exchange,提问作者Guillaume Besson
相关产品推荐
相关产品推荐

