Skip to main content

¿Qué es un VBO OpenGL®?

  • Alston

Cuando se utilizan las bibliotecas de gráficos de computadora Open Graphics Library® (OpenGL®) para la programación de computadoras, un objeto de vértice de búfer (VBO) es una estructura de datos que permite construir y almacenar un objeto tridimensional (3D) en la memoria de los gráficos tarjeta o hardware de gráficos. Esto permite que un VBO OpenGL® se procese muy rápidamente y use muchos menos recursos del sistema que otras técnicas que usan el dibujo en modo inmediato. Además de las ganancias en velocidad y la reducción en la sobrecarga de gráficos, un OpenGL® VBO también es una estructura de datos dinámica, a diferencia de una lista de visualización de OpenGL®, que se puede cambiar una vez que está en la memoria. El concepto de un VBO OpenGL® en realidad comenzó con los fabricantes de hardware que originalmente incluían, bajo diferentes nombres, un tipo similar de funcionalidad como una extensión de las bibliotecas OpenGL® que luego fue estandarizada por la Junta de Revisión de Arquitectura de OpenGL® (ARB).

Un VBO OpenGL® es básicamente una combinación de otros dos tipos de estructuras de datos OpenGL®. Abarca la funcionalidad básica de una matriz de vértices, porque la información para la geometría, incluidas las coordenadas de los vértices, las normales y el color, se puede almacenar en una matriz estructurada que se puede pasar a OpenGL® para su procesamiento. Sin embargo, a diferencia de una matriz de vértices, un OpenGL® VBO se almacena en el lado del servidor del renderizador y no necesita acceder constantemente al lado del cliente para obtener la información del vértice.

Al permitir que el VBO se almacene en la memoria de gráficos, también adquiere algunas de las propiedades de una lista de visualización. La principal diferencia es que un VBO OpenGL® puede modificarse y una lista de visualización no. Además, el VBO no se copia necesariamente en la memoria gráfica como lo haría una lista de visualización, por lo que solo una estructura de datos debe estar presente en la memoria.

Cuando finalmente se procesa un OpenGL® VBO, la distancia desde la memoria de gráficos en la que está almacenada y la unidad de procesamiento de gráficos (GPU) es muy pequeña, lo que permite una rasterización muy rápida sin la necesidad de moverse primero por un hardware del sistema más lento. Sin embargo, en algunos casos, el uso de VBO no es compatible con el hardware de la tarjeta gráfica. Esto puede conducir a problemas de programación que eliminan cualquier beneficio adicional del uso de un VBO o un programa que será incompatible con algunas tarjetas gráficas.

Existen algunos métodos que pueden ayudar a optimizar cómo se trata un OpenGL® VBO cuando se usa. Una de ellas es proporcionar sugerencias a la tarjeta gráfica, o a OpenGL®, para ayudar a determinar dónde debe ubicarse el VBO en la memoria. Dependiendo de las sugerencias proporcionadas, el VBO puede almacenarse directamente en la memoria gráfica de la tarjeta gráfica, o puede almacenarse en la memoria principal de acceso aleatorio (RAM) del sistema, si se considera necesario.