Обновление данных вершин в VBO (glBufferSubData vs glMapBuffer)



Я хочу обновить список вершин объекта после создания VBO. Я видел и glBufferSubData, и glMapBuffer, и они оба, похоже, делают похожие вещи, что означает, что я теперь не уверен, какой из них использовать.



Мой псевдо рабочий процесс:




Создать объект

Begin vertex update (вызывает glBufferData с data = nullptr)

Обновить вершины объекта

End vertex update (принимает обновленные вершины и либо вызывает glBufferSubData, либо glMapBuffer)


595   1  

1 ответ:

Оба работают.

Если вы собираетесь часто обновлять вершины (каждый кадр или около того), я рекомендую избегать glBufferSubData, который требует еще одного memcpy в драйвере. glMapBuffer/glMapBufferRange обычно дает вам больше perf.

Если вы обновляете только редко, glBufferSubData будет работать нормально.

Смотрите также Главу 28 OpenGL Insights (бесплатно: http://openglinsights.com/ )

Comments

    Ничего не найдено.