示例代码:
1. glGenBuffers(1, &VboId);
2. glBindBuffer(GL_ARRAY_BUFFER, VboId);
3. glBufferData(GL_ARRAY_BUFFER, sizeof(Vertices), Vertices, GL_STATIC_DRAW);
4. glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, 0, 0);
所以我们生成一个通用的 VBO 句柄,然后我们使用“GL_ARRAY_BUFFER”绑定它。绑定它似乎有两个目的:
- 我们必须先绑定缓冲区,然后才能通过以下方式将数据复制到 GPU
glBufferData
- 我们必须先绑定缓冲区,然后才能通过
glVertexAttribPointer
而且我认为这是您需要绑定 VBO 的唯一 2 次。我的问题是,是否存在目标(GL_ARRAY_BUFFER、GL_ELEMENT_ARRAY_BUFFER、GL_PIXEL_PACK_BUFFER 或 GL_PIXEL_UNPACK_BUFFER)在第 2 行和第 3 行不同的情况?或者我们想在第 4 行之前将它重新绑定到不同的目标?
我们可以将多个缓冲区目标绑定到单个 VBO 吗?