我需要一种算法来修复 3D 三角形网格。期望的条件是 2n 个三角形(大多数时候是 2 个三角形)共享一条边。相比之下,输入网格包含在边 2n+1 个三角形 (1,3,..) 的情况。我已经实施了一些启发式方法:
关闭的顶点(由于舍入错误)合并为一个。
如果之后新顶点可以与其他合理的顶点合并,则边界边会被分割。
孔被三角测量到某个区域阈值。
这对于许多输入都非常有效(我在稍后阶段关心自相交),但是有些网格在这些启发式方法中失败了。主要问题是修复边不是仅具有局部后果的决定:每个创建的三角形都会减少可用于后续修复步骤的边集。因此,只有一个错误的决定可能会导致一系列连续的错误。
这个问题似乎接近于曲面重建问题,但我已经拥有了大部分曲面,因此需要一种尊重现有三角形的部分重建算法。有任何想法吗?