1. glVertex:指定顶点
C语言描述
glVertex2d(GLdouble x, GLdouble y);
glVertex3d(GLdouble x, GLdouble y, GLdouble z);
glVertex3s(GLshort x, GLshort y, GLshort z);
glVertex4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
glVertex4s(GLshort x, GLshort y, GLshort z, GLshort w);
glVertex2dv(const GLdouble *v);
glVertex3dv(const GLdouble *v);
glVertex3sv(const GLshort *v);
glVertex4dv(const GLdouble *v);
glVertex4sv(const GLshort *v);
参数
x,y,z
w
*v
说明
glVertex函数使用在glBegin/glEnd语句之间,用来指定点、线和多边形的顶点。当调用glVertex函数指定顶点时,可以为该顶点指定相关的数据,即顶点的当前颜色、法向量和纹理坐标。
2. glBegin,glEnd:限定一个或多个图元顶点的绘制
C语言描述
void glBegin(GLenum mode);
void glEnd(void);
参数
mode
说明
GL_LINES:把每一个顶点作为一个独立的线段,顶点2n-1和2n之间共定义了n个线段,总共绘制N/2条线段。,如果N为奇数,则忽略最后一个顶点。
GL_LINE_STRIP:绘制从第一个顶点到最后一个顶点依次相连的一组线段,第n和n+1个顶点定义了线段n,总共绘制N-1条线段。
GL_LINE_LOOP:绘制从定义第一个顶点到最后一个顶点依次相连的一组线段,然后最后一个顶点与第一个顶点相连。第n和n+1个顶点定义了线段n,然后最后一个线段是由顶点N和1之间定义,总共绘制N条线段。
GL_TRIANGLES:把每三个顶点作为一个独立的三角形。顶点3n-2,3n-1和3n定义了第n个三角形,总共绘制N/3个三角形。
GL_TRIANGLE_STRIP:绘制一组相连的三角形。对于奇数点n,顶点n,n+1和n+2定义了第n个三角形;对于偶数n,顶点n+1,n和n+2定义了第n个三角形,总共绘制N-2个三角形。
GL_TRIANGLE_FAN:绘制一组相连的三角形。三角形是由第一个顶点及其后给定的顶点所确定。顶点1,n+1和n+2定义了第n个三角形,总共绘制N-2个三角形。
GL_QUADS:绘制由4个顶点组成的一组单独的四边形。顶点4n-3,4n-2,4n-1和4n定义了第n个四边形,总共绘制N/4个四边形。
GL_QUAD_STRIP:绘制一组相连的四边形。每个四边形是由一对顶点及其后给定的一对顶点共同确定的。顶点2n-1,2n,2n+2和2n+1定义了第n个四边形,总共绘制N/2-1个四边形。
GL_POLYGON:绘制一个凸多边形,顶点1到N定义了这个多边形。
可以在glBegin和glEnd之间调用的OpenGL函数为:glVertex,glColor,glIndex,glNormal,glTexCoord,glCoord,glPoint,glMaterial和glEdgeFlag。
3. glEdgeFlag,glEdgeFlagv:指定边界标记
C语言描述
void glEdgeFlag(GLboolean flag);
参数
说明
在glBegin/glEnd之间指定的多边形、单个的三角形或单个的四边形上每个顶点的边界标志,该顶点或者是边界标志或者不是边界标志。指定顶点时,如果当前边界标记为GL_TRUE,那么该顶点标记为边界的起点,否则为非边界标记的起点。注意只有在GL_POLYGON_MODE设置为GL_POINT或GL_LINE时,边界标记和非边界标记才有意义。初始时,边界标记为GL_TREU。
4. glPointSize:指定光栅化点的直径
C语言描述
参数
说明
本函数指定走样和反走样的点的光栅化的直径。如果size变量取非1.0的值,那么激活和未激活反走样的情况下,点的大小在屏幕上显示不同的结果。可以调用glEnable和glDisable函数,变量为GL_POINT_SMOOTH控制点的反走样。
如果关闭反走样,点的实际大小是通过将指定的数值四舍五入为整数来决定。如果激活反走样,那么点光栅化为每个像素正方形产生一个片元,该正方形的直径等于当前点的大小,中心位于点(xw,yw)(下标w表示窗口坐标)的圆形区域相交,对于每个片元,覆盖值是圆形区域与对应的像素正方形相交的窗口坐标区域,这个覆盖值将被保存起来并使用在最后的光栅化步骤中。
注意,当激活点反走样时,点的大小并不是任意的,它有一定的范围,可以用glGet函数,变量为GL_POINT_SIZE_RANGE查询出,如果设定的值超出这个范围,那么将会使用该范围内最接近设定值的值。
5. glLineWidth:指定光栅化直线的宽度
C语言描述
参数
width 指定光栅化直线的宽度,缺省值为1.0。
说明
本函数指定被光栅化的走样和反走样直线的宽度。在激活和未激活反走样的情况下,不同的线宽具有不同的效果。可以调用glEnable和glDisable函数,变量为GL_LINE_SMOOTH控制直线的反走样。
如果关闭直线反走样,实际的线宽是通过将指定的数值四舍五入为整数来决定。如果激活反走样,直线光栅化操作为每个像素正方形产生一个片元,这个正方形与位于矩形内的区域相互交叉,该矩形的宽度等于当前的线宽,长度等于线的实际长度,并且位于线段的中心。对于每个片元,覆盖值是相邻像素正方形的矩形区域交叉的窗口坐标区域,这个覆盖值将被保存起来并使用在最后的光栅化操作中。
6. glLineStipple:指定点划线
C语言描述
参数
factor
pattern
说明
本函数使用位模式来绘制点划线。位模式从第0位(最右边的位)开始,所以实际的绘图模式是指定模式的逆序。factor参数用于展宽模式中每一位在点划线中指定要画或不要画的像素数。为了使用点划线,必须先启用点划线,调用glEnable(GL_LINE_STIPPLE)。如果正在绘制多条线段,每次画新线段时模式将被复位,这样在绘制一条线段在模式的中间终止将不会影响下一条线段。
7. glPolygonMode:选择多边形光栅化模式
C语言描述
参数
face
mode
说明
本函数允许改变多边形的渲染方式。默认情况下,用当前颜色或材质属性给多边形进行填充或加上阴影。
8. glFrontFace:定义正面多边形和反面多边形。
C语言描述
参数
说明
本函数用于定义多边形的哪一面被视为正面。如果从正面看时,多边形顶点的指定顺序是按顺时针方向绕多边形一周,则说这个多边形具有顺时针绕法;反之,顶点是按逆时针方向绕多边形一周,则说这个多边形具有逆时针绕法。通过本函数可以把顺时针或逆时针绕法的一面指定为多边形的正面。
9. glCullFace:指定剔出操作的多边形面
C语言描述
参数
说明
本函数可以禁用多边形正面或背面上的光照、阴影和颜色计算及操作,消除不必要的渲染计算是因为无论对象如何进行旋转或变换,都不会看到多边形的背面。用GL_CULL_FACE参数调用glEnable和glDisable可以启用或禁用剔除。
10. glRect:绘制矩形
C语言描述
void glRectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
void glRectdv(const GLdouble *v1, const GLdouble *v2);
参数
x1,y1
说明