Contents
Do you need a VAO for a vertex array?
With that out of the way, unless your objects share vertex data you are generally going to need a unique set of VBOs for each. You can use a single VAO for your entire software if you want, or you can take advantage of the fact that changing the bound VAO changes nearly the entire set of states necessary to draw different objects.
Vertex Array Objects (VAOs) are conceptually nothing but thin state wrappers. Vertex Buffer Objects (VBOs) store actual data. Another way of thinking about this is that VAOs describe the data stored in one or more VBOs. Think of VBOs (and buffer objects in general) as unstructured arrays of data stored in server (GPU) memory.
How is a VAO related to a vertex buffer?
You can think of it as a container for a Vertex Buffer and its associated states. Something similar perhaps to the old display-lists. Normally, there is a 1 to 1 relationship between a VAO and a VBO; that is, each VAO contains a unique VBO.
How are points distributed in a component selection set?
Component Selection Set: Distributes points on components belonging to a connected selection set. Edge: Distributes points along the center of mesh edges. Random Edge: Distributes points along the center of random edges. UV Space: Distributes points on UVs. Move the points along the normals of the connected mesh.
Can a VAO contain up to 3 Vbos?
Basically from what i understand you can have different VAOs each of which can contain up to several VBOs , and by binding to the VAO’s ID you can draw from the VBOs stored inside. I have Wrote a simple class that reads a obj file then creates vertices, normals and uvs vector lists and upload those in 3 VBOs (vboID 1,2 and 3)
How are vertex array objects used in OpenGL?
You can layout your vertex data in multiple arrays if you want, or you can pack them into a single array. In either case, buffer objects boil down to locations where you will store data. Vertex Array Objects track the actual pointers to VBO memory needed for draw commands.