非平面顶点边图的体素化

时间:2013-02-19 06:18:25

标签: algorithm data-structures graph voxel

我有一个3D图形描述为3D顶点列表和它们之间的边缘列表。为了帮助您可视化输入数据的外观,可以使用GL_LINES在opengl中轻松绘制图形,从而生成相当简单的3D对象的线框,如平截头体或类似顶点不完全共面的情况。

注意:这个偏斜的对象是一个单独进程的输出,它优化了一些变量而不考虑结果顶点的共面性,所以假设即使我想要也不能得到更清晰的输入。

我目前的方法主要涉及1)在图中找到所有近似平面的周期,2)使用这些周期的简单三角测量算法,然后最后3)使用奇偶规则对三角网格进行体素化以测试每个周期体素位于网格描述的体积内部或外部。该算法的结果并不完全稳健。有时体素网格中存在重大错误,我在解析方面没有太大成功。我相信第3步是正确的,所以我怀疑步骤1和2产生的网格是坏的(可能过于复杂)。

我希望有人能够建议我更好地解决这个我错过的问题。必须有一种更优雅的方法将顶点边缘图转换为三角形3D网格,但到目前为止我没有太多的运气搜索。

编辑:我正在添加一些图片来显示我正在处理的实际数据,以防它有助于澄清问题。

以下是输入图像。这是一张从一张纸上扫描的手绘线框草图。我在路口放了圆圈,以便我更容易识别真实的连接与偶然的交叉。

enter image description here

使用OpenCV,我确定2D中的连接,如下所示。

enter image description here

最复杂的步骤是使用一系列算法重建每个顶点的3D深度值。该算法完成后,输出将使用opengl呈现为行。你可以看到重建的3D物体是合理的,但显然是不完美的。

enter image description here

尽管存在明显的不完美之处,但我的最终目标是将重建的形状体素化。如前所述,我这样做的策略是为3D顶点图形创建一个三角形曲面,然后使用奇偶规则来确定哪些体素进出形状。

0 个答案:

没有答案
相关问题