Skip to main content

¿Qué es un tampón de vértice OpenGL®?

  • Bishop

Un búfer de vértices de Open Graphics Library® (OpenGL®) es un área de memoria de la computadora a menudo ubicada directamente en una tarjeta gráfica que permite un acceso muy rápido a una matriz de vértices y sus propiedades. Con mayor frecuencia, se utiliza un búfer de vértices OpenGL® para crear un objeto de búfer de vértices (VBO), lo que permite que los objetos dentro de una escena tridimensional (3D) se representen como parte de una lista de visualización y no en modo inmediato. Ocasionalmente, sin embargo, se puede usar un búfer de vértices fuera de un VBO para almacenar información sobre un objeto o para ayudar a facilitar las transformaciones en modelos complejos. Cabe señalar que no es necesario ubicar un búfer de vértices en la memoria de la tarjeta gráfica, ya que puede asignarse como cualquier estructura de datos. Si el búfer de vértices OpenGL® se va a usar como parte de un VBO, entonces la tarjeta gráfica que se use debe ser compatible con la extensión especial VBO OpenGL® para garantizar que el búfer se coloque en la memoria de gráficos.

En el nivel más básico, un búfer de vértices OpenGL® es simplemente un búfer simple, un área asignada de memoria en la que se pueden almacenar datos. Se convierte en un búfer de vértices cuando se almacena una matriz de vértices dentro de él. Una matriz de vértices OpenGL® es una matriz de estructuras de datos que define todas las propiedades de los vértices individuales. Esta información puede incluir las ubicaciones X, Y y Z del vértice en la escena 3D, el color del vértice, las propiedades normales y otras.

En el modo inmediato, los comandos de OpenGL® se ejecutan directamente a medida que se los llama desde un programa. Es innecesario en estos casos tener una matriz de vértices, porque los comandos para colocar y dibujar un vértice se pueden dar directamente al hardware, aunque esto puede causar serios problemas de rendimiento. Para la representación en modo no inmediato, la información sobre un objeto o modelo 3D debe colocarse primero en una matriz de vértices para que tenga una estructura que OpenGL® pueda interpretar fácilmente; esa matriz debe almacenarse en un área especial de memoria conocida como búfer de vértices OpenGL®.

Por sí mismo, el búfer de vértices no tiene necesariamente ningún atributo especial aparte de ser una colección completa de información utilizada para dibujar un objeto. Sin embargo, cuando el búfer de vértices OpenGL® se convierte en un objeto de búfer de vértices OpenGL® a través de la extensión OpenGL, se produce una secuencia especial de eventos para ayudar a optimizar el dibujo del objeto definido en el búfer de vértices. A saber, el búfer se asigna y almacena en la memoria de la tarjeta gráfica, en el lado del servidor de la configuración cliente-servidor que utiliza OpenGL®. Algunos cálculos también se pueden realizar por adelantado en el VBO para que se pueda procesar lo más rápido posible. Fuera de un VBO, un búfer de vértice simple generalmente no recibe este tratamiento y puede asignarse y usarse como cualquier otro tipo de datos.