Well, I've run into another impasse.
I've decided to add the indices to the same buffer as the vertex data, so the structure of the global buffer now looks like this:
V1|N1|UV1|V2|N2|UV2|V3|N3|UV3|I1|I2|I3|I4|...
This works just fine.
However some meshes require additional vertex data aside from the positions, normals and uv coordinates. All vertices in the global buffer need to have the same structure, otherwise I run into problems when rendering shadows (Which skip the normal +uv data and don't need to know about the additional data (except in a few special cases)).
My initial idea was that I could keep the format of the global buffer (Positions, Normals, UV and Indices), and create a separate buffer for each mesh that requires additional data. This would result in more buffer changes during rendering, however since these type of meshes are a lot more uncommon than regular meshes, it wouldn't be a problem.
So, basically all regular vertex data is still stored in the global buffer.
All meshes with additional data have an additional buffer, which contains said data.
This is fine in theory, however the last parameter of "glDrawElementsBaseVertex" basically makes that impossible from what I can tell.
I'd need the basevertex to only affect the global buffer, but not the additional buffer (Because the additional buffer only contains data for the mesh that is currently being rendered). Is that in any way possible?
If not, what are my options?
Do I have to separate these types of meshes from the global buffer altogether, and just use my old method?