我有一个点的顶点缓冲区,它们是每个圆的中心(三角形扇形)。我怎么拿这些,让我们说在这个点周围画10个三角形,然后移动到下一个点?我找不到任何示例代码。
答案 0 :(得分:6)
如果您使用旧管道,则必须glEnd()
然后glBegin()
。
如果要发出绘制调用,则可以使用原始重启函数,其中索引可以指定为开始新原语。所有归功于datenwolf指出这一点,我已经把它从我的记忆中清空了。
然而,我个人仍然认为你最好只使用索引三角形,然后你可以随时重复使用你想要的任何顶点。它更简单,驱动程序/硬件会感谢你。
(换句话说,不要使用GL_TRIANGLE_FAN
- 只需使用GL_TRIANGLES
。无论如何都是硬件绘制。
答案 1 :(得分:2)
您可以使用原始重启索引执行此操作。您设置了一个特殊的索引值(通常是用于索引的类型可表示的最大数字)。然后,只要在索引缓冲区中遇到此索引,就会启动一个新的原语,就好像已经发出多次调用glDraw ...一样。
http://www.opengl.org/sdk/docs/man3/xhtml/glPrimitiveRestartIndex.xml