【发布时间】:2013-10-05 20:06:04
【问题描述】:
我正在寻找一个 C++ 库来对任意 3D 网格进行三角剖分。最好是开源的,但至少可以免费用于商业用途(所以CGAL 几乎是不可能的)。
我查看了GTS,但它是用 C 编写的(C 与 C++ 兼容吗?),它很旧,而且二进制文件适用于 Debian 平台(我需要可以在 VC++ 2008 中编译的 Windows 二进制文件或源代码)。
任何帮助将不胜感激。
另外:
如果可以使用 2D 多边形三角剖分库,例如 polypartition 或 poly2tri 通过分别对每个面进行三角剖分,我可以保证每个面都保持在自己的平面上(每个面都是平的,所有顶点都在同一平面)并且没有孔。我不确定如何将面部的 3D 旋转转换为 2D 空间;我假设您需要使用面部的法线。如果您要分别对每个面进行三角剖分,我也不确定是否可以轻松地将生成的 2D 顶点合并回 3D 网格中。
【问题讨论】:
-
您需要对开源进行定义(CGAL 是 LGPL 和 GPL 的混合体),您可能想要一个没有 copyleft 的许可证。是的,C 是兼容的。
-
我说它可以是开源的,或者至少可以免费用于商业用途。我原以为这意味着它可以是开源的或只是二进制文件,但必须免费用于商业用途。而且 CGAL 不是(据我所知)免费用于商业用途。另外,什么是copyleft?你只是幽默还是与版权不同?
-
啊,一个快速的谷歌告诉我什么是 copyleft。好笑,以前没听说过。是的,我想要一个没有 copyleft 的许可证。
-
我了解,只要您提供软件的源代码,CGAL 就可以免费用于商业用途。
-
我想你现在解决了你的问题,但是将你的脸上顶点的 2D 坐标(由点和法线定义的平面)转换为 3D 坐标,并从 3D到二维。
标签: c++ 3d open-source triangulation