Instancing allows you to draw the same mesh multiple times with different parameters. This is useful for drawing multiple objects (from just a few to over a million+ objects) with the same mesh, but different positions, rotations, and scales. You can also pull from any custom buffers to get per-instance data.