I don't see the point in that approach. It would be the same thing as using multiple objects in the first place or wouldn't it?
Maybe you didn't get my idea.
The concept would be to use references of matrix data (position, rotation and scale), which is the logic side of the system, and then a Global List which is a reference for a single Mesh, that will be sent to the GPU via glDrawArraysInstanced, where the data from the logical objects will be sent via shader, that is predefined, withou the user needing to mess with it.
Something like this:
- InstancedManager (ObjectContainer3D), that receives a mesh reference
- then a user can create as many objects (InstancedObject3D) as he wants (which are objects that only contains matrix data, and maybe some texture related data, alpha, displacement, etc) which will be sent to a prebuilt shader.
of course this will yield out way better results, no doubt.
and this will make things easy to use and control.