So, when I want to change vbos, I have to do the glVertexAttribPointer for every single draw call, but for vaos, I only have to bind them, and nothing else, the glVertexAttribPointer thing I do only once, outside the main loop. Everywhere I look I see that vaos are only the vertex format, but then, why do I need to specify glVertexAttribPointer every time, if i'm using different vbo and same vao, its just repeating code in loop.
So, how would you loop through the draw loop,
like this:
bind vao
for each vbo
{
glattribpointers
glEnableVertexAttribPointerArray
draw elements
}
Or like this:
for each vao
{
bind vao
draw elements
}
First option seems to do unnecessary functions, and second makes me think vaos are pointless