OpenGL:用VBO绘制线条

itu*_*tun 9 opengl lines vbo

如何使用单个VBO绘制几个单独的行?

gen*_*ult 19

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

  • 对.真的没有别的东西.这是正确的答案.每对点形成一条线.因此,您可以在一个巨大的VBO中存储无限的行. (3认同)

dat*_*olf 8

在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

除此之外,您可以使用不共享顶点的基本类型,并稍微炸掉元素索引数组.