深入浅出OpenGL的glDrawArray函数
glDrawArrays函数原型:
void glDrawArrays(GLenum mode,GLint first,GLsizei count)
GLenum参数详解
GLenum可选参数如下(点1个,线段3个,三角形3个,共7个)
GL_POINTS
解释:每个顶点作为1个点,
点的组织形式:(v0),(v1),(v2)...
使用场景:粒子系统,点云
GL_LINES
解释:每两个顶点画一个独立线段
点的组织形式:(v0,v1),(v1,v2),(v3,v4)...
使用场景:网格线,线框模型
GL_LINE_LOOP
解释:连续折线并闭合,最后一个点默认连第一个
点的组织形式:(v0,v1,v2,v3,v4,v5) v5默认连v0
使用场景:轮廓线,闭合路径
GL_LINE_STRIP
解释:连续折线,和GL_LINE_LOOP很像,只是最后一个点不会连第一个
点的组织形式: (v0,v1,v2,v3,v4....)
使用场景:移动轨迹,路径
GL_TRIANGLES
解释:每三个顶点一个独立的三角形
点的组织形式: (v0,v1,v2),(v3,v4,v5)...
使用场景:
GL_TRIANGLE_FAN
解释:扇形三角形,所有三角形共享第一个顶点
点的组织形式:(v0,v1,v2),(v0,v2,v3),(v0,v3,v4)....
使用场景:圆形,扇形,凸多边形
GL_TRIANGLE_STRIP
解释:三角形带,高效绘制连续三角形,相邻三角形共享两个顶点
点的组织形式: (v0,v1,v2),(v2,v1,v3),(v2,v3,v4),(v4,v3,v5)....
*(偶数个三角形时,前两个顶点绕序交换)
使用场景:网格,曲面
现代OpenGL已经弃用了三个参数:(deprecated),不再阐述
GL_QUADS
GL_QUAD_STRIP
GL_POLYGON