首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GL_TRIANGLE_STRIP vs GL_TRIANGLE_FAN

GL_TRIANGLE_STRIP vs GL_TRIANGLE_FAN
EN

Stack Overflow用户
提问于 2013-12-05 16:15:21
回答 2查看 49.4K关注 0票数 32

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-05 16:23:54

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

三角形条带

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

三角形条带的示例

使用三角形条带,我们将能够得到以下输出,使用这些给定的顶点。

三角形风扇

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

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

三角形风扇的示例

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

结论

正如你所看到的,在我们的两组示例顶点上,这些“输出形状”对于三角形条带和三角扇形都是唯一的。

注:图像示例使用顺时针winding order,而在OpenGL中,正面使用逆时针缠绕顺序,即示例实际上是面向远离相机的。如果启用了face culling,这是一个重要的细节。

额外的

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

票数 66
EN

Stack Overflow用户

发布于 2013-12-05 16:20:24

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

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

代码语言:javascript
复制
3--4--5
|\ | /|
2--1--6
   | \|
   8--7

这可以按如下方式完成

代码语言:javascript
复制
2-----4
| \  /|
1--3/7| 
   | \|
   6--5

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

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20394727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档