32

我需要一个只能由 完成的GL_TRIANGLE_STRIP多边形和另一个只能由 完成的多边形的示例GL_TRIANGLE_FAN

4

2 回答 2

67

当知道三角条三角扇之间的区别时,形状将很容易制作。

三角带

例如,三角形带是一组共享顶点的连接三角形。

三角带示例

使用Triangle Strip,我们将能够使用给定的顶点获得以下输出。

在此处输入图像描述

三角扇

三角也是一组相连的三角形,尽管所有这些三角形都有一个共同的顶点,即中心顶点。

在 OpenGL 中,中心顶点是第一个给定的顶点,在Triangle Fan中。

三角扇示例

使用三角形扇形和与另一个示例相同的顶点,我们将只能获得彩色区域作为输出。这是由于三角扇中顶点排列顺序的重要性。基本上,所有顶点都需要围绕中心顶点。

在此处输入图像描述

结论

正如您在我们的 2 组示例顶点中看到的那样,这些“输出形状”对于Triangle StripTriangle Fan都是唯一的。

注意:图像示例使用顺时针缠绕顺序,而在 OpenGL 中,正面使用逆时针缠绕顺序,即示例实际上是背对相机的。如果启用了面部剔除,这是一个重要的细节。

额外的

我在这里做了一个类似的答案,如果你愿意,你可以阅读它,我实际上使用了相同的图像,因为问题密切相关。

于 2013-12-05T08:23:54.397 回答
10

很难用纯文字回答。对于 Fan 来说,S 形是不可能的(通常,请记住,fan 是有限的,因为每个三角形都有一个共同点)。

至于反过来 - 这是一个技巧问题。triangle_strip 可以做每个 triangle_fan 多边形,尽管它需要一些技巧。考虑以下多边形(显示的顺序是针对 triangle_fan)

3--4--5
|\ | /|
2--1--6
   | \|
   8--7

这可以按如下方式完成

2-----4
| \  /|
1--3/7| 
   | \|
   6--5

注意重叠的多边形。如果您不允许双面多边形或重叠,那么这将是一个仅扇形多边形的示例,我想。

于 2013-12-05T08:20:24.003 回答