我在纹理每个面具有不同纹理的立方体时遇到了问题。我可以在所有面上绘制一个纹理的立方体,但是当我尝试使用多个纹理时,它会失败。的方式即时通讯试图做的是像这样:OpenGL es 2.0 glDrawElements索引指针错误
//my indexing array located in a header file
#define NUM_IMAGE_OBJECT_INDEX 36
static const unsigned short cubeIndices[NUM_IMAGE_OBJECT_INDEX] =
{
0, 1, 2, 2, 3, 0, // front
4, 5, 6, 6, 7, 4, // right
8, 9,10, 10,11, 8, // top
12,13,14, 14,15,12, // left
16,17,18, 18,19,16, // bottom
20,21,22, 22,23,20 // back
};
现在
在我的渲染功能,这个目前是与一个单独的贴图绘制立方体
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, iconTextureID);
glDrawElements(GL_TRIANGLES, NUM_IMAGE_OBJECT_INDEX, GL_UNSIGNED_SHORT, 0);
这不起作用
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, iconTextureID);
glDrawElements(GL_TRIANGLES, NUM_IMAGE_OBJECT_INDEX, GL_UNSIGNED_SHORT, (const GLvoid*)&cubeIndices[0]);
它应该等同于相同的东西,从看一些其他的例子。最终我想这样做是这样的:
for(int i = 0; i < 6; i++){
iconTextureID = textureID[i];
glBindTexture(GL_TEXTURE_2D, iconTextureID);
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, (const GLvoid*)&cubeIndices[i*6]); //index 0-5 use texture 1, 6-11 use texture 2, etc
}
有没有人知道什么可能是错误的这种索引? ive基本上复制粘贴这个代码从一个Android项目(工程),目前试图做到这一点在iOS上。
“*香港专业教育学院基本上是复制粘贴从Android项目(工作)的代码,目前正在努力做到这一点关于ios。*“请停止复制粘贴代码。试着*了解*代码在做什么,*为什么*该代码在该项目中是合适的。 –