Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
The two main arenas of performance enhancements are minimizing the data transfer to and from the graphics hardware and minimizing data itself. Vertex buffer objects (VBOs) are part of the former process. When you generated your geometry and sent it merrily along to be displayed, the usual process was to tell the system where to find each of the needed blocks of data, enabling which data to use (vertex, normals, colors, and texture coordinates), and then drawing it. Each time glDrawArrays() or glDrawElements() is called, all of the data must be packed up and shipped over to the graphics processing unit (GPU). Each data transfer takes a finite amount of time, and obviously performance could be increased if, say, some of the data could be cached on the GPU itself. VBOs are a means of allocating commonly used data on the GPU that can then be called for display without having to resubmit the data each time.