重要提示:这个问题不是关于几何剔除(平截头体剔除、背面剔除、遮挡剔除或他们的任何朋友)。这个问题是关于设置时的几何消除,早在我们开始剔除和渲染之前。
在一个单位立方体渲染的世界(la MineCraft)中,我试图找到算法来从我的几何面列表中删除,无论相机在哪里,从任何角度都无法看到这些面。
例如,想象 2 个正方形:
+----+ +----+
| | | |
| | | |
+----+ +----+
显然有 8 个可见边(每个正方形 4 个。)现在我将正方形一起移动,可见:
+----+----+
| |
| |
+----+----+
而不是有 8 个面,现在我只有 6 个!中间相碰的那两个,无论相机放在哪里,无论面对什么角度,都看不到。(正方形的纹理不同,所以我们不能称它为 4 面。)
(同样的事情在 3D 中也适用于立方体,但 12 个面(每个立方体 6 个)在消除 2 个接触后变为 10 个。)
我的问题是:有哪些算法可以帮助我识别这些隐藏的面孔?(我很高兴自己做谷歌搜索,但我什至不知道这叫什么!)特别是,我正在寻找可以处理中间空心点的东西——如果你是的话,这些点可能是可见的但是,因为它们被几何图形包围,所以你看不到它们。
例如:
+----+----+----+----+
| |
| |
+ +----+ +
| | | |
| | A | |
+ +----+ +
| |
| |
+----+----+----+----+
在这种情况下,人们可能会认为有 18 个“可见”边,但因为我们知道相机位于几何图形之外,所以正方形“A”中的 4 个边不可见。
更复杂的是,我希望找到一种算法,可以在添加或删除块时快速更新(同样,la MineCraft。)
谢谢!