我需要一个只能使用
GL_TRIANGLE_STRIP
完成的多边形的示例,以及另一个只能使用GL_TRIANGLE_FAN
完成的多边形的示例。GL_TRIANGLE_STRIP
完成的多边形的示例,以及另一个只能使用GL_TRIANGLE_FAN
完成的多边形的示例。了解三角带和三角扇的区别后,制作一个形状将变得很容易。
例如,三角带是一组共享顶点的连接三角形。
使用三角带,我们将能够获得以下输出,使用给定的顶点。
三角扇也是一组连接的三角形,但这些三角形都有一个共同的顶点,即中心顶点。
在OpenGL中,三角扇的中心顶点是第一个给定的顶点。
使用三角扇和相同的顶点作为其他示例,我们只能得到彩色区域作为输出。这是由于在三角扇中顶点的排列顺序的重要性。基本上,所有顶点都需要绕中心顶点。
正如您在我们的两个示例顶点集上看到的,这些“输出形状”对于三角带和三角扇都是独特的。
注意:图像示例使用顺时针绕序,而在OpenGL中正面使用逆时针绕序,即这些示例实际上是背对着相机的。如果启用面剔除,则这是一个重要的细节。
我在这里回答了一个类似的问题,如果你想的话可以阅读一下,因为这些问题是相关的,我实际上使用了相同的图片。
在纯文本中很难回答。对于Fan来说,S形是不可能的(一般而言,记住Fan的局限性在于每个三角形都有一个共同点)。
至于反过来 - 这是一个诡计问题。triangle_strip可以完成每个triangle_fan多边形,尽管需要一些诡计。 考虑以下多边形(排序显示为triangle_fan)
3--4--5
|\ | /|
2--1--6
| \|
8--7
2-----4
| \ /|
1--3/7|
| \|
6--5
strip
总是使用一个三角形的最后2个顶点作为下一个三角形的前2个顶点。因此,在条带图中,想象一下做前3个三角形,然后想要添加一个三角形C-E-G而不是D-E-G。无法这样做,因为D-E自动成为第4个三角形的起点。可以使用fan
来实现结果,因为有一个共同的顶点。结果的图表:维基-三角形扇形 - ToolmakerSteve