TBH, as a rule, the reason for placing them in one large buffer is to save on drawing calls. The cost of switching the vertex buffer is quite minimal. If you can combine them all into one vertex buffer and display 10 objects in 1 callback, then you get a big win.
Usually, to combine them, you simply create 1 large vertex buffer with all the vertex data already converted in the world, one after the other. Then you create an index buffer that displays them one by one. Then you have everything connected with minimal calls for drawing. Of course, if you have moved one thing that requires updating part of the vertex buffer, and therefore its ideal situation for static geometry.
If all objects are the same, will you use only 1 vertex buffer (with one object definition in it) and 1 index buffer anyway? Matrices move or animate an object ...
If all objects are different and moving / animated, I just stick to separate VBs. I doubt that you noticed any difference by combining them all together.
Goz
source share