OpenGL:用 VBO 画线
Posted
技术标签:
【中文标题】OpenGL:用 VBO 画线【英文标题】:OpenGL: Draw lines with VBO 【发布时间】:2011-04-28 15:24:44 【问题描述】:如何使用单个 VBO 绘制多条单独的线?
【问题讨论】:
【参考方案1】:glDrawElements(GL_LINES, ..., ..., ...);
【讨论】:
是的。真的没有别的了。这是正确的答案。每对点形成一条线。因此,您可以在一个巨大的 VBO 中存储无限的行。【参考方案2】:在 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
除此之外,您还可以使用不共享顶点的原始类型并稍微放大元素索引数组。
【讨论】:
glDrawElements 应该足够了 - 再加上你所说的原始重启并非在所有版本中都可用。以上是关于OpenGL:用 VBO 画线的主要内容,如果未能解决你的问题,请参考以下文章