Pelo que li, parece que os VBOs são puramente para desempenho.
Estou trabalhando em um projeto de aprendizado muito rudimentar no lwjgl e só estou tentando descobrir em quais recursos mais avançados da biblioteca devo me aprofundar e qual é a utilidade deles.
Meu entendimento é que os VBOs permitem que uma pessoa mantenha vértices na VRAM enquanto ela não está sendo desenhada em uma cena. No meu caso, estou apenas desenhando quads e o desempenho provavelmente não é uma preocupação, mas estou tentando entender o que está acontecendo sob o capô. Se estou desenhando quads diretamente, estou desenhando na memória da CPU, correto? Além disso, se não estou verificando a visibilidade, isso significa que estou processando absolutamente tudo na "cena", independentemente de estar em exibição? Os VBOs são uma maneira de armazenar objetos e renderizar apenas o necessário?
Os buffers de matriz OpenGL (= o que chamamos de VBO) têm um único objetivo: manter seus dados geométricos dentro da memória da GPU e não da memória do cliente, para que você não precise reenviá-lo a cada quadro.
Tão simples como isso :-)
fonte