Original Post
Decided to convert my current project from Vertex Arrays to VBO yesterday, and all went smoothly (A nice surprise after working with DirectX's locking and unlocking for so long) But it left me with a couple of questions that I haven't found documentation for: 1) (Easy one first!) Is it preferable to use Seperate or Interleaved Arrays with VBO? I'm using Interleaved right now, and I haven't had any problems, but if Seperate arrays are optimal might as well use them instead, since it's not much trouble on my part. 2)When using an indexed array (glDrawRangedElements() in this case) is there an easy way to specify an offset into the Vertex array? For example, in DirectX when calling DrawIndexedPrimitive() you can specify the base vertex index, which will treat the specified vertex as index 0. There is a similar parameter in glDrawArrays() that lets you specify the first vertex to use, and in fact the Nvidia white paper encourages using this rather than specifying the offset when calling glVertexPointer (or glInterleavedArrays(), as the case may be.) This does you no good when using indexed verticies, however. With glDrawRangeElements() you can specify a "start" and "end" index, but I don't get the impression that theis affects the vertex array offset at all. Because of this, if I have a mesh that starts at Vertex 15 in my VBO, it seems I would either have to... a) Increment all my indices for that mesh by 15 or b) call glVertexPointer (or equivalent) for each mesh with the appropriate offset (but that's supposed to be bad. >_<) I'd imagine these are both simple questions, but like I've said, there seems to be little in the way of good documentation on these little niggly subjects.