Vertex Buffer Object

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 the Nvidia-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

/* Create a variable to hold the VBO identifier */unsigned int id;

/* Vertices of a triangle (counter-clockwise winding) */float data [] = {1.0, 0.0, 1.0, 0.0, 0.0, -1.0, -1.0, 0.0, 1.0};

/* Create a new VBO and use the variable id to store the VBO id */glGenBuffersARB(1, &id);

/* Make the new VBO active */glBindBufferARB(GL_ARRAY_BUFFER_ARB, id);

/* Upload vertex data to the video device */glBufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(data), data, GL_STATIC_DRAW_ARB);

References

Further reading

[http://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt Vertex Buffer Object Whitepaper]


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • Vertex Buffer Object — Les VBOs (de l anglais Vertex Buffer Object dont une traduction pourrait être objet tampon de vertex) est en OpenGL une méthode qui permet d envoyer des données 3D (vertex, normales, maillage, couleurs, etc) vers la carte graphique. Cette méthode …   Wikipédia en Français

  • OpenGL — Original author(s) Silicon Graphics Developer(s) Khronos Group Stable release 4.2 …   Wikipedia

  • Comparison of AMD graphics processing units — For information on Nvidia graphics processing units, see Comparison of Nvidia graphics processing units. This page contains general information about the GPUs and video cards by Advanced Micro Devices (AMD), including those by ATI Technologies… …   Wikipedia

  • Comparison of ATI graphics processing units — This page contains general information about ATI s GPUs and video cards based on official ATI specifications in table form. DirectX version noteDirectX version indicates which graphics acceleration operations the card supports. * DirectX 6.0… …   Wikipedia

  • VBO — may refer to:* Vainu Bappu Observatory * Vertex Buffer Object, an OpenGL extension for faster rendering of triangles. * Federation of Belgian Enterprises, Verbond van Belgische Ondernemingen in Dutch …   Wikipedia

  • Comparison of Nvidia graphics processing units — For information on AMD (previously ATI) graphics processing units, see Comparison of AMD graphics processing units. This page contains general information about Nvidia s GPUs and videocards based on official Nvidia specifications. Contents 1… …   Wikipedia

  • Microsoft Direct3D — Direct3D is part of Microsoft s DirectX application programming interface (API). Direct3D is available for Microsoft Windows operating systems (Windows 95 and above), and for other platforms through the open source software Wine. It is the base… …   Wikipedia

  • Direct3D — is part of Microsoft s DirectX API. Direct3D is only available for Microsoft s various Windows operating systems (Windows 95 and above) and is the base for the graphics API on the Xbox and Xbox 360 console systems. Direct3D is used to render… …   Wikipedia

  • Сравнение графических процессоров NVIDIA — Эта таблица содержит основную информацию о графических процессорах NVIDIA серии GeForce и видеокартах, построенных на официальных спецификациях NVIDIA. Содержание …   Википедия

  • Сравнение графических процессоров AMD — Эта таблица содержит основную информацию о графических процессорах AMD и видеокартах, построенных на официальных спецификациях AMD. Содержание …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”