3D体素角度平面

我试图从体素中画出一个平坦的表面,目标是让它充满,我遇到了很多麻烦 . 我尝试的所有东西都会在表面上形成洞 . 表面有4个角,但我也希望能够对三角形使用相同的方法 .

这是我尝试过的:

  • 从一个平行边到另一边绘制

  • 仅沿平面的一个方向(z方向)绘制

我用2获得了最大的成功,但是当我向飞机添加任何俯仰或滚动时(任何高度存在),它都失败了 .

有小费吗?没有代码,因为我确信我的实现都是正确的,只是算法的选择是错误的 .

编辑:

另一方面,虽然数字2的孔数较少,但是这些平面是扭曲的并且看起来并不平坦 .

EDIT2:

我坚持我的第一个决定,但现在的问题是,我如何检测何时会有一个洞?通过观察我注意到,无论俯仰和滚动,每个平面都有相同数量的孔 . 偏航是这里的罪魁祸首 .

EDIT3:

我要离开这个问题,但我决定只测试一个附近的街区,看看它是否空了 . 我不想这样做,但是 . 如果你有一个更优雅的解决方案,我会全神贯注 .

回答(1)

3 years ago

一架无限的飞机没有角落 . 你在谈论四边形多边形吗?它有方角吗?

对于一个多边形,我肯定会从一个三角形开始,因为你可以用三角形构造任何其他多边形,而不是相反 .

然后,填充三角形的良好开端可能是对是否应该填充给定体素进行准确测试 . Here是两个不同的三角形测试的例子 .

完成后,您可以以不同的方式进行 . 例如,虽然不是最有效的,但您可以从中心区域增长,测试每个相邻的体素并使用堆栈递归 .