我在OpenGL中有VBO和IBO,但无法正确绘制它们。你可以让我知道我可以忘记在框架显示功能? - struct Point3D是一个带有3个浮点数的结构(x,y,z)。 - nbVertex是glVertex数组中顶点的数量。 - nbVBOInd是VBOInd数组中索引的数量。无法在OpenGL中显示VBO
glGenBuffers(1, &VertexVBOID);
glBindBuffer(GL_ARRAY_BUFFER, VertexVBOID);
glBufferData(GL_ARRAY_BUFFER, sizeof(struct Point3D)*nbVertex, 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);
glBindBuffer(GL_ARRAY_BUFFER, VertexVBOID);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, sizeof(glVertex), BUFFER_OFFSET(0)); //The starting point of the VBO, for the vertices
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, IndexVBOID);
glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_SHORT, BUFFER_OFFSET(0)); //The starting point of the IBO
谢谢!
哪个版本的OpenGL你生成你的上下文? – datenwolf
对不起,这个愚蠢的问题:我怎么能找到这个? –
@Laurent这取决于你的平台。你使用QGLViewer或过剩或其他?通常会提供一些开关来创建具有特定版本的上下文。 – pmr