Meshes with multiple materials?

I have a bunch of meshes with multiple materials. They come in the form of a single vertex buffer (interlaced), and a number of tuples of (material + index list). I had hoped that I could de-interlace the vertices into separate arrays, but then add multiple batches against those same vertex arrays, using different material/index combinations. This would be efficient, because it allows GL to call LockArrays() only once for the entirety of the vertex buffer. Or, if using VBO, it allows GL to bind only a single vertex buffer object for multiple materials. (It would be even more efficient if interleaved vertices were supported)



Unfortunately, I can't see a way of doing this. Even the TriangleBatch class, which you can use with the BatchMesh class, keeps a separate list of vertices per batch. Am I missing something, or is this simply not supported?

This is simply not supported. You can get away with some hacking though.

Certainly sounds interesting - is this worthwhile enough to warrant being added to the wish list for 2.0

Actually, if you use VBO and the same nio buffer, jME will try to reuse the same vbo information, so that might be a start at what you are talking about.