4

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

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

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

4

4 回答 4

2

我不喜欢猜测人们的意图,但如果您只是想摆脱 Maya 视口中显示的内容,您可以从MItMeshPolygon::getTriangles.

(相应的法线和顶点颜色可以直接访问。UV 需要更多的努力——我不记得细节(我所有的 Maya 代码都在我的前雇主那里)但乍一看似乎你不记得有数据,其实都有,只是不方便。)

(进一步说明——如果你的艺术家足够努力,他们可以创建在调用 Maya 时崩溃的多边形getTriangles,即使它们渲染正常并且可以使用 UI 进行操作。这过去每隔几个月就会发生一次,所以值得一试介意,但可能不值得担心太多。)

如果您不想使用 API 或 Python,则polyTriangulate在导出之前运行,然后undo(返回原始多边形)将让您检查三角网格。(您可能想要或需要将场景保存到临时文件,然后重新加载它并使用file它来恢复它的旧名称,如果您的导出过程执行的操作很难或无法撤消。)

这有点 hacky,但你可以保证得到 Maya 使用的精确三角测量。这比编写自己的三角测量代码更容易,而且几乎可以肯定比尝试解决 Maya 内部所做的任何事情要容易得多……

于 2010-06-28T22:53:49.467 回答
1

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

于 2010-06-30T07:50:35.987 回答
1

您可以尝试查看 Henrik Zimmer 的Voronoi 和 Delaunay 技术。我不知道这是否是 Maya 使用的,但该论文描述了一些常用技术。

于 2010-06-28T21:51:12.880 回答
0

在这里,您可以找到一个小程序,该小程序演示了计算 3D 中的 Delaunay 三角剖分的增量、礼品包装、分而治之和 QuickHull 算法。提供了指向每个算法的指针。

于 2010-06-28T22:55:03.477 回答