我想把我的网格的三角形投射到一个2D表面。我想最小化的距离,避免打破连接的多边形,如果可能的话,也最大限度地利用在2D表面上的空间。
我试着寻找关于这个主题的算法/论文,但是我只能找到关于如何在像Blender这样的3D建模软件中使用UV展开的文章。
发布于 2020-06-11 15:28:46
紫外线展开是一个困难的话题。它们既可以是组合算法,也可以是变分方法,但通常它们都是基于优化的,即建立一个优化问题,然后使用数值优化求解器解决它。我只是给你一些名字和一些库,你最终可以使用。我会给你几个名字(包括经典的和最近的),你可以自己看看。基于角度的平面化( ABF ),最小二乘共形映射( LSCM ),ARAP (尽可能刚性),边界优先平坦( BFF ),变分曲面切割,OptCuts。
对于ARAP和LSCM,可以使用libigl。边界第一平坦是基南鹤几年前开发的。变分曲面切割是对BFF的改进。我最近发现了OptCuts。代码是可用的,您可以自己运行它们。
如果您想从头开始实现这些文件,您需要阅读这些文件以了解它们是如何工作的(这不是一件容易的事情,参数化是一个困难的课题)。但是,如果你只想运行它们,只需克隆repos并自己尝试。(libigl附带教程,其中两个是关于ARAP和LSCM的)。BFF,变分曲面切割和OptCuts有一个基于图形用户界面的应用程序,所以你可以看到展开,你可以很容易地隔离代码,如果你需要他们在你自己的代码。
https://computergraphics.stackexchange.com/questions/9938
复制相似问题