opengl glGetBufferSubData()不返回任何数据?

myss37ts  于 2023-08-04  发布在  其他
关注(0)|答案(1)|浏览(133)

我试着运行下面例子中的代码。然而,在调用glGetBufferSubData之后,data保留其默认值,并且不获取存储在bufferObject[0]中的值,这些值等于顶点中的值。我是否错误地使用了glGetBufferSubData

glBindVertexArray(arrayObject);
glGenBuffers(1, &bufferObject[0]);
glBindBuffer(GL_ARRAY_BUFFER, bufferObject[0]);
glBufferData(GL_ARRAY_BUFFER, numVertices * sizeof(Vector3), vertices, GL_STATIC_DRAW);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);
glEnableVertexAttribArray(0);

Vector3 *data = new Vector3();

glGetBufferSubData(bufferObject[0], 0, numVertices * sizeof(Vector3), data);

字符集

vshtjzan

vshtjzan1#

glGetBufferSubData(bufferObject[0], 0, numVertices * sizeof(Vector3), data);
                   ^^^^^^^^^^^^^^^ nope

字符集
glGetBufferSubData()target参数应该指定绑定点,而不是缓冲区对象。请尝试GL_ARRAY_BUFFER

glGetBufferSubData(GL_ARRAY_BUFFER, 0, numVertices * sizeof(Vector3), data);

相关问题