我想将网格的三角形投影到2D曲面上。我想最小化失真,尽可能避免破坏连接的多边形,并最大化2D表面上的已用空间。

我试图寻找有关该主题的算法/论文,但我只能查找有关如何在Blender等3D建模软件中使用UV解包的文章。

#1 楼

UV展开是一个困难的话题。它们既可以是组合算法,也可以是变分方法,但通常它们都是基于优化的,即,您设置一个优化问题,然后使用一些数值优化求解器对其进行求解。我将为您提供一些名称和一些最终可以使用的库。我会给您几个名字(包括经典名称和较新名称),您可以自己看看。 ABF(基于角度的展平),LSCM(最小二乘保形贴图),ARAP(尽可能刚性),BFF(边界优先展平),变表面切割,OptCuts。

对于ARAP和LSCM,您可以使用libigl。边界第一次展平是几年前由Keenan Crane开发的。可变表面切割是对BFF的改进。我最近发现了OptCuts。该代码可用,您可以自己运行它们。

如果您想从头实现它们,则需要通读论文以了解它们的工作原理(不容易,参数化很困难学科)。但是,如果您只想运行它们,则只需克隆存储库并自己尝试即可。
(libigl随附于教程,其中两个与ARAP和LSCM有关)。 BFF,Varativeal Surface Cutting和OptCuts具有基于GUI的应用程序,因此您可以看到展开的内容,并且如果需要在自己的代码中轻松地分离代码。

评论


$ \ begingroup $
不错的清单。我去年尝试了CGAL,但是是的,失真是个问题。
$ \ endgroup $
–霸王
20年6月13日在17:48

$ \ begingroup $
最近我已经使用了很多。 CGAL实现哪种算法?
$ \ endgroup $
–user8469759
20年6月13日在17:54

$ \ begingroup $
doc.cgal.org/latest/Surface_mesh_parameterization/index.html
$ \ endgroup $
–霸王
20年6月13日在18:03

$ \ begingroup $
好的,我提到的一些食物也在那里吃过,很高兴知道。您是否偶然知道他们拥有哪种许可证?是GPL还是MIT,还是其他商业产品?
$ \ endgroup $
–user8469759
20年6月13日19:00

$ \ begingroup $
这真的很复杂:cgal.org/license.html
$ \ endgroup $
–霸王
20 Jun 14'8:24