如何在3D网格上查找连接的三角形

3
我有一个从3D应用程序(如Blender或Maya)导出的文件。我能够读取这些文件。最终得到了描述每个三角形的索引和顶点列表。
该文件可以具有多个连接网格,例如两个球体。 我想通过找到相连的三角形来选择单个网格。最好的方法是什么?可以使用哪些几何算法?有没有例子?它可以多线程吗?

这可能更好地通过在场景图中使网格成为单独的节点来实现,而不是在导出时将整个场景压缩为一个节点。 - samgak
真的。但我不能保证,因为我无法编写所有文件。我所能做的就是提取信息。3D软件包具有连接或链接选择命令。我想知道它们是如何实现的。 - user6682440
你所说的“connected”是指至少共享一个顶点还是相交?如果是前者,为每个顶点生成邻接信息(使用哈希?),然后从任意一个顶点开始遍历,标记已访问的顶点。 - samgak
是的,它们至少通过一个顶点相连。谢谢,我会尝试一下。这个主题有没有相关文献? - user6682440
2个回答

4
你需要的是一个图形解决方案。将所有数据取出后,将顶点变为图中的节点,通过边连接顶点,将节点链接在图中。在其上运行DSF/BFS算法,并标记所有访问的节点。所有标记的节点属于同一对象。从未标记的节点重新开始运行算法,以查找其他对象。如果您认为这样更容易,可以并行构建图形,但您也应该能够使用几何数据完成它。

0
一个图形解决方案,但是使用三角形作为节点,相邻的边作为节点之间的连接。这可以作为最大团问题来解决。

不鼓励使用带有外部链接的简短答案,因为外部链接可能会更改。请确保您的帖子中包含关键细节。 - Simon.S.A.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接