iPhone OpenGL-ES:将纹理添加到立方体的一个面上

时间:2010-12-03 00:59:15

标签: iphone opengl-es

建立一个3D环境,到目前为止,我已经完全纹理化立方体和彩色立方体。我想要做的是在其中一个彩色立方体面上添加纹理

glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_BYTE, &colourCubeVertexFaces[0]);

glColor4ub(colourCubeFaceColors[colorIndex], colourCubeFaceColors[colorIndex+1], colourCubeFaceColors[colorIndex+2], colourCubeFaceColors[colorIndex+3]);glColor4ub(colourCubeFaceColors[colorIndex], colourCubeFaceColors[colorIndex+1], colourCubeFaceColors[colorIndex+2], colourCubeFaceColors[colorIndex+3]);
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_BYTE, &colourCubeVertexFaces[6]);
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_BYTE, &colourCubeVertexFaces[12]);
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_BYTE, &colourCubeVertexFaces[18]);
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_BYTE, &colourCubeVertexFaces[24]);

我认为这就像打开(和关闭)一样简单

glEnableClientState(GL_TEXTURE_COORD_ARRAY);

然后绑定纹理

glBindTexture(GL_TEXTURE_2D, ([[coordsArray objectAtIndex:4] floatValue]));

然后绘制

glTexCoordPointer(2, GL_FLOAT, 0, texturedCubeCoord);

但它似乎放慢了很多而没有显示任何东西。我的其他完全纹理的立方体很好。

1 个答案:

答案 0 :(得分:1)

你需要glEnable(GL_TEXTURE_2D)