OpenGL绘制方式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zjz520yy/article/details/83904360

什么是图元:图元是组成3D物体的基础单元,是顶点的集合以预定义的方式结合在一起。而预定义的方式可以是一维的点,二维的线,甚至是三维的多边形等。 常见的图元类型如图所示:
这里写图片描述

绘制点常用接口:点的图元为GL_POINTS呈正方形状,不受透视除法影响(也就是不近大远小)。点的大小都会自动修正成允许的间距和范围内的值。
1.glPointSize(GLFloat size):设置默认点大小。
2.glGetFloatv(GL_POINT_SIZE_RANGE, GLFloat size[2]):获取点的最小和最大值,并存储在size参数中。
3.glGetFloatv(GL_POINT_SIZE_GRANULARITY, GLFloat* step):获取相邻点之间的最小间距。
4.glEnable(GL_PROGRAM_POINT_SIZE):使用程序点大小模式来设置点大小,其中点大小设置方式为:“gl_PointSize = 数值”。

绘制线常用接口:两点组合成一条线,在绘制时通常可以绘制线,线段和线环。它们之间区别分别如下:
1.线:图元为GL_LINES。是任意两个点组成的一条线。
2.线段:图元为GL_LINE_STRIP。是任意一个点可以作为起点和终点,这样一个点就要绘制两次,性能相对绘制线而言会低一些,但是绘制的线是连续的。
3.线环:图元为GL_LINE_LOOP。是在线段的基础上记录一下起点,当线段绘制完毕后就从终点到起点之间再绘制一条线,这样就将所有点绘制一条闭合的环。

绘制接口如下:
1.glLineWidth(GLFloat width):设置线宽,宽度值为width大小。

绘制三角形常用接口:可以绘制三角形,三角形带和三角形环。
它们之间区别如下:
1.三角形:图元为GL_TRIANGLE。三角形是OpenGL唯一支持的多边形,也是光栅化硬件最喜欢的多边形。
2.三角形带:图元为GL_TRIANGLE_STRIP。是一串相连的三角形。由于只需绘制第一个三角形,其他三角形只需要指定一个顶点,从而可以节省大量时间开销。
3.三角形环:图元为GL_TRIANGLE_FAN。是一组围绕同一个中心顶点相连的三角形。跟三角形带一样,由于绘制的顶点数变少,从而可以节省大量时间开销。

绘制接口如下:
1.glFrontFace(GL_CW/GL_CCW):GL_CW表示指定顺时针方向环绕的多边形是正面;GL_CCW表示指定逆时针方向环绕的多边形是正面,这也是默认设置方式。

绘制多边形常用接口:三角形也是属于一种多边形。绘制其他多边形时,常用接口如下:
1.glPolygonMode(GLenum face, GLenum mode):按照指定面和指定模式来绘制多边形。其中face通常可以取正面(GL_FRONT),背面(GL_BACK)以及正反面(GL_FRONT_AND_BACK)。mode通常可以取线(GL_LINE),点(GL_POINT)以及实心填充(GL_FILL)。
2.glPolygonOffset(GLfloat factor, GLfloat uints):多边形偏移函数。通常用在同一个像素上存在相同深度值时,为了让深度测试针对相同值的像素进行正确的绘制,就需要对指定像素的深度值进行偏移了。

猜你喜欢

转载自blog.csdn.net/zjz520yy/article/details/83904360