Обновление данных вершин в VBO (glBufferSubData vs glMapBuffer)
Я хочу обновить список вершин объекта после создания VBO. Я видел и glBufferSubData, и glMapBuffer, и они оба, похоже, делают похожие вещи, что означает, что я теперь не уверен, какой из них использовать.
Мой псевдо рабочий процесс:
Создать объект
Begin vertex update (вызывает glBufferData с data = nullptr)
Обновить вершины объекта
End vertex update (принимает обновленные вершины и либо вызываетglBufferSubData, либоglMapBuffer)
1 ответ:
Оба работают.
Если вы собираетесь часто обновлять вершины (каждый кадр или около того), я рекомендую избегать glBufferSubData, который требует еще одного memcpy в драйвере. glMapBuffer/glMapBufferRange обычно дает вам больше perf.
Если вы обновляете только редко, glBufferSubData будет работать нормально.
Смотрите также Главу 28 OpenGL Insights (бесплатно: http://openglinsights.com/ )
Comments