[英]How many vertices does a triangle fan use opengl
我正在学习openGL,我遇到了使用顶点缓冲对象的三角扇。 如果给定要渲染的顶点数组,openGL如何确定必须使用多少个顶点来构造三角形扇形。 似乎可以使用顶点的任意数量。
通过比较Triangle Strips和Triangle Fans可以很容易地解释这一点。
您可能知道,Triangle Strip是一组共享顶点的连接三角形,这样可以更有效地使用内存。 (我们节省了内存,因为我们不存储所有重复的顶点)
另一方面,我们有一个三角扇,这也是一组连接的三角形。 虽然所有这些三角形都有一个共同的顶点,即中心顶点。 (第一个顶点始终是中心)
据说我们可以拍摄上面相同的图像并改变顶点的顺序。 完成后,Triangle Fan会是这样的。 (其中A,是第一个和中心顶点)
在上面的图像中,三角扇只能在彩色区域中工作,因为顶点需要根据三角扇来排列。
每个三角形共享中心顶点A
,并重新使用最后一个寻址的顶点。 因此,在定义ABC
每个跟随三角形仅需要1个点(例如D
, E
, F
)。
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
另一种思考方式是每个三角形共享一个从中心顶点到先前三角形辐射的边缘; 字面意思是折叠纸扇。
看这里: GL_TRIANGLE范说明
您为openGL提供的顶点越多,获得的三角形就越多。 第一个顶点对所有三角形都是通用的。 第一个三角形由顶点1,2和3组成。第二个三角形由1,3和4组成。依此类推。 对于n个顶点,你得到n - 2个三角形。
这是由用于执行渲染的命令指定的。 例如, drawArrays()
和drawElements()
都有一个count
参数,它指定要使用的顶点数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.