问题描述
|
我正在编写一个python脚本,用于将3D模型文件从一种格式解析为另一种格式,并在存储顶点时发现问题。似乎同一顶点在不同的面上可能具有不同的UV。
在编写脚本时,我假设所有顶点都具有唯一的UV,但是现在看来这是一个错误的假设。
有一种通用的方法来存储面和顶点吗?
如果我有一个用于存储UV,法线和坐标的顶点字典(暂时不会再存储其他东西)以及一个包含一系列顶点的面的字典,那将是很好的向上,但是如果单个顶点在不同的面上具有不同的UV值,则将不起作用。
我一直在尝试避免存储每个单独的顶点(例如,将顶点与面一起存储,而不是对顶点进行引用),但是无法解决。
解决方法
如果顶点属于两个面之间的共享边,则需要存储两个面的纹理坐标。我通常将这些信息存储在三角形级别而不是顶点级别。