D3D has this feature where you can set the ‘frequency’ of a vertex array - ie: one set of vertex attributes can be updated every n’th vertex fetch.
This allows you to send ‘params’ like MVP matrices via vertex arrays, allowing you to draw many instances of a model with a single call.
Would love to see this in GL.
Instancing is on it’s way in a upcomming version.
Previously it was determined that instancing was not needed because openGLs intermediate mode is way better than d3d’s intermediate mode, so normally it’s not needed.
But as instancing has grown beyond the use for simple quads in a particle system, instancing is now being conciderd even for openGL.
Mmmm… yes, but my bet is that opengl instancing is more for GPGPU or GPU physics than for particle systems.
Basically it’s so that the data does not have to leave the GPU and pass trough the CPU.
I hope they don’t implement instancing “as is” today. A more general Stream-oriented method seems on the horizon.