(1)opengl基本函数的定义规则说明:
opengl的库函数命名方式:前缀+函数名+后缀
前缀:gl、glu、glx或aux,表示此函数分属于基本库、实用库、X窗口扩充库或辅助库
后缀:是函数传参类型的简写,例如i代表int,f代表float.s代表short,d代表double,v代表指针
glVertex2i(1,5);
glVertex3f(1.0,5.0,2.0);
上面例子中函数后缀还存在2、3、4的数字,分别代表2维、3维、4维,也就是参数的个数
(2)opengl的图形
(2.1)点 glVertex×
//设置点的大小,默认值为1.0f,单位为“像素”
glPointSize(5.0f);
OpenGL中描述一个面(线、点)的方法是glBegin/glEnd命令组:
glBegin(GL_POINTS); //图元常量,代表点
glVertex(顶点1);
glVertex(顶点2);
……
glEnd();
(2.2)线 glVertex×
//设置线的宽度
glLineWidth(5.0f);
OpenGL中描述一个面(线、点)的方法是glBegin/glEnd命令组:
glBegin(GL_LINES); //图元常量,代表线,连接每一对相邻定点而得到一组直线段
glVertex(顶点1);
glVertex(顶点2);
glVertex(顶点3);
glVertex(顶点4);
……
glEnd();
说明:
如果使用图元:GL_LINE_STRIP,则会将所有的点连成折线;
如果使用:GL_LINE_LOOP,则会将所有的点连城一个闭合的线段;
如果使用:glEnable(GL_LINE_STIPPLE),则会启动虚线;关闭虚线使用glDisable(GL_LINE_STIPPLE)
(2.2)面-三角形,以内部填充的方式画三角
三角的图元常量有三种:GL_TRIANGLES、GL_TRIANGLE_STRIP、GL_TRIANGLE_FAN,
glVertex2iv(p1); //顶点1
glVertex2iv(p2); //顶点2
glVertex2iv(p3); //顶点3
glVertex2iv(p4); //顶点4
glVertex2iv(p5); //顶点5
glVertex2iv(p6); //顶点6
glVertex2iv(p7); //顶点7
glVertex2iv(p8); //顶点8
其中
GL_TRIANGLES:会生成多个三角形,每相邻三个顶点生成一个三角形
GL_TRIANGLE_STRIP:其填充方式是;v0v1v2、v1v2v3、v2v3v4、v3v4v5,不包括前一个点
GL_TRIANGLE_FAN:是始终以第一个点为起始点,扩散式组合:v0v1v2、 v0v2v3 、v0v3v4
(2.2)面-多边形
GL_QUADS:跟GL_TRIANGLES类似,每隔4个点组成一个四边形
GL_QUAD_STRIP:跟GL_TRIANGLE_STRIP类似
GL_POLYGON:多边形。
绘制矩形还可以使用:
glRectf(左上角x,左上角y,右下角x,右下角y);
(3)opengl的颜色
(3.1)RGBA模式-glColor*
void glColor3f(GLfloat red, GLfloat green, GLfloat blue);
void glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
采用f和d做后缀的函数,以1.0表示最大的使用。
采用b做后缀的函数,以127表示最大的使用。
采用ub做后缀的函数,以255表示最大的使用。
采用s做后缀的函数,以32767表示最大的使用。
采用us做后缀的函数,以65535表示最大的使用。
(3.1)颜色索引模式-总是先设置颜色表,然后选择颜色:glIndex*
说明:glClear(GL_COLOR_BUFFER_BIT);意思是把屏幕上的颜色清空