Основной причиной существования VBO является наличие статических данных на 3D-моделях. Первое узкое место, с которым вы сталкиваетесь, - это медленное копирование данных в видеопамять (с помощью недоступного блока glBegin / glEnd или glVertexPointer, glBufferData и друзей).
Давайте представим старый скринсейвер "Летящий тостер". Все тосты статичны (меняются только позиции) - зачем тратить ресурсы на копирование каждого кадра из памяти ЦП в ГП? Скопируйте его один раз с буферами и нарисуйте его одной командой. И, в зависимости от того, как вы делаете анимацию, даже анимированные тостеры можно описать статично.
Моя первая 2D-игра началась без VBO. Когда я перешел на VBO, без разницы (как у Роба). Но когда я реорганизовал использование большего количества статических буферов, FPS изменился с 20 до 40. Поскольку моя цель была достичь 30, я был удовлетворен. У меня были некоторые идеи по рефакторингу еще больше, оставив все статичным, но у меня сейчас нет времени (игра находится на рассмотрении, следующая будет).