我需要一个只能由 完成的GL_TRIANGLE_STRIP
多边形和另一个只能由 完成的多边形的示例GL_TRIANGLE_FAN
。
2 回答
当知道三角条和三角扇之间的区别时,形状将很容易制作。
三角带
例如,三角形带是一组共享顶点的连接三角形。
三角带示例
使用Triangle Strip,我们将能够使用给定的顶点获得以下输出。
三角扇
三角扇也是一组相连的三角形,尽管所有这些三角形都有一个共同的顶点,即中心顶点。
在 OpenGL 中,中心顶点是第一个给定的顶点,在Triangle Fan中。
三角扇示例
使用三角形扇形和与另一个示例相同的顶点,我们将只能获得彩色区域作为输出。这是由于三角扇中顶点排列顺序的重要性。基本上,所有顶点都需要围绕中心顶点。
结论
正如您在我们的 2 组示例顶点中看到的那样,这些“输出形状”对于Triangle Strip和Triangle Fan都是唯一的。
注意:图像示例使用顺时针缠绕顺序,而在 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
注意重叠的多边形。如果您不允许双面多边形或重叠,那么这将是一个仅扇形多边形的示例,我想。