从点云绘制三维三角网格

时间:2017-07-11 16:59:41

标签: python 3d mesh triangulation pyopengl

我有这个对象/点云,用pyopengl和pygame渲染。

enter image description here

我的目标是关键点的坐标数组。我希望生成这个对象的三维三角网格,如果你可以减少三角形的数量也会很好。

我尝试过scipy.spatial.Delaunay并且它不会为3d对象生成三角形。

1 个答案:

答案 0 :(得分:1)

Dual Contouring在这里可能运行良好,它是一种算法,可以获取体素化数据并将其转换为网格。我不明白这里要概括它,但基本上你会把你的点数组放到一个3D网格数组中,如果那个网格单元包含一个点,它被设置为等于1(完整),如果它不是设置为0(空),然后你会在这个网格上运行DC算法,它会输出一个网格。这个算法的好处是它支持内部空腔和凹形。

如果您决定使用DC,我发现这些链接可能对您有所帮助:

Basic Dual Contouring Theory http://ngildea.blogspot.com/2014/11/implementing-dual-contouring.html

这是我在Unity3D中实现此算法时使用的源代码的github repo: https://github.com/nickgildea/DualContouringSample