Creating Vertex Buffer Objects

Hello, I recently switched my interleaved rendering system back over to vertex buffer objects to allow for more rendering flexibility. Now I’m trying to decide how to lay out the vertex buffer objects. Ideally, each renderable peice for every mesh could be its own vertex buffer object, but I’m worried that it will create HUGE numbers of VBO’s, in most cases, it will create hundreds. What I’m wondering is if there is an optimal number of VBO’s or an optimal way to store the data into a VBO. Should I create a seperate VBO for each renderable piece in my app or should I batch multiple peices of geometry into 1 VBO. If I batch, what’s the optimal size for one? I can’t say I understand VBO’s that well and how things work internally, info on this would be useful as well. What kind of overhead is there for creating tons of VBO’s, what’s the drawbacks.

I guess what I’m asking is, what do you all think is the best implementation for potentially large sets of geometry, each with different textures, shaders, etc to allow for a fast and efficient renderer using VBO’s? Thanks!

Tips for ATI and NV included.

Nothing specific about size of VBOs, but don’t make them too small.

Thanks for the info. :slight_smile: