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,标题已编辑。