OpenGL 常用 API
注:本文结合网络 + 自己理解
OpenGL的库函数,采用C语言风格,提供大量的函数来进行图形的处理和显示。OpenGL库函数的命名方式非常有规律。所有OpenGL函数采用了以下格式:
<库前缀><根命令><可选的参数个数><可选的参数类型>
库前缀有gl、glu、aux、glut、wgl、glx、agl等等,分别表示该函数属于OpenGL那个开发库,从函数名后面中还可以看出需要多少个参数以及参数的类型。I代表int型,f代表float型,d代表double型,u代表无符号整型。例如glVertex3fv()表示了该函数属于gl库,参数是三个float型参数指针。我们用glVertex*()
来表示这一类函数。
1.OpenGL 核心库
核心库包含有115个函数,函数名的前缀为gl。这部分函数用于常规的、核心的图形处理。此函数由gl.dll来负责解释执行。由于许多函数可以接收不同数以下几类。据类型的参数,因此派生出来的函数原形多达300多个。核心库中的函数主要可以分为以下几类函数:
- 绘制基本几何图元的函数:
glBegain()、glEnd()、glNormal*()、glVertex*();
- 矩阵操作、几何变换和投影变换的函数:如矩阵:
入栈函数 glPushMatrix(); 矩阵出栈函数 glPopMatrix(); 装载矩阵函数 glLoadMatrix(); 矩阵相乘函数 glMultMatrix(); 当前矩阵函数 glMatrixMode(); 矩阵标准化函数 glLoadIdentity(); 几何变换函数 glTranslate*()、glRotate*()、glScale*(); 投影变换函数 glOrtho()、glFrustum(); 视口变换函数 glViewport();
- 颜色、光照和材质的函数:
设置颜色模式函数 glColor*()、glIndex*(); 设置光照效果的函数 glLight*() 、glLightModel*(); 设置材质效果函数 glMaterial();
- 显示列表函数:主要有创建、结束、生成、删除和调用显示列表的函数
glNewList()、glEndList()、glGenLists()、glCallList()和glDeleteLists();
- 纹理映射函数:主要有:
一维纹理函数 glTexImage1D(); 二维纹理函数 glTexImage2D(); 设置纹理参数、纹理环境和纹理坐标的函数 glTexParameter*()、glTexEnv*()和glTetCoord*();
- 特殊效果函数:
融合函数 glBlendFunc(); 反走样函数 glHint(); 雾化效果 glFog*();
- 光栅化、像素操作函数:
像素位置 glRasterPos*(); 线型宽度 glLineWidth(); 多边形绘制模式 glPolygonMode(); 读取象素 glReadPixel(); 复制象素 glCopyPixel();
- 选择与反馈函数:
渲染模式 glRenderMode(); 选择缓冲区 glSelectBuffer(); 反馈缓冲区 glFeedbackBuffer();
- 曲线与曲面的绘制函数:
生成曲线或曲面的函数 glMap*()、glMapGrid*(); 求值器的函数 glEvalCoord*() glEvalMesh*();
- 状态设置与查询函数:
glGet*()、glEnable()、glGetError()