移除封闭网格上的遮挡面

Fed*_*ico 5 language-agnostic algorithm mesh filter computational-geometry

我需要删除一些封闭的三角形网格内的隐藏面.我找到了一种使用MeshLab的方法,但有两个问题:1)文章说在某些情况下可能会失败(你可以在哪些情况下成像?)和2)我想以编程方式进行(你知道任何现有的实现吗?).我甚至不知道这种简化过滤器的名称.

我真的很感激任何提示.

grz*_*zkv 2

最明显的(但几乎肯定不是最有效的)算法如下:

  1. 考虑网格中的一个三角形。在三角形的三个顶点和相机点之间绘制三条线。(如果相机无限远,只需考虑视点方向)。
  2. 如果所有绘制的线都与三角形表面相交,则不显示所考虑的三角形。如果只有其中一些这样做,则部分显示三角形。
  3. 对网格中的所有三角形重复此操作。