Voici un article décent sur les VBO.
Performance
Voici un bon aperçu de la sémantique d'appel.
Voici un autre bon aperçu des problèmes de performances; nous y voyons que les VBO sont plus performants que les tableaux.
La raison pour laquelle nous préférons les VBO est que les données sont chargées sur la carte, et vous n'avez donc pas à les transférer à chaque image. Selon le type de VBO créé, vous pouvez donner au pilote graphique des indications sur l'utilisation (écriture-plusieurs, lecture-plusieurs vs écriture-plusieurs, jamais lu, etc.).
Usage
Les VBO sont vraiment bons pour la géométrie statique comme le terrain que vous ne vous attendez pas à changer, ou pour la géométrie instanciée.
Les tableaux de sommets sont bons pour les données qui changent fréquemment mais qui sont également lues par la machine hôte - donc, pour le rendu direct des données qui sont manipulées (les tampons de données du télémètre laser, par exemple, sont là où je les ai utilisés) fréquemment. Si vous parvenez à ne jamais lire les données sur le périphérique hôte (il suffit donc de les pousser sur la carte), les VBO en mode écriture seule sont une bonne option.
Portabilité
Tableaux Vertex côté client
Celles-ci sont disponibles dans OpenGL avant 3.0, obsolètes dans 3.0 et disparues dans 3.1+. OpenGL ES les prend en charge (OpenGL ES 2 ne le fait pas).
VBO
Ceux-ci sont disponibles après OpenGL 1.5. Ce sont le seul moyen de stocker des données de géométrie dans OpenGL ES 2 (et donc WebGL).