- Vertex Buffer Object
A Vertex Buffer Object (VBO) is an
OpenGL extension that provides methods for uploading data ( vertex,normal vector , color, etc) to the video device for non-immediate-mode rendering. VBOs offer substantial performance gains over immediate mode rendering primarily because the data resides in the video device memory rather than the system memory and so it can be rendered directly by the video device.The Vertex Buffer Object specification has been standardized by the [http://www.opengl.org/about/arb/ OpenGL Architecture Review Board] as of
OpenGL Version 1.4. Similar functionality was available before the standardization of VBOs via theNvidia -created extension "Vertex Array Range" [cite web | url=http://developer.nvidia.com/object/Using_GL_NV_fence.html | title=GL_NV_vertex_array_range Whitepaper] .Basic VBO functions
The following functions form the core of VBO access and manipulation [cite web | url=http://www.opengl.org/sdk/docs/man/xhtml/ | title=OpenGL function reference]
GenBuffersARB(sizei n, uint *buffers)
Generates a new VBO and returns it's ID number as an unsigned integer. Id 0 is reserved.BindBufferARB(enum target, uint buffer)
Use a previously created buffer as the active VBO.BufferDataARB(enum target, sizeiptrARB size, const void *data, enum usage)
Upload data to the active VBO.DeleteBuffersARB(sizei n, const uint *buffers)
Deletes the specified number of VBOs from the supplied array or VBO id.Example usage in c99
References
Further reading
[http://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt Vertex Buffer Object Whitepaper]
Wikimedia Foundation. 2010.