3D体素角度平面

时间:2012-05-27 19:40:55

标签: java algorithm voxel

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

这是我尝试过的:

  • 从一个平行边绘制到另一边
  • 沿着平面的一侧仅沿一个方向(z方向)绘制

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

任何提示?没有代码,因为我确信我的实现都是正确的,只是算法的选择是错误的。

编辑:

另一方面,尽管2号洞的洞数较少,但飞机失真并且看起来并不平坦。

EDIT2:

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

EDIT3:

我正在离开这个问题,但我决定只是测试附近的一块,看看它是否为空。我不想这样做,但是。如果你有一个更优雅的解决方案,我会全力以赴。

1 个答案:

答案 0 :(得分:1)

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

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

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

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