如何使用单个VBO绘制几个单独的行?
答案 0 :(得分:19)
glDrawElements(GL_LINES, ..., ..., ...);
答案 1 :(得分:8)
在OpenGL-3.1及更高版本中,有一个名为 primitive restart 的功能。它的工作原理是指定一个特殊的顶点数组元素索引,该索引会导致重新启动当前基元。这样,单个元素数组允许绘制多个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
除此之外,您可以使用不共享顶点的基本类型,并稍微夸大元素索引数组。