We are independent & ad-supported. We may earn a commission for purchases made through our links.
Advertiser Disclosure
Our website is an independent, advertising-supported platform. We provide our content free of charge to our readers, and to keep it that way, we rely on revenue generated through advertisements and affiliate partnerships. This means that when you click on certain links on our site and make a purchase, we may earn a commission. Learn more.
How We Make Money
We sustain our operations through affiliate commissions and advertising. If you click on an affiliate link and make a purchase, we may receive a commission from the merchant at no additional cost to you. We also display advertisements on our website, which help generate revenue to support our work and keep our content free for readers. Our editorial team operates independently of our advertising and affiliate partnerships to ensure that our content remains unbiased and focused on providing you with the best information and recommendations based on thorough research and honest evaluations. To remain transparent, we’ve provided a list of our current affiliate partners here.
Hardware

Our Promise to you

Founded in 2002, our company has been a trusted resource for readers seeking informative and engaging content. Our dedication to quality remains unwavering—and will never change. We follow a strict editorial policy, ensuring that our content is authored by highly qualified professionals and edited by subject matter experts. This guarantees that everything we publish is objective, accurate, and trustworthy.

Over the years, we've refined our approach to cover a wide range of topics, providing readers with reliable and practical advice to enhance their knowledge and skills. That's why millions of readers turn to us each year. Join us in celebrating the joy of learning, guided by standards you can trust.

What Is an OpenGL® VBO?

By Eugene P.
Updated: May 17, 2024
Views: 6,732
References
Share

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 the memory of the graphics card or graphics hardware. This allows an OpenGL® VBO to be rendered very quickly and to use far fewer system resources than other techniques that use immediate mode drawing. In addition to the gains in speed and the reduction in graphics overhead, an OpenGL® VBO also is a dynamic data structure — unlike an OpenGL® display list — that can be changed once it is in memory. The concept of an OpenGL® VBO actually started with hardware manufacturers who originally included — under different names — a similar type of functionality as an extension of the OpenGL® libraries that later was standardized by the OpenGL® Architecture Review Board (ARB).

An OpenGL® VBO basically is a combination of two other types of OpenGL® data structures. It encompasses the basic functionality of a vertex array, because the information for the geometry — including the vertex coordinates, normals, and color — can all 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 the 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 major difference is that an OpenGL® VBO can be modified and a display list cannot. Additionally, the VBO is not necessarily copied into the graphics memory as a display list would be, so only one data structure needs to be present in memory.

When an OpenGL® VBO is finally rendered, the distance from the graphics memory in which it is stored and the graphics processing unit (GPU) is very small, allowing for very fast rasterization without the need to move through slower system hardware first. In some instances, however, the use of VBOs is not supported by graphics card hardware. This can lead to programming problems that remove any added benefits from using a VBO, or a program that will be incompatible with some graphics cards.

There are some methods that can help to optimize how an OpenGL® VBO is treated when used. One of these is to provide hints to the graphics card, or to OpenGL®, to help determine where the VBO should be located in memory. Depending on the hints provided, the VBO can be stored directly in graphics memory on the graphics card, or might be stored in the main random access memory (RAM) of the system, if deemed necessary.

Share
WiseGeek is dedicated to providing accurate and trustworthy information. We carefully select reputable sources and employ a rigorous fact-checking process to maintain the highest standards. To learn more about our commitment to accuracy, read our editorial process.
Link to Sources

Editors' Picks

Discussion Comments
Share
https://www.wisegeek.net/what-is-an-opengl-vbo.htm
Copy this link
WiseGeek, in your inbox

Our latest articles, guides, and more, delivered daily.

WiseGeek, in your inbox

Our latest articles, guides, and more, delivered daily.