2011-05-31 106 views
0

我正在写一个python脚本,它可以将3D模型文件从一种格式分析到另一种格式,并在存储顶点时发现问题。似乎同一个顶点在不同的面上可能有不同的UV。3D模型:使用不同UV的顶点

写脚本时我假设所有的顶点都有独特的UV,但现在看起来像是一个错误的假设。

是否有通用的方法来存储面和顶点?

如果我有一个存储UV,法线和坐标的顶点字典(现在不会存储任何其他东西)以及包含构成顶点列表的面的字典如果单个顶点在不同的面上具有不同的UV值,它将不起作用。

我一直在试图避免存储每个顶点(比如用顶点存储顶点而不是引用顶点),但不能提出解决方法。

回答

1

如果顶点属于两个面之间的共享边,则需要存储两个面的纹理坐标。我通常将这些信息存储在不在顶点级别的三角形级别。

+0

我很害怕这种情况,因为我已经注意到有时候顶点会重复,并且具有相同的UV,所以我不想存储太多的副本。无论如何,我已经改变了我的存储方案,在每个网格中放置“面号”,然后存储每个面的顶点信息。 – MxyL 2011-05-31 12:43:10