我感到困惑的VBO,
glGenBuffers(1, &positionBufferObject);
glBindBuffer(GL_ARRAY_BUFFER, positionBufferObject);
此外GL_ARRAY_BUFFER,还有其他目标类型:GL_ATOMIC_COUNTER_BUFFER,GL_COPY_READ_BUFFER ...
然而,OpenGL的说明书没有提到什么这些目标的意思。 我查了glew.h:
#define GL_ARRAY_BUFFER 0x8892
这是否意味着目标(如GL_ARRAY_BUFFER)的地址?
什么是目标 - GL_ARRAY_BUFFER在glBindBuffer是什么意思?
一般来说
大多数OpenGL的对象必须绑定到所谓的“目标” OpenGL上下文位置的使用它们。 一个目标无非是在上下文的地方对象绑定更多。
不同的对象类型(缓冲,纹理等)有不同的套目标。 一般来说,每个目标都有特定的含义:一个对象绑定到一个目标意味着,任何你想要的方式目标使用绑定到它的对象来使用该对象英寸
绑定的对象到一个目标,不影响对象是否被绑定到另一个目标(除非它是一个纹理对象;他们区别对待的目标)。
有迹象表明,修改对象或查询数据从绑定对象的功能。 他们把它们修改的对象/查询已绑定的目标。
GL_ARRAY_BUFFER
该GL_ARRAY_BUFFER
目标缓冲区对象表示对意图用于顶点属性数据缓冲器对象 。 但是,仅仅结合这一目标并不做任何事情; 它的唯一调用glVertexAttribPointer
(或等效的功能) ,它使用任何缓冲液绑定到目标该属性的属性数据。
然而,OpenGL的说明书没有提到什么这些目标的意思。
OpenGL的2.1规格,第38页,第2.9.1节:“顶点数组在缓冲区对象”
这是否意味着目标(如GL_ARRAY_BUFFER)的地址?
不,他们只是unsigned int
使用,比如s enum
秒。