我需要删除封闭三角形网格内的一些隐藏面。我找到了一种使用MeshLab的方法,但有两个问题:1)文章说它在某些情况下可能会失败(你能想象在哪些情况下?)和 2)我想以编程方式进行(你知道任何现有的实现吗?)。我什至不知道这种简化过滤器的名称。
我真的很感激任何提示。
我需要删除封闭三角形网格内的一些隐藏面。我找到了一种使用MeshLab的方法,但有两个问题:1)文章说它在某些情况下可能会失败(你能想象在哪些情况下?)和 2)我想以编程方式进行(你知道任何现有的实现吗?)。我什至不知道这种简化过滤器的名称。
我真的很感激任何提示。
最明显的(但几乎可以肯定不是最有效的)算法如下:
你想要做的是一劳永逸地删除几何图形内的面。
如果您只想从 1 个方向查看对象,罗马人的解决方案可能是可以接受的。由于不可见的表面可能会变得可见,因此如果您旋转相机,这不是一个可接受的解决方案。
使用洪水填充适用于多维数组,但它也适用于 3D 坐标吗?由于曲面并不总是 (int) 并且具有除 (1,0,0)、(0,1,0) (0,0,1) 以外的其他倾斜度,因此在我看来,这种方法也不起作用。
算法可能失败的情况:计算的遮挡值告诉您曲面的顶点是否在对象内部。但是:尽管所有顶点都在对象内部,但表面的一部分仍可能显示出来。考虑一下:您有三个提升的对象,每个对象内部都包含一个顶点。虽然没有显示顶点,但它们之间的表面是部分可见的。
我自己无法帮助你,因为我也在寻找一种可以做到这一点的算法。
打招呼