Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl 首先是VBO的本地化。绑定到哪里重要吗?_Opengl_Buffer_Vbo - Fatal编程技术网

Opengl 首先是VBO的本地化。绑定到哪里重要吗?

Opengl 首先是VBO的本地化。绑定到哪里重要吗?,opengl,buffer,vbo,Opengl,Buffer,Vbo,假设我只想创建并填充一个缓冲区 GLuint ret; glGenBuffers(1,&ret); glBindBuffer(GL_ARRAY_BUFFER, ret); glBufferData(GL_ARRAY_BUFFER,size,data,usage); glBindBuffer(GL_ARRAY_BUFFER,0); 我在两次通话中使用哪个目标真的很重要吗?(当然,它们必须是相同的)。 例如:当绑定到GL\u数组\u buffer目标时,我是否可以将缓冲区写入该目标,然后在

假设我只想创建并填充一个缓冲区

GLuint ret;
glGenBuffers(1,&ret);
glBindBuffer(GL_ARRAY_BUFFER, ret);
glBufferData(GL_ARRAY_BUFFER,size,data,usage);
glBindBuffer(GL_ARRAY_BUFFER,0);
我在两次通话中使用哪个目标真的很重要吗?(当然,它们必须是相同的)。
例如:当绑定到
GL\u数组\u buffer
目标时,我是否可以将缓冲区写入该目标,然后在代码中将sane缓冲区绑定到
GL\u UNIFORM\u buffer
目标,并使用其数据填充带有
glBindBufferRange
的统一块?

这无关紧要;任何目标都应该有效。我以前已经创建了目标与预期用途匹配的缓冲区,但没有任何区别

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


另外,较新的版本不需要以前的
glBindBuffer
调用就可以执行与
glBufferData
相同的操作,它没有
target
参数。这有力地暗示了目标是可互换的。

您显示的内容中没有任何内容是“VAO”。根据代码样本,我假设OP表示VBO是的,我指的是VBO,标题已编辑。