【发布时间】:2014-05-19 14:15:37
【问题描述】:
当我尝试使用 VBO + 索引绘制三角形时,它不起作用
vertices.push_back(0.5f);
vertices.push_back(-0.5f);
vertices.push_back(-2.0f);
vertices.push_back(-0.5f);
vertices.push_back(-0.5f);
vertices.push_back(-2.0f);
vertices.push_back(0.5f);
vertices.push_back(-0.5f);
vertices.push_back(-2.0f);
indices.push_back(0);
indices.push_back(1);
indices.push_back(2);
GLuint bufferID,bufferID2;
glGenBuffers(1,&bufferID);
glGenBuffers(1,&bufferID2);
glBindBuffer(GL_ARRAY_BUFFER,bufferID);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,bufferID2);
glBufferData(GL_ARRAY_BUFFER,sizeof(GLfloat)*3,&vertices[0],GL_STATIC_DRAW);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3,GL_FLOAT,0,0);
glDrawElements(GL_TRIANGLES,indices.size(),GL_UNSIGNED_INT,&indices[0]);
glDisableClientState(GL_VERTEX_ARRAY);
glDeleteBuffers(1,&bufferID);
glDeleteBuffers(1,&bufferID2);
但是用 VBO 画一个点就可以了
vertices.push_back(0.5f);
vertices.push_back(-0.5f);
vertices.push_back(-2.0f);
GLuint bufferID;
glGenBuffers(1,&bufferID);
glBindBuffer(GL_ARRAY_BUFFER,bufferID);
glBufferData(GL_ARRAY_BUFFER,sizeof(GLfloat)*3,&vertices[0],GL_STATIC_DRAW);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3,GL_FLOAT,0,0);
glPointSize(100.0f);
glDrawArrays(GL_POINTS,0,1);
glDisableClientState(GL_VERTEX_ARRAY);
glDeleteBuffers(1,&bufferID);
我已经阅读了一些教程和其他帖子,但没有任何效果。 mby 我没有正确使用索引?
谁能帮我解决这个问题?
【问题讨论】: