使用三角形带原因:减少顶点传递,渲染时api向显卡传输数据量是瓶颈,用较好的传递方法传递一个三角形最少可以少于一个点。

点的顺序根据奇数,偶数不一样的原因:保持所有三角形法线在同一方向。

原文:http://blog.sina.com.cn/s/blog_6084f58801019dja.html

在某些情况下GL_TRIANGLE_STRIP的绘图方式常常使人困惑,下面将对其进行解释。

 GL_TRIANGLE_STRIP是将顶点传递给opengl渲染管道线(pipeline)进行进一步处理的方式(创建几何图形)。还有另外两种GL_TRIANGLES和GL_TRIANGLE_FAN. 关于另外两种方式,参考opengl programming guide。

观察下图,感受一下triangle strip。

OPENGL_三角形带GL_TRIANGLE_STRIP详解-LMLPHP

这个strip 由6个点构成了四个三角形,顶点传递到渲染管道线的顺序是影响环绕顺序的关键。

创建一个三角形至少需要三个顶点,每一个新增的顶点都形成一个新的三角形。三角形将根据顶点序号的奇偶自行创建:

偶数环绕规则:

OPENGL_三角形带GL_TRIANGLE_STRIP详解-LMLPHP

奇数环绕规则:

OPENGL_三角形带GL_TRIANGLE_STRIP详解-LMLPHP

我们来剖析一下上面的例子感受一下:

l   V1,v2,v3形成了第一个三角形,你也可以说v3是奇数,所以由v1,v2,v3构成。

l   V4是偶数,所以下一个三角形由v3,v2,v4构成。

l   V5是奇数,所以下一个三角形由v3,v4,v5构成

l   V6是偶数,所以下一个三角形由v5,v4,v6构成

考虑到两种绘制三角形的方式,环绕方式作为保留

05-23 19:35