Aquí hay una reseña decente sobre los VBO.
Actuación
Aquí hay una buena descripción de la semántica de llamadas.
Aquí hay otra buena descripción de los problemas de rendimiento; en él vemos que los VBO son más efectivos que las matrices.
La razón por la que preferimos los VBO es que los datos se cargan en la tarjeta, por lo que no tiene que transferirlos cada fotograma. Dependiendo del tipo de VBO creado, puede dar al controlador de gráficos pistas sobre el uso (escribir muchos, leer muchos versus escribir muchos, nunca leer, etc.).
Uso
Los VBO son realmente buenos para la geometría estática como el terreno que no espera cambiar, o para la geometría instanciada.
Las matrices de vértices son buenas para los datos que cambian con frecuencia pero que también son leídos por la máquina host, por lo tanto, para representar directamente los datos que se están manipulando (los búferes de datos del telémetro láser, por ejemplo, son donde los he usado) con frecuencia. Si puede salirse con la suya sin leer los datos en el dispositivo host (por lo tanto, simplemente empujándolo hacia la tarjeta), los VBO en modo de solo escritura son una buena opción.
Portabilidad
Matrices de vértices del lado del cliente
Están disponibles en OpenGL antes de 3.0, en desuso en 3.0 y desaparecieron en 3.1+. OpenGL ES los admite (OpenGL ES 2 no).
VBO
Están disponibles después de OpenGL 1.5. Esta es la única forma de almacenar datos de geometría en OpenGL ES 2 (y, por lo tanto, WebGL).