您的位置:首页 > 运维架构

OpenGL 常用 API

2017-07-22 20:42 316 查看
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*()
来表示这一类函数。

  OpenGL函数库相关的API有核心库(gl)、实用库(glu)、辅助库(aux)、实用工具库(glut)、窗口库(glx、agl、wgl)和扩展函数库等。从图可以看出,gl是核心,glu是对gl的部分封装。glx、agl、wgl 是针对不同窗口系统的函数。glut是为跨平台的OpenGL程序的工具包,比aux功能强大。扩展函数库是硬件厂商为实现硬件更新利用OpenGL的扩展机制开发的函数。

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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opengl