¿Qué es un OpenGL® VBO?
Cuando se usa las bibliotecas de gráficos de computadora Open Graphics Library® (OpenGL®) para programación de computadoras, un objeto de búfer de vértice (VBO) es una estructura de datos que permite que un objeto tridimensional (3D) se construya y almacene en la memoria de la tarjeta gráfica o hardware de gráficos. Esto permite que un OpenGL® VBO se represente muy rápidamente y utilice muchos menos recursos del sistema que otras técnicas que utilizan dibujo de modo inmediato. Además de las ganancias en la 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 OpenGL®, que se puede cambiar una vez que está en la memoria. El concepto de un OpenGL® VBO realmente comenzó con fabricantes de hardware que originalmente incluyeron, bajo diferentes nombres, un tipo similar de funcionalidad como una extensión de las bibliotecas OpenGL® que luego fue estandarizada por el tablero de revisión de arquitectura OpenGL® (ARB).
Un OpenGL® VBO básicamente es unCombinación de otros dos tipos de estructuras de datos OpenGL®. Abarca la funcionalidad básica de una matriz de vértice, porque la información para la geometría, incluidas las coordenadas de 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, se almacena un VBO OpenGL® en el lado del servidor del renderizador y no necesita acceder constantemente al lado del cliente para la información del vértice.
Al permitir que el VBO se almacene en la memoria gráfica, también adquiere algunas de las propiedades de una lista de visualización. La principal diferencia es que se puede modificar un VBO OpenGL® y una lista de visualización no puede. Además, el VBO no se copia necesariamente en la memoria gráfica como lo sería una lista de visualización, por lo que solo una estructura de datos debe estar presente en la memoria.
Cuando un vbo OpenGL® finalmente esRenderizado, la distancia desde la memoria gráfica en la que se almacena 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 a través de hardware del sistema más lento primero. En algunos casos, sin embargo, 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 los beneficios adicionales al usar un VBO, o un programa que será incompatible con algunas tarjetas gráficas.
Hay algunos métodos que pueden ayudar a optimizar cómo se trata un VBO OpenGL® cuando se usa. Una de ellas es proporcionar sugerencias a la tarjeta gráfica, o para OpenGL®, para ayudar a determinar dónde se debe ubicar el VBO en la memoria. Dependiendo de las sugerencias proporcionadas, el VBO se puede almacenar directamente en la memoria gráfica en la tarjeta gráfica, o puede almacenarse en la memoria de acceso aleatorio principal (RAM) del sistema, si se considera necesario.