VBO的首次不化.绑定在哪里有关系



说我只想创建并填充一个缓冲区。

GLuint ret;
glGenBuffers(1,&ret);
glBindBuffer(GL_ARRAY_BUFFER, ret);
glBufferData(GL_ARRAY_BUFFER,size,data,usage);
glBindBuffer(GL_ARRAY_BUFFER,0);

我在两个呼叫中使用哪个目标真的重要吗?(当然,它们必须相同(。例如:我可以在 GL_ARRAY_BUFFER目标上填充缓冲区的写入时,然后在代码上填充该标准,然后将其绑定到 GL_UNIFORM_BUFFER target上,并使用数据将其数据填充使用glBindBufferRange

这没关系;任何目标都应起作用。我已经创建了具有与预期用法相匹配的目标的缓冲区,但没有任何区别。

我猜我的OpenGL实现(即驱动程序(可以根据传递的目标分配内存不同,但我没有看到有关此的证据。

另外,在不需要以前的glBindBuffer呼叫的情况下,与glBufferData相同的较新的glNamedBufferData没有target参数。这强烈暗示目标是可以互换的。

最新更新