我有一个顶点缓冲区,这些点将成为每个圆的中心(三角形扇形)。我该如何处理这些,比如说在这个点周围画 10 个三角形,然后移动到下一个点?我找不到任何示例代码。
问问题
1319 次
2 回答
6
如果您使用的是旧管道,glEnd()
则必须这样做。glBegin()
如果您正在发出绘图调用,您可以使用图元重新启动功能,其中可以指定索引作为新图元的开始。感谢datenwolf指出这一点,我已经清楚地将它从我的记忆中抹去。
但是,就个人而言,我仍然认为您最好只使用索引三角形,然后您可以随时重新使用您想要的任何顶点。它更简单,驱动程序/硬件会感谢您。
(换句话说,不要使用GL_TRIANGLE_FAN
- 只需使用GL_TRIANGLES
。无论如何,这都是硬件绘制)。
于 2012-12-24T16:06:21.877 回答
2
您可以使用原始重启索引来执行此操作。您设置一个特殊的索引值(通常是用于索引的类型可表示的最大数字)。然后,每当在索引缓冲区中遇到这个索引时,就会启动一个新的原语,就好像多次调用 glDraw... 一样。
http://www.opengl.org/sdk/docs/man3/xhtml/glPrimitiveRestartIndex.xml
于 2012-12-24T19:45:08.790 回答