我正在尝试加载一个对象并使用 VBO 和 glDrawArrays() 来渲染它。问题是一个简单的浮点指针float f[]={...}
在我的情况下不起作用,因为我通过了这个指针可以存储的值的限制。所以我的解决方案是使用向量。而且它不起作用...
这是我的代码:
unsigned int vbo;
vector<float*> vert;
...
vert.push_back(new float(i*size));
vert.push_back(new float(height*h));
vert.push_back(new float(j*size));
...
glGenBuffers(1, &vbo);
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glBufferData(GL_ARRAY_BUFFER, sizeof(vert), &vert, GL_STATIC_DRAW);
glBindBuffer(GL_ARRAY_BUFFER, 0);
并渲染:
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, 0);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 3);
glDisableClientState(GL_VERTEX_ARRAY);
glBindBuffer(GL_ARRAY_BUFFER, 0);
我在glBufferData()
第三个参数的位置有问题const GLvoid *data
。我正在通过,&vert
但它不起作用。