I'm kind of stuck with this question for some time now, maybe because I don't know exactly what to search for, it might be a term I have not heard of yet as most tutorials ends after drawing one object to the screen using a VBO.
Being a newbie to OpenGL as well as GLSL I do know at least a few things, one being that you always want to send as little information as you can from CPU -> GPU and by as few times as possible (better to send all data at once, instead of many small packages per frame). Knowing this tells me that there must be a better way to draw many of the same object, say a teapot, than looping over transformations then "glDrawArrays" and then repeating that step over and over.
It should be possible to send some kind of array containing the number of teapots you want to draw and all the positions/transformation-matrix you want for them.
I know I could possibly put multiple teapots into the same VBO with all the vertex data offset, but that would double the vertex-data and make it less flexible, seems like a bad solution to me.
So what is the right solution to drawing many of the same VBO at different transformations with a single or as few draw calls as possible?