OpenGL:使用 VBO 绘制线条
如何使用单个VBO绘制多条单独的线?
How to draw several separate lines using a single VBO?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何使用单个VBO绘制多条单独的线?
How to draw several separate lines using a single VBO?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
glDrawElements(GL_LINES, ..., ..., ...);
glDrawElements(GL_LINES, ..., ..., ...);
在 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
除此之外,您可以使用顶点不共享的原始类型,并稍微放大元素索引数组。
In OpenGL-3.1 and later there's a functionality called primitive restart. It works by specifying a special vertex array element index that causes the current primitive to be restarted. That way a single element array allows to draw several 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
This is largely based on the NV_primitive_restart extension: http://www.opengl.org/registry/specs/NV/primitive_restart.txt
Apart from that you can use a primitive type in which vertices are not shared and blow up the element index array a bit.