Qu'est-ce qu'un VBO OpenGL®?
Lorsque vous utilisez les bibliothèques d’images graphiques Open Graphics Library® (OpenGL®) pour la programmation informatique, un objet tampon de vertex (VBO) est une structure de données qui permet de construire un objet en trois dimensions (3D) et de le stocker dans la mémoire du graphique. matériel de carte ou graphique. Cela permet à un VBO OpenGL® d’être rendu très rapidement et d’utiliser beaucoup moins de ressources système que d’autres techniques utilisant le dessin en mode immédiat. Outre les gains de vitesse et la réduction de la charge graphique, un VBO OpenGL® est également une structure de données dynamique, contrairement à une liste d’affichage OpenGL®, qui peut être modifiée une fois en mémoire. Le concept de VBO OpenGL® a en réalité commencé avec les fabricants de matériel informatique qui incluaient initialement - sous différents noms - un type de fonctionnalité similaire à une extension des bibliothèques OpenGL® qui a été normalisée par la suite par OpenGL® Architecture Review Board (ARB).
Un VBO OpenGL® est essentiellement une combinaison de deux autres types de structures de données OpenGL®. Il englobe les fonctionnalités de base d'un tableau de sommets, car les informations de la géométrie, y compris les coordonnées des sommets, les normales et la couleur, peuvent toutes être stockées dans un tableau structuré pouvant être transmis à OpenGL® pour traitement. Cependant, contrairement à un tableau de vertex, un VBO OpenGL® est stocké sur le côté serveur du rendu et n'a pas besoin d'accéder constamment au côté client pour obtenir les informations sur les vertex.
En permettant au VBO d'être stocké dans la mémoire graphique, il prend également certaines propriétés d'une liste d'affichage. La différence majeure est qu’un VBO OpenGL® peut être modifié et une liste d’affichage ne le peut pas. De plus, le VBO n'est pas nécessairement copié dans la mémoire graphique comme le serait une liste d'affichage. Par conséquent, une seule structure de données doit être présente dans la mémoire.
Lorsqu'un rendu OpenGL® VBO est enfin rendu, la distance entre la mémoire graphique dans laquelle il est stocké et l'unité de traitement graphique (GPU) est très petite, ce qui permet un rasterisation très rapide sans qu'il soit nécessaire de passer d'abord par du matériel système plus lent. Dans certains cas, toutefois, l'utilisation de VBO n'est pas prise en charge par le matériel de carte graphique. Cela peut entraîner des problèmes de programmation qui suppriment tout avantage supplémentaire lié à l'utilisation d'un VBO ou à un programme incompatible avec certaines cartes graphiques.
Certaines méthodes peuvent aider à optimiser le traitement d’un OpenGL® VBO lorsqu’il est utilisé. L'une d'elles est de fournir des astuces à la carte graphique, ou à OpenGL®, pour aider à déterminer où le VBO doit être situé en mémoire. Selon les indications fournies, le VBO peut être stocké directement dans la mémoire graphique de la carte graphique ou dans la mémoire vive principale (RAM) du système, si nécessaire.