I'm working with opengl to recognize Brazilian Sign Language and I need some help about performance because I need to render a lot of meshes.

In my research I need to render 64 groups of objects that each one has 36 objects with different meshes and they are organized hierarchically. Each group has its own viewport and transformation tree, so to render the whole scene I need to do 2240 calls to glDraw* and its very slow. I thought that I could use instancing rendering, but how each group has objects with different meshes I don't know how to do that (because all documentation says that instancing is used to render the same mesh a lot of times). I saw other possibles solutions like glMultiDrawElementsBaseVertex that if I'm not wrong, can render a lot of different meshes that are in a VBO, but I didn't understand how could I transform some mesh (using instancing I could use gl_instanceID to set witch matrix to use) using shader. I thought now that how my group of objects has some objects that are equals maybe I could use instancing inside the group than instead of call glDraw 36 time for each group maybe I could call 3 or 4 times. The image shows my objects group.

Click image for larger version. 

Name:	hand3d.jpg 
Views:	422 
Size:	8.7 KB 
ID:	1244