From my basic understanding, a Vertex Buffer Object works something like this (pseudo code):
Normally, if one wanted to say, draw a square, one could issue line drawing commands.
line (0, 0) -> (1, 0)
line (1, 0) -> (1, 1)
line (1, 1) -> (0, 1)
line (0, 1) -> (0, 0)
Using a VBO, if I understand correctly, would load the vertices into a VBO.
define VBO
load (0,0) -> VBO
load (1,0) -> VBO
load (1,1) -> VBO
load (0,1) -> VBO
load (0,0) -> VBO
Then you can issue one drawing command.
draw VBO vertices
While I understand how VBOs work, I don't know why they improve performance.
How do they improve performance?