In fact an instancedGeometry would contain only one type of mesh, not multiple as in staticGeometry. Notice that it is possible to do so, but instancing is really meant to represent multiple times the same and only the same mesh.InstancedGeometry would allow you to add entites/scene nodes, which will cache the info needed to instance it out. Maybe even make a high-level interface for both that has addEntity and addSceneNode defined so the two can be paired in some conceptual sense. It's also nice because the two have similar goals (not identical, but close) and it would be a familiar system/interface to use.
I 'd prefer to do that before beginning with animated meshes. :winkI wouldn't worry about submeshes right now.
Later on, you could use BatchInstance to implement a more generic InstancedGeometry class (which would handle multiple submesh by assigning one BatchInstance per submesh).
@syedhs : yes there is a limit. The fact is that with the vertex shader 2.0 you can only have 256 float4. I use an array of 200 float4 to have 56 float4 to do the "eye-candy" part of the shader.
Notice that for the moment I only displace vertices, I don't rotate them.
If I need to rotate vertices, I must use a float3x3 matrix, and the maximum will be 65 matrices(because 65*3 = 195) .
@pix: Thanks for the bug report, I didn't saw it