从三维三角网格重建曲面

时间:2012-06-09 03:39:32

标签: mesh 3d-reconstruction

我有一个3D模型,它由三维三角网格组成。我想将网格划分为不同的组。每组代表一个表面,例如平面,圆柱面。这就像表面识别/重建。

输入是一组3D三角网格。输出是每个表面的网格分割。

有没有符合我要求的图书馆?

2 个答案:

答案 0 :(得分:1)

如果你想进行大量的网格处理,那么点云库是一个好主意,但我也建议CGAL:http://www.cgal.org用于更多算法和针对网格的结构加载。

最后,您描述的问题最容易自行解决:

  1. 枚举所有顶点
  2. 枚举所有多边形
  3. 创建一个整数数组,其大小与“大”网格中的顶点数一致,初始化为0.
  4. 创建一个整数数组,其大小为“大”网格中的多边形数量,初始化为0.
  5. 将计数器初始化为0
  6. 对于网格中的每个多边形,查看其顶点以及每个多边形在数组中的值。 如果每个顶点的值为零,则增加计数器并相应地分配给顶点数组和多边形数组中的每个值。 如果不是,则将具有较大数字的所有顶点和多边形重新标记为最小的非零数字。
  7. 使用查找表可以快速完成重新标记。 这可能会为您节省许多将代码连接到您不感兴趣的库的问题。

答案 1 :(得分:0)

您应该查看PCL库,它具有所有这些功能以及更多功能:http://pointclouds.org/