Как нарисовать несколько элементов в одном VBO в OpenGL? - PullRequest
0 голосов
/ 27 февраля 2019

Предположим, что у меня есть M многоугольников, которые имеют некоторую форму и порядок вершин.
Если я создаю vbo для каждого многоугольника, то у меня есть M vbos.
Когда я хочу нарисовать их, я должен достичьМ петля на моем процессоре.Это слишком медленно из-за того, что M слишком велико.
Так что я хочу создать только один vbo для хранения всех вершин многоугольника.Но когда я хочу нарисовать vbo, используя GL_POLYGON, opengl будет рассматривать все вершины в этом vbo как вершины одного многоугольника.
Таким образом, вывод состоит в том, что несколько многоугольников объединяются, что не исключено.
Так что мой вопросэто то, как я могу разделить несколько вершин многоугольника в одном vbo.
Я знаю, что если я рассматриваю каждый многоугольник как множество треугольников и сохраняю соответствующие индексы вершин в эбо, это работа.Но этот метод может не работать для нескольких линий, и для триангуляции требуются затраты времени.
Но я думаю, что должен быть более подходящий метод.

1 Ответ

0 голосов
/ 28 февраля 2019

Храните все вершины в одном vbo (как вы упомянули в своем вопросе).

Затем вы можете нарисовать их все сразу с помощью glMultiDrawArrays ( документации и далее).объяснение ).

...