What’s an OpenGL® VBO?

Print anything with Printful



An OpenGL® VBO is a data structure that allows 3D objects to be stored in graphics memory, rendering quickly and using fewer resources. It combines the functionality of a vertex array and display list, and can be edited. Optimization methods include providing hints for memory location.

When using the Open Graphics Library® (OpenGL®) computer graphics libraries for computer programming, a vertex buffer object (VBO) is a data structure that allows a three-dimensional (3D) object to be constructed and stored in memory graphics card or graphics hardware. This renders an OpenGL® VBO very quickly and uses far fewer system resources than other techniques that use immediate mode drawing. In addition to the speed gains and reduction in graphics overhead, an OpenGL® VBO is also a dynamic data structure, unlike an OpenGL® display list, which can be modified once it’s in memory. The OpenGL® VBO concept actually started with hardware manufacturers originally including, under different names, a similar type of functionality as an extension of the OpenGL® Libraries which was later standardized by the OpenGL® Architecture Review Board (ARB) .

An OpenGL® VBO is basically a combination of two other types of OpenGL® data structures. It includes the basic functionality of a vertex array, because information for geometry, including vertex coordinates, normals, and color, can be stored in a structured array that can be passed to OpenGL® for processing. Unlike a vertex array, however, an OpenGL® VBO is stored on the server side of the renderer and does not need to constantly access the client side for vertex information.

By allowing the VBO to be stored in graphics memory, it also takes on some of the properties of a display list. The main difference is that an OpenGL® VBO can be edited and a display list cannot. Also, the VBO isn’t necessarily copied into graphics memory like a display list would be, so only one data structure needs to be in memory.

When an OpenGL® VBO is finally rendered, the distance from the graphics memory where it is stored and the graphics processing unit (GPU) is very small, allowing for very fast rasterization without needing to go through the hardware first slower system. However, in some cases, the use of VBO is not supported by the graphics card hardware. This can lead to programming issues that remove any additional benefit from using a VBO or a program that will be incompatible with some graphics cards.

There are a few methods that can help optimize the handling of an OpenGL® VBO when it is used. One of them is to provide hints to the graphics card, or OpenGL®, to help determine where the VBO should be located in memory. Depending on the suggestions given, the VBO can be stored directly in the graphics memory of the graphics card or it could be stored in the system’s main random access memory (RAM) if deemed necessary.




Protect your devices with Threat Protection by NordVPN


Skip to content