将顶点缓冲区对象附加到顶点数组对象

时间:2014-08-20 18:08:16

标签: c++ opengl vbo vao

我正在尝试将vbo附加到vao。但是我只能让它以“旧”的方式工作:

bind vao
bind vbo
glVertexAttribPointer(...)
glEnableVertexArrayAttrib(...)
unbind vbo
unbind vao

现在我希望它实现新的无绑定方式,我试着这样做:

glVertexArrayAttribFormat(...);
glVertexArrayVertexBuffer(...);
glVertexArrayAttribBinding(...);

然而,我只得到一个黑屏。

将索引缓冲区对象附加到vao可以工作:

glVertexArrayElementBuffer(...);

我错过了什么?

1 个答案:

答案 0 :(得分:4)

好像我不见了

  

glEnableVertexArrayAttrib(...)

因此,正确的替换将是

glEnableVertexArrayAttrib(...);
glVertexArrayVertexBuffer(...);
glVertexArrayAttribFormat(...);
glVertexArrayAttribBinding(...);

并且不要忘记在glVertexArrayVertexBuffer(...)中设置步幅,它不应该是0!