我有一个 OpenGL 场景,制作为 VBO 和 IBO。我的 VBO 是一系列 3 个浮点数:x、y、z、x、y、z、x、y、z...除此之外,我还有一个由 3 个浮点数组成的颜色数组:r、g、 b,r,g,b,r,g,b...
我的目标是第一个顶点 (x=vertice[0], y=vertice[1], z=vertice[2]) 链接到第一个颜色 (r=color[0], g=color[1], b=颜色[2])。但是,我无法使用以下代码显示颜色:
glGenBuffers(1, &VertexVBOID);
glBindBuffer(GL_ARRAY_BUFFER, VertexVBOID);
glBufferData(GL_ARRAY_BUFFER, sizeof(GLfloat)*nbVertex*3, glVertex, GL_STATIC_DRAW);
glGenBuffers(1, &IndexVBOID);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, IndexVBOID);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(int)*nbVBOInd, VBOInd, GL_STATIC_DRAW);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glBindBuffer(GL_ARRAY_BUFFER, VertexVBOID);
glVertexPointer(3, GL_FLOAT,0,0);
glColorPointer(3, GL_FLOAT, 0, glColors);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, IndexVBOID);
glDrawElements(GL_TRIANGLES, nbVBOInd, GL_UNSIGNED_INT, 0);
上面的代码是否有问题,或者我的数组的设置方式有问题?