【发布时间】:2021-08-25 19:15:55
【问题描述】:
在一些模拟程序中,我们根据点生成对象表面,每个点都有 3D 坐标和表示该点表面法线的向量。出于可视化目的,我们想生成一个由三角形组成的网格;每三个闭合点与其法线形成一个三角形。然后我们可以将此信息发送到一些标准的可视化程序,这些程序可以像 VMD(视觉分子动力学)一样渲染表面。
我们想知道哪种算法是最快/可用的算法。
【问题讨论】:
标签: algorithm geometry point mesh
在一些模拟程序中,我们根据点生成对象表面,每个点都有 3D 坐标和表示该点表面法线的向量。出于可视化目的,我们想生成一个由三角形组成的网格;每三个闭合点与其法线形成一个三角形。然后我们可以将此信息发送到一些标准的可视化程序,这些程序可以像 VMD(视觉分子动力学)一样渲染表面。
我们想知道哪种算法是最快/可用的算法。
【问题讨论】:
标签: algorithm geometry point mesh
看看Jonathan Shewchuk 的工作,尤其是他(和他的同事)著名的论文和实现:
在点云库 (PCL) 中还可以快速实现未排序的点云。在Fast triangulation of unordered point clouds 上查看他们的演示文稿。
【讨论】:
gp3.reconstruct (triangles) —— 可惜演示中没有揭示这种魔力。
请注意,Delaunay 三角剖分可能不适合您的应用,因为 Delaunay 三角剖分不适合真正的 3D 问题(即 R3 中的点分布良好)。它们更适合二维流形问题(即地形等)。
要在 R3 中生成表面,请查看 Hugues Hoppe 的工作和他的“表面重建”工作。
表面重建用于寻找网格表面以拟合点云;但是,这种方法会产生高三角形计数。如果这是一个问题,您可以应用网格减少技术来减少多边形数量,从而最大限度地减少错误。例如,您可以查看 OpenMesh 的抽取方法。
【讨论】: