Трудность понимания использования VBO - PullRequest
0 голосов
/ 17 февраля 2012

Итак, я пытаюсь реализовать VBO, но не могу найти хорошее руководство или документацию по их правильному использованию. Я предполагаю, что вы создаете VBO, когда какой-то объект нуждается в нем, а затем, когда появляется следующий кадр, он рисуется / перерисовывается. Но вот где я запутался:

  • Как нарисовать несколько VBO?
  • Как мне изменить VBO?
  • Когда и где мне сделать новый VBO?

Мне очень жаль, и я только изучаю OpenGL, так что извините за это! Но трудно найти учебник, который не просто создает один VBO, и не делает этот VBO одновременно с рисованием.

Главным образом, я прошу лучше понять, как работают VBO, где они хранятся и как они рисуются. Сколько VBO слишком много? Когда я звоню glVertexPointer(), что именно происходит с сохраненными VBO? Что если я пытаюсь нарисовать VBO разных типов? (просто использовать треугольники?)

1 Ответ

0 голосов
/ 17 февраля 2012

Как нарисовать несколько VBO?

VBO - это хранилище данных, как текстуры.Есть функция с именем glBindBuffer, которая связывает VBO для последующего доступа через glVertexAttribPointer.

Как изменить VBO?

glBufferSubData

или

buf = glMapBuffer(...);
modify_on(buf);
glUnmapBuffer(...);

Когда и где я делаю новое VBO?

Всякий раз, когда существующие VBO больше не могут удовлетворить ваши требования.Либо потому, что они маленькие, полные или не соответствуют вашему типу данных.

...