我知道如果我创建一个带有顶点数组的立方体,我可以通过使用索引数组重用顶点(立方体的8个顶点,然后是36个索引的数组(立方体每侧两个三角形))。这在传递给glDrawElements时可以正常工作。
然而,我不清楚的是如何处理纹理坐标。是否有一种等效的方法可以传递一个简化的纹理坐标列表(对于我的立方体来说也是8个)以及一个指导OpenGL的索引,或者我还需要采用其他方法吗?
我正在使用固定管道,所以我不能使用着色器。
答案 0 :(得分:1)
即使使用着色器,您也需要在缓冲区中将位置和纹理坐标相互匹配;换句话说,如果位置在索引0处,则纹理坐标必须也在索引0
你可以打开纹理,这样你就可以重用一些顶点,但是你将无法重复使用所有顶点。如果你没有做任何特殊的展开,你需要有6 * 4 = 24个顶点,这仍然要好于36