gl_triangle_strip vs gl_triangle_fan

时间:2013-12-05 08:15:21

标签: opengl gl-triangle-strip

我需要一个多边形的例子,只能通过triangle_strip和另一个只能通过triangle_fan完成的多边形来完成。

2 个答案:

答案 0 :(得分:50)

当知道 Triangle Strip Triangle Fan 之间的区别时,很容易形成一个形状。

三角带

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

三角带的示例

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

enter image description here

Triangle Fan

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

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

三角扇示例

使用 Triangle Fan 和与其他示例相同的顶点,我们只能将彩色区域作为输出。这是由于 Triangle Fan 中顶点排列顺序的重要性。 基本上,所有顶点都需要围绕中心顶点。

enter image description here

结论

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

附加

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

答案 1 :(得分:8)

难以用纯文字回答。对于Fan来说,S形状是不可能的(一般来说,记住风扇是有限的,因为每个三角形都有一个共同的点)。

至于另一种方式 - 这是一个棘手的问题。 triangle_strip可以执行每个triangle_fan多边形,虽然它需要一些技巧。 考虑以下多边形(显示的排序是针对triangle_fan)

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

这可以按如下方式完成

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

注意重叠的多边形。如果你不允许双面多边形或重叠,那么这就是一个只有扇形的例子,我猜想。