1

我有一个顶点缓冲区,这些点将成为每个圆的中心(三角形扇形)。我该如何处理这些,比如说在这个点周围画 10 个三角形,然后移动到下一个点?我找不到任何示例代码。

4

2 回答 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 回答