三维三角剖分算法

时间:2010-06-28 20:36:27

标签: algorithm mesh maya triangulation quad

有人知道Maya使用的三角测量算法吗?缺乏这一点,尝试最可能的算法是什么?我尝试了几个简单的头顶(最短/最长的边缘,最小的最小角度,最小/最大面积),但他们都错了。 Delaunay是最合理的算法吗?

编辑:顺便说一下,关于如何在3D空间中为2D四边形实现Delaunay以生成两个三角形的伪代码非常受欢迎!

编辑2 :不幸的是,this不是3D空间的答案(仅适用于2D)。

4 个答案:

答案 0 :(得分:2)

我不想再次猜测人们的意图,但如果您只是试图摆脱Maya,在视口中显示的内容,您可以从MItMeshPolygon::getTriangles开始提取Maya的三角测量。

(相应的法线和顶点颜色可以直接访问。紫外线需要更多的努力 - 我不记得细节(我的所有Maya代码都是我的前雇主)但是乍一看它可能看起来像你没有数据,事实上它就在那里,只是不方便。)

(还有一点需要注意 - 如果您的艺术家们努力尝试,他们可以创建在调用getTriangles时使Maya崩溃的多边形,即使它们渲染正常并且可以使用UI进行操作。几个月,所以值得记住,但可能不值得担心太多。)

如果您不想使用API​​或Python,然后在导出之前运行polyTriangulate,那么之后undo(以获取原始多边形)将允许您检查三角网格。 (您可能希望或需要将场景保存到临时文件,然后重新加载它并使用file将旧名称返回给它,如果您的导出过程执行难以或无法撤消的内容。)< / p>

这有点hacky,但你保证得到Maya正在使用的确切三角测量。比编写自己的三角测量代码更容易,而且几乎可以肯定比尝试解决Maya在内部做的更容易......

答案 1 :(得分:1)

您可以尝试一下Henrik Zimmer查看Voronoi and Delaunay Techniques。我不知道Maya是否使用它,但是本文描述了一些常用的技术。

答案 2 :(得分:1)

Jonathan Shewchuk有一个非常流行的2D三角测量工具叫做Triangle,很快就会出现3D版本。他还有一些关于这个主题的论文可能有用。

答案 3 :(得分:0)

Here你可以找到一个小程序,演示增量,礼品换行,分而治之和QuickHull算法计算3D中的Delaunay三角剖分。提供了每种算法的指针。