OpenGL: рисовать линии с помощью VBO - PullRequest
9 голосов
/ 28 апреля 2011

Как нарисовать несколько отдельных линий, используя один VBO?

Ответы [ 2 ]

19 голосов
/ 28 апреля 2011

glDrawElements(GL_LINES, ..., ..., ...);

8 голосов
/ 28 апреля 2011

В OpenGL-3.1 и более поздних версиях есть функция, называемая примитивный перезапуск . Он работает путем указания специального индекса элемента массива вершин, который вызывает перезапуск текущего примитива. Таким образом, один массив элементов позволяет рисовать несколько GL_LINE_STRIP, GL_LINE_LOOP, GL_TRIANGLE_FAN, GL_TRIANGLE_STRIP, GL_QUAD_STRIP.

http://www.opengl.org/sdk/docs/man4/xhtml/glPrimitiveRestartIndex.xml

Это в значительной степени основано на расширении NV_primitive_restart: http://www.opengl.org/registry/specs/NV/primitive_restart.txt

Кроме того, вы можете использовать примитивный тип, в котором вершины не являются общими, и немного взорвать массив индекса элемента.

...