【问题标题】:Plotting a 3d triangular mesh from point cloud从点云绘制 3d 三角形网格
【发布时间】:2017-12-15 20:56:16
【问题描述】:

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

我的对象是点坐标的 numpy 数组。我希望为这个对象生成一个 3d 三角形网格,如果你能减少三角形的数量,那就太好了。

我已经尝试过 scipy.spatial.Delaunay,但它不会为 3d 对象生成三角形。

【问题讨论】:

    标签: python 3d mesh triangulation pyopengl


    【解决方案1】:

    双轮廓在这里可能会很好用,它是一种将体素化数据转化为网格的算法。我不太明白在这里概述它,但基本上你会把你的点数组放入一个 3D 网格数组中,如果该网格单元包含一个点,它被设置为等于 1(满),如果它不是设置为 0(空),然后你会在这个网格上运行 DC 算法,它会输出一个网格。这个算法的好处是它支持内腔和凹形。

    以下是我发现的一些链接,如果您决定使用 DC,可能会对您有所帮助:

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

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

    【讨论】:

    • 感谢您的回答。我必须自己实现还是可以在某处找到预制模块或函数?
    猜你喜欢
    • 2020-12-15
    • 1970-01-01
    • 2012-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-27
    • 2020-01-13
    • 1970-01-01
    相关资源
    最近更新 更多