我有代码:
glBindTexture( GL_TEXTURE_2D, texture );
glBindBuffer(GL_ARRAY_BUFFER, triangleVBO);
glBufferData(GL_ARRAY_BUFFER, sizeof( vertices ), vertices , GL_STATIC_DRAW);
glVertexPointer(3, GL_FLOAT, 0, NULL);
glEnableClientState(GL_VERTEX_ARRAY);
glBindBuffer(GL_ARRAY_BUFFER, coordsVBO);
glBufferData(GL_ARRAY_BUFFER, sizeof( texcoords ), texcoords , GL_STATIC_DRAW);
glTexCoordPointer(2, GL_FLOAT, 0, NULL);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glDrawArrays(GL_QUADS, 0, sizeof(vertices) / sizeof(float) / 3);
我很困惑为什么四边形画得很好,但纹理根本没有被映射。
将部分展开到glTexCoord2f
和glVertex3f
的调用非常有效,所以我只能假设我的纹理绑定有问题。
texcoords正在初始化:
GLfloat texcoords[] = { 1.0, 0.0
, 1.0, 1.0
, 0.0, 1.0
, 0.0, 0.0
, 0.0, 0.0
, 0.0, 1.0
, 0.0, 1.0
, 0.0, 0.0
, 1.0, 0.0
, 1.0, 1.0
, 0.0, 1.0
, 0.0, 0.0
,1.0, 0.0
,1.0, 1.0
,1.0, 1.0
,1.0, 0.0
, 1.0, 1.0
, 1.0, 1.0
, 0.0, 1.0
, 0.0, 1.0
, 1.0, 0.0
, 1.0, 0.0
, 0.0, 0.0
, 0.0, 0.0 }
现在保持不变,它与我的顶点数组具有顶点三元组的对数相同。
我正在获取GL_NO_ERROR并且所有面部都被着色为初始调用glColor3f(0.9f, 0.1f, 1.0f);
知道我可能缺少什么吗?