我为文件格式写了一个简单的阅读器COLLADA
,它似乎工作正常。现在,我有一个 Blender 导出的立方体网格,它是边缘分割和三角化的,所以它应该有 12 个三角形(每个面 2 个)、24 个顶点(每个面 4 个)和 36 个索引(每个面 6 个)。该网格还具有法线数据和 UV 贴图。
该COLLADA
文件有 24 个顶点、12 个法线和 36 个 UV,所以我假设法线是每个三角形的,UV 是每个索引的。三角形的polylist
计数是 12,这是正确的,并且vcount
有 12 个 '3',所以这也是正确的。现在,<p>
索引列表有 108 个条目,其中 0、3、6 等是顶点索引,1、4、7 等是普通索引,2、5、8 等是 UV 索引。
我有一个用于顶点的内部结构,它由位置 ( vec3
)、法线 ( vec3
) 和 UV 坐标 ( vec2
) 组成。为了绘制网格,我使用 OpenGL 的顶点缓冲区,并有一个单独的索引列表。
问题是,加载网格后我不应该有 24 个顶点吗?中的 108 个条目<p>
转换为 36 个顶点。索引有什么问题?
我可能在这里遗漏了一些非常简单的东西,但不能只是看到它。
COLLADA
文件在这里。