去除封闭网格上的遮挡面

我需要删除封闭的三角形网格内的一些隐藏面。我找到了一种使用MeshLab进行操作的方法,但是有两个问题:1)文章说在某些情况下它可能会失败(您能在哪种情况下成像吗?)和2)我想以编程方式进行操作(您知道任何现有的实现吗?)。我什至不知道这种简化过滤器的名称。 我真的很感谢任何提示。     
已邀请:
最明显的算法(但几乎肯定不是最有效的算法)如下: 考虑网格中的一个三角形。在三角形的三个顶点和相机点之间绘制三条线。 (如果相机无限远,请考虑视点方向)。 如果所有绘制的线都与三角表面相交,则不要显示所考虑的三角形。如果只有其中一些,则部分显示三角形。 对网格中的所有三角形重复上述步骤。     
您要做的是一劳永逸地删除几何图形中的面。 如果只想从1个方向看物体,则可以使用罗马式解决方案。 由于不可见的表面可能会变得可见,因此如果旋转相机,则不可接受。 使用Floodfill可处理多维数组,但也可用于3D Koordinates吗?由于曲面并非总是(int)并且具有除(1,0,0),(0,1,0)(0,0,1)以外的其他倾斜度,因此我认为这种方法也不起作用。 该算法可能失败的情况: 计算出的遮挡值可以告诉您表面的顶点是否在对象内部。但是:尽管所有顶点都在对象内部,但无论如何表面的一部分仍可能显示。 考虑一下:您有三个提升的对象,每个对象内部都包含一个顶点。虽然未显示顶点,但它们之间跨越的表面是部分可见的。 我自己无法帮助您,因为我也在寻找一种可以做到这一点的算法。 打招呼     

要回复问题请先登录注册