gl_triangle_strip vs gl_triangle_fan

tig*_*res 27 opengl gl-triangle-strip

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

Val*_*tin 55

当了解Triangle StripTriangle Fan之间的区别时,将很容易形成一个形状.

三角带

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

三角带的例子

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

在此输入图像描述

三角扇

当一个三角形扇也是一组相连的三角形的,尽管所有这些三角形都有一个共同的顶点,这是中央的顶点.

在OpenGL中,中心顶点是三角扇中的第一个给定顶点.

三角扇的例子

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

在此输入图像描述

结论

正如您在我们的2个顶点示例集中所看到的那样,"输出形状"对于Triangle StripTriangle Fan来说都是唯一的.

额外

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

  • 更好的解释是,“ strip”总是使用一个三角形的最后2个顶点作为下一个三角形的前2个顶点。因此,在带状图中,想象先做三个三角形,然后想添加一个三角形CEG而不是DEG。之所以不能这样做,是因为DE会自动成为三角形4的起点。由于存在一个共同的顶点,因此可以使用“扇形”来完成结果。结果图:[Wiki- Triangle fan](https://en.wikipedia.org/wiki/Triangle_fan) (2认同)

Oli*_*ews 9

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

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

3--4--5
|\ | /|
2--1--6
   | \|
   8--7
Run Code Online (Sandbox Code Playgroud)

这可以如下完成

2-----4
| \  /|
1--3/7| 
   | \|
   6--5
Run Code Online (Sandbox Code Playgroud)

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