Opengl 这个gltf文件中框的索引是如何工作的?

Opengl 这个gltf文件中框的索引是如何工作的?,opengl,gltf,Opengl,Gltf,因此,根据我的理解,如果我想使用索引三角形渲染长方体,我需要8个顶点(对于8个角点)和36个索引(长方体有6条边,每边2个三角形,每三角形3个索引,6*2*3=36) 请考虑找到的GLTF文件。这是一个正确的文件,我可以看到适当数量的顶点和索引。不过,指数如下: [0, 1, 2, 3, 2, 1, 4, 5, 6, 7, 6, 5, 8, 9, 10, 11, 10, 9, 12, 13, 14, 15, 14, 13, 16, 17, 18, 19, 18, 17, 20, 21, 22,

因此,根据我的理解,如果我想使用索引三角形渲染长方体,我需要8个顶点(对于8个角点)和36个索引(长方体有6条边,每边2个三角形,每三角形3个索引,6*2*3=36)

请考虑找到的GLTF文件。这是一个正确的文件,我可以看到适当数量的顶点和索引。不过,指数如下:

[0, 1, 2, 3, 2, 1, 4, 5, 6, 7, 6, 5, 8, 9, 10, 11, 10, 9, 12, 13, 14, 15, 14, 13, 16, 17, 18, 19, 18, 17, 20, 21, 22, 23, 22, 21]

如果我读对了。我认为这些数字永远不会超过7(因为只有8个顶点需要索引)。我是否错误地读取了文件,或者该索引是如何工作的?

您确实正确地读取了文件。但立方体没有8个顶点。它有24个。这是因为,除了存储位置数据外,它们还存储数据。OpenGL允许单个索引,即位置、法线、tangets等不能单独索引。这意味着需要复制一些顶点,以便能够正确索引。这一点解释得很好。

“因为只有8个顶点需要索引”不,在这个模型中,有24个顶点,这也正是具有法线的立方体所期望的。谢谢,第二个链接(特别是“共享与分离”部分)与derhass的评论相结合,真的很有帮助。如果有人遇到同样的问题,请查看这些问题。