繁体   English   中英

三角形风扇使用opengl有多少个顶点

[英]How many vertices does a triangle fan use opengl

我正在学习openGL,我遇到了使用顶点缓冲对象的三角扇。 如果给定要渲染的顶点数组,openGL如何确定必须使用多少个顶点来构造三角形扇形。 似乎可以使用顶点的任意数量。

通过比较Triangle StripsTriangle Fans可以很容易地解释这一点。

三角带

您可能知道,Triangle Strip是一组共享顶点的连接三角形,这样可以更有效地使用内存。 (我们节省了内存,因为我们不存储所有重复的顶点)

三角带的示例

在此输入图像描述

三角扇

另一方面,我们有一个三角扇,这也是一组连接的三角形。 虽然所有这些三角形都有一个共同的顶点,即中心顶点。 (第一个顶点始终是中心)

据说我们可以拍摄上面相同的图像并改变顶点的顺序。 完成后,Triangle Fan会是这样的。 (其中A,是第一个和中心顶点)

三角扇的示例

在此输入图像描述

在上面的图像中,三角扇只能在彩色区域中工作,因为顶点需要根据三角扇来排列。

从视觉上看,这就是三角扇的工作原理:

每个三角形共享中心顶点A ,并重新使用最后一个寻址的顶点。 因此,在定义ABC每个跟随三角形仅需要1个点(例如DEF )。

Indices:     A,B,C,D,E,F     [Count: 6]
Triangles:  (A,B,C)
            (A) (C,D)
            (A)   (D,E)
            (A)     (E,F)    [N=4]  -->  4+2 = 6

另一种思考方式是每个三角形共享一个从中心顶点到先前三角形辐射的边缘; 字面意思是折叠纸扇。

纸扇

您需要N + 2个顶点,其中N是扇形中的三角形数。

看这里: GL_TRIANGLE范​​说明

您为openGL提供的顶点越多,获得的三角形就越多。 第一个顶点对所有三角形都是通用的。 第一个三角形由顶点1,2和3组成。第二个三角形由1,3和4组成。依此类推。 对于n个顶点,你得到n - 2个三角形。

这是由用于执行渲染的命令指定的。 例如, drawArrays()drawElements()都有一个count参数,它指定要使用的顶点数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM