OpenGL:使用VBO绘制线条

9
如何使用单个VBO绘制多条分离的线段?
2个回答

19

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


3
是的,确实没有其他的了。这就是正确的答案。每一对点形成一条线。因此,您可以在一个巨大的VBO中存储无限数量的线。 - TheBuzzSaw

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 除此之外,还可以使用一种不共享顶点的原始类型,并稍微扩大元素索引数组。

glDrawElements应该足够了 - 正如你所说,原始重启在所有版本中都不可用。 - paulm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接