can i draw vbo/ibo in OpenGL 3.x without using vao?
or i must create a vao for all of my meshes?
big problem with vao is binding vbo and ibo for each vao and good thing is binding vertex attributes once, but in my game engine every mesh (a vbo and ibo ) draws with different shaders for example shadow shader only needs positions and drawing shader needs all data like as positions,normals and tex coordinates. problem with vao starts when i need to send diffrent vertex attributs to deffrent shaders (i must create a voa for every shader and every mesh in the scene)
How different is different? Like Alfones said, you can alter the contents of a vertex array dynamically at runtime. Even if your vertex attributes change I don’t think you have to pair one kind of VAO with a distinct shader. Could you give a concrete example of what you’re describing? Smells like duplicated work.