This is probably a silly question, but I've managed to get myself turned around and I'm second guessing my understanding of instancing.
I want to implement a label renderer using instanced billboards. I have a VBO of 'label positions', as 2D vertices, one per label. My 'single character billboard' is what I want to instance, and is in its own VBO. Due to engine/architectural reasons, I have an index buffer for the billboard, even though it is not saving me much in terms of vertex counts.
For a various reasons I still want to loop through individual labels for my render, but planned to call glDrawElementsInstanced, specifying my 'billboard model', along with the character count for a label. However, I can't see how I can tell glDrawElementsInstanced where to start in the other attribute array VBO's for a given label? So, if I am storing a VBO of texture coords for my font, per-character, how do I get glDrawElementsInstanced to start at the first texture coord set of the first character of the current label being rendered?
I see that glDrawElementsInstancedBaseVertex exists, but I'm getting confused about what the base vertex value will do here. If my raw/instanced billboard verticies are from index 0..3 in their VBO, but the 'unique' attributes of the current label start at element 50 in their VBO, what does a base vertex of 50 do? I was under the impression that it would just cause GL to try to load billboard vertices from index+basevertex in that VBO, which is not what I want.
I guess to sum my question up, if I have an instanced rendering implementation, with various attribute divisors for different vertex attributes, how can I initiate an instanced render of the base model, but with vertex attributes starting from offsets into the associated VBO's, while abiding by attribute divisors that have been set up?
EDIT: I should mention, I've bound all the related VBO's under a Vertex Array Object. By default I wanted all labels to be sharing VBO memory to avoid state changes, etc. It seems like there must be a way to render just N instances of my model starting at some mid-point of my vertex attrib arrays.