OpenGL函数

开发基于 OpenGL 的应用程序,必须先了解 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 多个。核心库中的函 数主要可以分为以下几类函数:

  (1)绘制基本几何图元的函数。如绘制图元的函数glBegain()、glEnd()、glNormal*()、glVertex*()。

  (2)矩阵操作、几何变换和投影变换的函数。如矩阵入栈函数glPushMatrix()、矩阵出栈函数glPopMatrix()、装载矩阵函数glLoadMatrix()、矩阵相乘函数glMultMatrix(),当前矩阵函数 glMatrixMode()和矩阵标准化函数glLoadIdentity(),几何变换函数glTranslate*()、glRotate*()和 glScale*(),投影变换函数glOrtho()、glFrustum()和视口变换函数glViewport()等等。

  (3)颜色、光照和材质的函数。如设置颜色模式函数glColor*()、glIndex*(),设置光照效果的函数glLight*() 、glLightModel*()和设置材质效果函数glMaterial()等等。

  (4)显示列表函数、主要有创建、结束、生成、删除和调用显示列表的函数glNewList()、 glEndList()、glGenLists()、glCallList()和glDeleteLists()。

  (5)纹理映射函数,主要有一维纹理函数glTexImage1D()、二维纹理函数glTexImage2D()、 设置纹理参数、纹理环境和纹理坐标的函数glTexParameter*()、glTexEnv*()和glTetCoord*()等。

  (6)特殊效果函数。融合函数glBlendFunc()、反走样函数glHint()和雾化效果glFog*()。

  (7)光栅化、象素操作函数。如象素位置glRasterPos*()、线型宽度glLineWidth()、多边形绘制模式glPolygonMode(),读取象素glReadPixel()、复制象素glCopyPixel()等。

  (8)选择与反馈函数。主要有渲染模式glRenderMode()、选择缓冲区glSelectBuffer()和反馈缓冲区glFeedbackBuffer()等。

  (9)曲线与曲面的绘制函数。生成曲线或曲面的函数glMap*()、glMapGrid*(),求值器的函数glEvalCoord*() glEvalMesh*()。

  (10)状态设置与查询函数。主要有glGet*()、glEnable()、glGetError()等。

2.OpenGL实用库The OpenGL Utility Library (GLU)
  包含有43个函数,函数名的前缀为glu。
  OpenGL提供了强大的但是为数不多的绘图命令,所有较复杂的绘图都必须从点。线、面开始。Glu 为了减轻繁重的编程工作,封装了OpenGL函数,Glu函数通过调用核心库的函数,为开发者提供相对简单的用法,实现一些较为复杂的操作。此函数由 glu.dll来负责解释执行。OpenGL中的核心库和实用库可以在所有的OpenGL平台上运行。
  主要包括了以下几种:
  (1)辅助纹理贴图函数,有gluScaleImage() 、gluBuild1Dmipmaps()、gluBuild2Dmipmaps()。
  (2)坐标转换和投影变换函数,定义投影方式函数gluPerspective()、gluOrtho2D() 、gluLookAt(),拾取投影视景体函数gluPickMatrix(),投影矩阵计算gluProject()和 gluUnProject()等等。
  (3)多边形镶嵌工具,有gluNewTess()、 gluDeleteTess()、gluTessCallback()、gluBeginPolygon() gluTessVertex()、gluNextContour()、gluEndPolygon()等等。
  (4)二次曲面绘制工具,主要有绘制球面、锥面、柱面、圆环面gluNewQuadric()、gluSphere()、gluCylinder()、gluDisk()、gluPartialDisk()、gluDeleteQuadric()等等。
  (5)非均匀有理B样条绘制工具,主要用来定义和绘制Nurbs曲线和曲面,包括gluNewNurbsRenderer()、 gluNurbsCurve()、gluBeginSurface()、gluEndSurface()、gluBeginCurve()、 gluNurbsProperty()等函数。
  (6)错误反馈工具,获取出错信息的字符串gluErrorString()。

3.OpenGL辅助库
  包含有31个函数,函数名前缀为aux。
  这部分函数提供窗口管理、输入输出处理以及绘制一些简单三维物体。此函数由glaux.dll来负责解释执行。创建aux库是为了学习和编写 OpenGL程序,它更像是一个用于测试创意的预备基础接管。Aux库在windows实现有很多错误,因此很容易导致频繁的崩溃。在跨平台的编程实例和演示中,aux很大程度上已经被glut库取代。OpenGL中的辅助库不能在所有的OpenGL平台上运行。

  辅助库函数主要包括以下几类:
  (1)窗口初始化和退出函数,auxInitDisplayMode()和auxInitPosition()。
  (2)窗口处理和时间输入函数,auxReshapeFunc()、auxKeyFunc()和auxMouseFunc()。
  (3)颜色索引装入函数,auxSetOneColor()。
  (4)三维物体绘制函数。包括了两种形式网状体和实心体,如绘制立方体auxWireCube()和 auxSolidCube()。这里以网状体为例,长方体auxWireBox()、环形圆纹面auxWireTorus()、圆柱 auxWireCylinder()、二十面体auxWireIcosahedron()、八面体auxWireOctahedron()、四面体 auxWireTetrahedron()、十二面体auxWireDodecahedron()、圆锥体auxWireCone()和茶壶 auxWireTeapot()。
  (5)背景过程管理函数auxIdleFunc()。
  (6)程序运行函数auxMainLoop()。

4.OpenGL工具库 OpenGL Utility Toolkit
  包含大约30多个函数,函数名前缀为glut。
  glut是不依赖于窗口平台的OpenGL工具包,由Mark KLilgrad在SGI编写(现在在Nvidia),目的是隐藏不同窗口平台API的复杂度。函数以glut开头,它们作为aux库功能更强的替代品,提供更为复杂的绘制功能,此函数由glut.dll来负责解释执行。由于glut中的窗口管理函数是不依赖于运行环境的,因此OpenGL中的工具库可以在X-Window, Windows NT, OS/2等系统下运行,特别适合于开发不需要复杂界面的OpenGL示例程序。对于有经验的程序员来说,一般先用glut理顺3D图形代码,然后再集成为完整的应用程序。
  这部分函数主要包括:
  (1)窗口操作函数,窗口初始化、窗口大小、窗口位置等函数glutInit() glutInitDisplayMode() glutInitWindowSize() glutInitWindowPosition()等。
  (2)回调函数。响应刷新消息、键盘消息、鼠标消息、定时器函数等,GlutDisplayFunc() glutPostRedisplay() glutReshapeFunc() glutTimerFunc() glutKeyboardFunc() glutMouseFunc()。
  (3)创建复杂的三维物体。这些和aux库的函数功能相同。创建网状体和实心体。如glutSolidSphere()、glutWireSphere()等。在此不再叙述。
  (4)菜单函数。创建添加菜单的函数GlutCreateMenu()、glutSetMenu()、glutAddMenuEntry()、glutAddSubMenu() 和glutAttachMenu()。
  (5)程序运行函数,glutMainLoop()。

(一)库函数
  开发基于OpenGL的应用程序,必须先了解OpenGL的库函数。它采用C语言风格,提供大量的函数来进行图形的处理和显示。OpenGL图形库一共有100多个函数,它们分别属于OpenGL的基本库、实用库、辅助库等不同的库。
  1、核心库,包含的函数有115个,它们是最基本的函数,其前缀是gl;这部分函数用于常规的、核心的图形处理,由gl.dll来负责解释执行。核心库中的函数可以进一步分为以下几类函数。
  (1)绘制基本几何图元的函数。
glBegain()、glEnd()、glNormal*()、glVertex*()。

  (2)矩阵操作、几何变换和投影变换的函数。
  矩阵入栈函数glPushMatrix(),矩阵出栈函数glPopMatrix(),装载矩阵函数glLoadMatrix(),矩阵相乘函数glMultMatrix(),当前矩阵函数glMatrixMode()和矩阵标准化函数glLoadIdentity(),几何变换函数glTranslate*()、glRotate*()和glScale*(),投影变换函数glOrtho()、glFrustum()和视口变换函数glViewport()等等。

  (3)颜色、光照和材质的函数。
  如设置颜色模式函数glColor*()、glIndex*(),设置光照效果的函数glLight*() 、glLightModel*()和设置材质效果函数glMaterial()等等。

  (4)显示列表函数。
  主要有创建、结束、生成、删除和调用显示列表的函数glNewList()、 glEndList()、glGenLists()、glCallList()和glDeleteLists()等。

  (5)纹理映射函数。
  主要有一维纹理函数glTexImage1D()、二维纹理函数glTexImage2D()、 设置纹理参数、纹理环境和纹理坐标的函数glTexParameter*()、glTexEnv*()和glTetCoord*()等。

  (6)特殊效果函数。
  融合函数glBlendFunc()、反走样函数glHint()和雾化效果glFog*()。

  (7)光栅化、象素操作函数。
  像素位置glRasterPos*()、线型宽度glLineWidth()、多边形绘制模式glPolygonMode(),读取象素glReadPixel()、复制象素glCopyPixel()等。 

  (8)选择与反馈函数。
  主要有渲染模式glRenderMode()、选择缓冲区glSelectBuffer()和反馈缓冲区glFeedbackBuffer()等。

  (9)曲线与曲面的绘制函数。
  生成曲线或曲面的函数glMap*()、glMapGrid*(),求值器的函数glEvalCoord*() glEvalMesh*()。

  (10)状态设置与查询函数。主要有glGet*()、glEnable()、glGetError()等。

  2、实用库(OpenGL utility library,GLU),包含的函数功能更高一些,如绘制复杂的曲线曲面、高级坐标变换、多边形分割等,共有43个,前缀为glu。Glu函数通过调用核心库的函数,为开发者提供相对简单的用法,实现一些较为复杂的操作。此类函数由glu.dll来负责解释执行。主要包括了以下几种:

  (1)辅助纹理贴图函数。
  有gluScaleImage() 、gluBuild1Dmipmaps()、gluBuild2Dmipmaps()等。

  (2)坐标转换和投影变换函数。
  定义投影方式函数gluPerspective()、gluOrtho2D() 、gluLookAt(),拾取投影视景体函数gluPickMatrix(),投影矩阵计算gluProject()和 gluUnProject()等。

  (3)多边形镶嵌工具。
  有gluNewTess()、 gluDeleteTess()、gluTessCallback()、gluBeginPolygon() gluTessVertex()、gluNextContour()、gluEndPolygon()等。

  (4)二次曲面绘制工具。
  主要有绘制球面、锥面、柱面、圆环面gluNewQuadric()、gluSphere()、gluCylinder()、gluDisk()、gluPartialDisk()、gluDeleteQuadric()等等。

  (5)非均匀有理B样条绘制工具。
  主要用来定义和绘制Nurbs曲线和曲面,包括gluNewNurbsRenderer()、gluNurbsCurve()、gluBeginSurface()、gluEndSurface()、gluBeginCurve()、gluNurbsProperty()等函数。

  (6)错误反馈工具。
  获取出错信息的字符串gluErrorString()等。

  3、OpenGL辅助库(OpenGL auxiliarylibrary,GLAUX),包括简单的窗口管理、输入事件处理、某些复杂三维物体绘制等函数,共有31个,前缀为aux。此类函数由glaux.dll来负责解释执行。辅助库函数主要包括以下几类。

  (1)窗口初始化和退出函数。
  auxInitDisplayMode()和auxInitPosition()。

  (2)窗口处理和时间输入函数。
  auxReshapeFunc()、auxKeyFunc()和auxMouseFunc()。

  (3)颜色索引装入函数。
  auxSetOneColor()。

  (4)三维物体绘制函数。
  包括了两种形式网状体和实心体,如绘制立方体auxWireCube()和 auxSolidCube()。这里以网状体为例,长方体auxWireBox()、环形圆纹面auxWireTorus()、圆柱auxWireCylinder()、二十面体auxWireIcosahedron()、八面体auxWireOctahedron()、四面体auxWireTetrahedron()、十二面体auxWireDodecahedron()、圆锥体auxWireCone()和茶壶auxWireTeapot()。绘制实心体只要将上述函数中的确"Wire"更换成"Solid"就可以了。

  (5)其他。
  背景过程管理函数auxIdleFunc();程序运行函数auxMainLoop()。

  4、OpenGL工具库(penGL Utility Toolkit)
  包含大约30多个函数,函数名前缀为glut,此函数由glut.dll来负责解释执行。这部分函数主要包括:

  (1)窗口操作函数
  窗口初始化、窗口大小、窗口位置等函数glutInit() glutInitDisplayMode()、glutInitWindowSize() glutInitWindowPosition()等。

  (2)回调函数。
  响应刷新消息、键盘消息、鼠标消息、定时器函数等,GlutDisplayFunc()、glutPostRedisplay()、 glutReshapeFunc()、glutTimerFunc()、glutKeyboardFunc()、 glutMouseFunc()。

  (3)创建复杂的三维物体。这些和aux库的函数功能相同。创建网状体和实心体。如glutSolidSphere()、glutWireSphere()等。

  (4)菜单函数
  创建添加菜单的函数GlutCreateMenu()、glutSetMenu()、glutAddMenuEntry()、glutAddSubMenu() 和glutAttachMenu()。

  (5)程序运行函数。
  glutMainLoop()。

  5、16个WGL函数,专门用于OpenGL和Windows窗口系统的联接,其前缀为wgl,主要用于创建和选择图形操作描述表(renderingcontexts)以及在窗口内任一位置显示字符位图。这类函数主要包括以下几类

  (1)绘图上下文相关函数。
  wglCreateContext()、wglDeleteContext()、wglGetCurrentContent()、wglGetCurrentDC() wglDeleteContent()等。

  (2)文字和文本处理函数。
  wglUseFontBitmaps()、wglUseFontOutlines()。

  (3)覆盖层、地层和主平面层处理函数。
  wglCopyContext()、wglCreateLayerPlane()、 wglDescribeLayerPlane()、wglReakizeLayerPlatte()等。

  (4)其他函数。
  wglShareLists()、wglGetProcAddress()等。

  6、另外,还有五个Win32函数用来处理像素格式(pixel formats)和双缓存。由于它们是对Win32系统的扩展,因此不能应用在其它OpenGL平台上。

  (二)OpenGL数据类型

  与C语言相对应,OpenGL中也有整数、字节、浮点数等数据类型,为了说明两者的对应关系,下表将OpenGL的数据类型与相应的C类型进行了对比:
前缀 数据类型 相应C语言类型 OpenGL类型

b 8-bit integer signed char GLbyte 
s 16-bit integer short GLshort 
i 32-bit integer long GLint,GLsizei 
f 32-bit floating-point float GLfloat,GLclampf 
d 64-bit floating-point double GLdouble,GLclampd 
ub 8-bit unsigned integer unsigned char GLubyte,GLboolean 
us 16-bit unsigned integer unsigned short GLushort 
ui 32-bit unsigned integer unsigned long GLuint,GLenum,GLbitfield 
                表一、OpenGL数据类型表

  此外,OpenGL也定义GLvoid类型,如果用C语言编写,可以用它替代void类型。

  (三)OpenGL库函数的命名规律

  了解了OpenGL的数据类型,让我们再回过头来看看OpenGL库函数的命名规律。所有OpenGL函数采用了以下格式:

<库前缀><根命令><可选的参数个数><可选的参数类型>

  库前缀有gl、glu、aux、glut、wgl、glx等等,分别表示该函数属于OpenGL某开发库等,从函数名后面中还可以看出需要多少个参数以及参数的类型。I代表int型,f代表float型,d代表double型,u代表无符号整型。注意,有的函数参数类型后缀前带有数字2、3、4。2代表二维,3代表三维,4代表alpha值(以后介绍)。有些OpenGL函数最后带一个字母v,表示函数参数可用一个指针指向一个向量(或数组)来替代一系列单个参数值。下面两种格式都表示设置当前颜色为红色,二者等价。

  glColor3f(1.0,0.0,0.0);等价于:

  float color_array[]={1.0,0.0,0.0};
  glColor3fv(color_array);

  除了以上基本命名方式外,还有一种带"*"星号的表示方法,例如glColor*(),它表示可以用函数的各种方式来设置当前颜色。同理,glVertex*v()表示用一个指针指向所有类型的向量来定义一系列顶点坐标值。

7. OpenGL库函数列表

glAccum 操作累加缓冲区
glAddSwapHintRectWIN 定义一组被SwapBuffers拷贝的三角形
glAlphaFunc允许设置alpha检测功能
glAreTexturesResident 决定特定的纹理对象是否常驻在纹理内存中
glArrayElement 定义一个被用于顶点渲染的数组成分
glBegin,glEnd 定义一个或一组原始的顶点
glBindTexture 允许建立一个绑定到目标纹理的有名称的纹理
glBitmap 绘制一个位图
glBlendFunc 特殊的像素算法
glCallList 执行一个显示列表 
glCallLists 执行一列显示列表 
glClear 用当前值清除缓冲区 
GlClearAccum 为累加缓冲区指定用于清除的值 
glClearColor 为色彩缓冲区指定用于清除的值 
glClearDepth 为深度缓冲区指定用于清除的值 
glClearStencil 为模板缓冲区指定用于清除的值 
glClipPlane 定义被裁剪的一个平面几何体 
glColor 设置当前色彩 
glColorMask 允许或不允许写色彩组件帧缓冲区 
glColorMaterial 使一个材质色彩指向当前的色彩 
glColorPointer 定义一列色彩 
glColorTableEXT 定义目的一个调色板纹理的调色板的格式和尺寸 
glColorSubTableEXT 定义目的纹理的调色板的一部分被替换 
glCopyPixels 拷贝帧缓冲区里的像素 
glCopyTexImage1D 将像素从帧缓冲区拷贝到一个单空间纹理图象中 
glCopyTexImage2D 将像素从帧缓冲区拷贝到一个双空间纹理图象中 
glCopyTexSubImage1D 从帧缓冲区拷贝一个单空间纹理的子图象 
glCopyTexSubImage2D 从帧缓冲区拷贝一个双空间纹理的子图象 
glCullFace 定义前面或后面是否能被精选 
glDeleteLists 删除相邻一组显示列表 
glDeleteTextures 删除命名的纹理 
glDepthFunc 定义用于深度缓冲区对照的数据 
glDepthMask 允许或不允许写入深度缓冲区 
glDepthRange 定义z值从标准的设备坐标映射到窗口坐标 
glDrawArrays 定义渲染多个图元 
glDrawBuffer 定义选择哪个色彩缓冲区被绘制 
glDrawElements 渲染数组数据中的图元 
glDrawPixels 将一组像素写入帧缓冲区 
glEdgeFlag 定义一个边缘标志数组 
glEdgeFlagPointer 定义一个边缘标志数组 
glEnable, glDisable 打开或关闭OpenGL的特殊功能 
glEnableClientState,glDisableClientState 分别打开或关闭数组 
glEvalCoord 求解一维和二维贴图 
glEvalMesh1,glEvalMesh2 求解一维和二维点或线的网格 
glEvalPoint1,glEvalPoint2 生成及求解一个网格中的单点 
glFeedbackBuffer 控制反馈模式 
glFinish 等待直到OpenGL执行结束 
glFlush 在有限的时间里强制OpenGL的执行 
glFogf,glFogi,glFogfv,glFogiv 定义雾参数 
glFrontFace 定义多边形的前面和背面 
glFrustum 当前矩阵乘上透视矩阵 
glGenLists 生成一组空的连续的显示列表 
glGenTextures 生成纹理名称 
glGetBooleanv,glGetDoublev,glGetFloatv,glGetIntegerv 返回值或所选参数值 
glGetClipPlane 返回特定裁减面的系数 
glGetColorTableEXT 从当前目标纹理调色板得到颜色表数据 
glGetColorTableParameterfvEXT,glGetColorTableParameterivEXT 从颜色表中得到调色板参数 
glGetError 返回错误消息 
glGetLightfv,glGetLightiv 返回光源参数值 
glGetMapdv,glGetMapfv,glGetMapiv 返回求值程序参数 
glGetMaterialfv,glGetMaterialiv 返回材质参数 
glGetPixelMapfv,glGetpixelMapuiv,glGetpixelMapusv 返回特定的像素图 
glGetPointerv 返回顶点数据数组的地址 
glGetPolygonStipple 返回多边形的点图案 
glGetString 返回描述当前OpenGl连接的字符串 
glGetTexEnvfv 返回纹理环境参数 
glGetTexGendv,glGetTexGenfv,glGetTexGeniv 返回纹理坐标生成参数 
glGetTexImage 返回一个纹理图象 
glGetTexLevelParameterfv,glGetTexLevelParameteriv 返回特定的纹理参数的细节级别 
glGetTexParameterfv,glGetTexParameteriv 返回纹理参数值 
glHint 定义实现特殊的线索 
glIndex 建立当前的色彩索引 
glIndexMask 控制写色彩索引缓冲区里的单独位 
GlIndexPointer 定义一个颜色索引数组 
glInitName 初始化名字堆栈 
glInterleavedArrays 同时定义和允许几个在一个大的数组集合里的交替数组 
glIsEnabled 定义性能是否被允许 
glIsList 检测显示列表的存在 
glIsTexture 确定一个名字对应一个纹理 
glLightf,glLighti,glLightfv,glLightiv 设置光源参数 
glLightModelf,glLightModeli,glLightModelfv,glLightModeliv 设置光线模型参数 
glLineStipple 设定线点绘图案 
glLineWidth 设定光栅线段的宽 
glListBase 为glcallList设定显示列表的基础 
glLoadIdentity 用恒等矩阵替换当前矩阵 
glLoadMatrixd,glLoadMatrif 用一个任意矩阵替换当前矩阵 
glLoadName 将一个名字调入名字堆栈 
glLogicOp 为色彩索引渲染定义一个逻辑像素操作 
glMap1d,glMap1f 定义一个一维求值程序 
glMap2d,glMap2f 定义一个二维求值程序 
glMapGrid1d,glMapGrid1f,glMapgrid2d,glMapGrid2f 定义一个一维或二维网格 
glMaterialf,glMateriali,glMateriafv,glMaterialiv 为光照模型定义材质参数 
glMatrixMode 定义哪一个矩阵是当前矩阵 
glMultMatrixd,glMultMatrixf 用当前矩阵与任意矩阵相乘 
glNewList,glEndList 创建或替换一个显示列表 
glNormal 设定当前顶点法向 
glNormalPointer 设定一个法向数组 
glOrtho 用垂直矩阵与当前矩阵相乘 
glPassThrough 在反馈缓冲区做记号 
glPixelMapfv,glPixelMapuiv,glPixelMapusv 设定像素交换图 
glPixelStoref,glpixelStorei 设定像素存储模式 
glPixelTransferf,glPixelTransferi 设定像素存储模式 
glPixelZoom 设定像素缩放因数 
glPointSize 设定光栅点的直径 
glPolygonMode 选择一个多边形的光栅模式 
glPolygonOffset 设定OpenGL用于计算深度值的比例和单元 
glPolygonStipple 设定多边形填充图案 
glPrioritizeTextures 设定纹理固定的优先级 
glPushAttrib,glPopAttrib 属性堆栈的压入和弹出操作 
glPushClientAttrib,glPopClientAttrib 在客户属性堆栈存储和恢复客户状态值 
glPushmatrix,glPopMatrix 矩阵堆栈的压入和弹出操作 
glPushName,glPopName 名字堆栈的压入和弹出操作 
glRasterPos 定义像素操作的光栅位置 
glreadBuffer 为像素选择一个源色彩缓冲区 
glReadPixels 从帧缓冲区读取一组数据 
glRectd,glRectf,glRecti,glRects,glRectdv,glRectfv,glRectiv,glRectsv 绘制一个三角形 
glRenderMode定义光栅模式 
glRotated,glRotatef 将旋转矩阵与当前矩阵相乘 
glScaled,glScalef 将一般的比例矩阵与当前矩阵相乘 
glScissor 定义裁减框 
glSelectBuffer 为选择模式值建立一个缓冲区 
glShadeModel 选择平直或平滑着色 
glStencilFunc 为模板测试设置功能和参照值 
glStencilMask 控制在模板面写单独的位 
glStencilOp 设置激活模式测试 
glTexCoord 设置当前纹理坐标 
glTexCoordPointer 定义一个纹理坐标数组 
glTexEnvf,glTexEnvi,glTexEnvfv,glTexEnviv 设定纹理坐标环境参数 
glTexGend,glTexgenf,glTexGendv,glTexGenfv,glTexGeniv 控制纹理坐标的生成 
glTexImage1D 定义一个一维的纹理图象 
glTexImage2D 定义一个二维的纹理图 
glTexParameterf,glTexParameteri,glTexParameterfv,glTexParameteriv 设置纹理参数 
glTexSubImage1D 定义一个存在的一维纹理图像的一部分,但不能定义新的纹理 
glTexSubImage2D 定义一个存在的二维纹理图像的一部分,但不能定义新的纹理 
glTranslated,glTranslatef 将变换矩阵与当前矩阵相乘 
glVertex 定义一个顶点 
glVertexPointer 设定一个顶点数据数组 
glViewport 设置视窗
 
[OpenGL应用函数库] 
gluBeginCurve,gluEndCurve 定义一条不一至的有理的NURBS曲线 
gluBeginPolygon,gluEndPolygon 定义一个非凸多边形 
gluBeginSurface,gluEndSurface 定义一个NURBS曲线 
gluBeginTrim,gluEndTrim 定义一个NURBS整理循环 
gluBuild1Dmipmaps 建立一维多重映射 
gluBuild2Dmipmaps 建立二维多重映射 
gluCylinder 绘制一个圆柱 
gluDeleteNurbsRenderer 删除一个NURBS对象 
gluDeleQuadric 删除一个二次曲面对象 
gluDeleteTess 删除一个镶嵌对象 
gluDisk 绘制一个盘子 
gluErrorString 根据OpenGL或GLU错误代码产生错误字符串 
gluGetNutbsProperty 得到一个NURBS属性 
gluGetString 得到一个描述GLU版本号或支持GLU扩展调用的字符串 
gluGetTessProperty 得到一个镶嵌对象 
gluLoadSamplingMatrices 加载NUMRBS例子和精选矩阵 
gluLookAt 设定一个变换视点 
gluNewNurbsRenderer 创建一个NURBS对象 
gluNewQuadric 建立一个二次曲面对象 
gluNewTess 建立一个镶嵌对象 
gluNextContour 为其他轮廓的开始做标记 
gluNurbsCallback 为NURBS对象设定一个回调 
gluNnrbsCurve 设定一个NuRBS曲线的形状 
gluNurbsProperty 设定一个NURBS属性 
gluNurbsSurface 定义一个NURBS表面的形状 
gluOrtho2D 定义一个二位正交投影矩阵 
gluPartialDisk 绘制一个盘子的弧 
gluPerspective 设置一个透视投影矩阵 
gluPickMatrix 定义一个拾取区间 
gluProject 将对象坐标映射为窗口坐标 
gluPwlCurve 描述一个分段线性NURBS修剪曲线 
gluQuadricCallback 为二次曲面对象定义一个回调 
gluQuadricDrawStyle 为二次曲面设定合适的绘制风格 
gluQuadricNormals 定义二次曲面所用的法向的种类 
gluQuadricOrientation 定义二次曲面内部或外部方向 
gluQuadricTexture 定义是否带二次其面做纹理帖图 
gluScaleImage 将图象变换为任意尺寸 
gluSphere 绘制一个球体 
gluTessBeginContour,gluTessEndContour 划定一个边界描述 
gluTessBeginPolygon,gluTessEndPolygon 划定一个多边形描述 
gluTessCallback 为镶嵌对象定义一个回调 
gluTessNormal 为一个多边行形定义法向 
gluTessProperty 设置镶嵌对象的属性 
gluTessVertex 定义在一个多边形上的顶点 
gluUnProject 将窗口坐标映射为对象坐标

8.其他扩展库

这些函数可能是新的 OpenGL 函数,并没标准 OpenGL 库中实现,或 者它们是用来扩展已存在的OpenGL函数的功能。和glu、glx和wgl一,这些 OpenGL 扩展是由硬件厂商和厂商组织开发的。OpenGL 扩展(OpenGL Extention)包含了大量的扩展 API 函数。
随着硬件的更新,硬件厂商向 SGI 申请登记新的扩展,编写规格说明 书(specification)说明书进行开发扩展程序。不同的 OpenGL 实现 (OpenGL Implementation)支持的扩展可能不一,随着某一扩展的推 广与应用以及硬件技术的提该扩展才会在所有的 OpenGL 实现中被给予支持, 从而最终成为 OpenGL 标准库的一部分。扩展由 SGI 维护,在 SGI 网站上列出了 开的已注册的扩展及其官说明书。扩展由扩展函数的后缀来指(或 使用扩展常量后缀)。例如,后缀 WIN 表一个符合 Windows 规的扩展,EX或 ARB 后缀表该扩展由多个定义

下面出 OpenGL 方规的命名规:

  • ARB – OpenGL Architecture Review Board 式核准的扩展,往往由厂 商开发的扩展发展来,如果同时存在厂商开发的扩展和 ARB 扩展,应该先 使用 ARB 扩展;

  • EX– 家 OpenGL 厂商同意支持的扩展;

  • H– Hewlett-Packard 惠普;

  • IBM – International Business Machines ;

  • KTX – Kinetixmaker of 3Studio Max ;

  • INTEL – Intel 公司;

  • NV – NVIDIA 公司;

  • MESA – Brian Pauls freeware portable OpenGL implementation ;

  • SGI – Silicon Graphics 公司开发的扩展;

  • SGIX – Silicon Graphics (experimental) 公司开发的实扩展;

  • SU– Sun Microsystems;

  • WIN – Microsoft 。

由于 OpenGL 扩展针对不同平台和不同驱动,OpenGL 不可能所有的 接口程序放到 gl.h、glx.h、wgl.h 中,这些函数了 glext.h、glxext.h 和 wglext.h 中。这些扩展看作时 OpenGL 核心库规加 修改

OpenGl 核心函数库

glAccum 操作加缓冲区
glAddSwapHintRectWIN 定义组被 SwapBuffers 拷贝的三形 glAlphaFunc 许设置 alpha 功能
glAreTexturesResident 
定特定理对在纹

glArrayElement 定义一个用于点渲染的数成分 glBegin,glEnd 定义一个
glBindTexture 许建一个理的有名理 glBitmap 绘制一个

glBlendFunc 特殊像素算法
glCallList 执行一个显示列表
glCallLists 执行一列显示列表
glClear 用当前
缓冲区
GlClearAccum 为加缓冲区用于除的值 glClearColor 为色缓冲区用于除的值 glClearDepth 为度缓冲区用于除的值 glClearStencil 为模缓冲区用于除的值 glClipPlane 定义被裁剪的一个平面几何体 glColor 设置当前色

glColorMas帧缓冲区
glColorMaterial 使一个材质色当前的色
glColorPointer 定义一列色
glColorTableEX定义目的一个理的的格式和尺寸 glColorSubTableEX定义目理的的一部分被替换 glCopyPixels 拷贝帧缓冲区里像素

glCopyTexImage1D 将像素帧缓冲区拷贝到一个间纹理图中 glCopyTexImage2D 将像素帧缓冲区拷贝到一个间纹理图中 glCopyTexSubImage1帧缓冲区拷贝一个间纹理的象 glCopyTexSubImage2D 帧缓冲区拷贝一个间纹理的象 glCullFace 定义前面后面是

glDeleteLists 删除相显示列表
gl
DeleteTextures 删除命名的
gl
DepthFunc 定义用于度缓冲区对照的数据 glDepthMas度缓冲区 glDepthRange 定义 z 值从标准的设备坐映射窗口标 glDrawArrays 定义渲染多个图元

glDrawBuffer 定义个色缓冲区被绘制 glDrawElements 渲染数据中的图元
gl
DrawPixels 组像素写帧缓冲区
glEdgeFlag 定义一个
glEdgeFlagPointer 定义一个
glEnableglDisable 闭 OpenGL 的特殊功能 glEnableClientState,glDisableClientState 分别组 glEvalCoord 解一二维贴

glEvalMesh1,glEvalMesh2 求解一二维点或线格 glEvalPoint1,glEvalPoint生成及解一个格中的单点 glFeedbackBuffer 反馈模式
glFinish 等
待直到 OpenGL 执行结束

glFlush 时间里强制 OpenGL 的执行

glFogf,glFogi,glFogfv,glFogiv 定义雾参数
glFrontFace 
定义形的前面和
glFrustum 当前矩阵乘
视矩阵
glGenLists 生成一
的显示列表
glGenTextures 生成
理名称 glGetBooleanv,glGetDoublev,glGetFloatv,glGetIntegerv 回值或所选参数值 glGetClipPlane 回特定面的系数

glGetColorTableEXT 从当前板得到颜色表数据 glGetColorTableParameterfvEXT,glGetColorTableParameterivEXT 从颜色表中 得到参数
glGetError 
回错误消息
glGetLightfv,glGetLightiv 参数值 glGetMapdv,glGetMapfv,glGetMapiv 回求值程序参数 glGetMaterialfv,glGetMaterialiv 材质参数 glGetPixelMapfv,glGetpixelMapuiv,glGetpixelMapusv 回特定像素图 glGetPointerv 数据数
glGetPolygonStipple 形的
glGetString 描述当前 OpenGl 接的
glGetTexEnvfv 回纹环境参数 glGetTexGendv,glGetTexGenfv,glGetTexGeniv 回纹标生成参数 glGetTexImage 一个理图象 glGetTexLevelParameterfv,glGetTexLevelParameteriv 回特定理参数的 细节级
glGetTexParameterfv
,glGetTexParameteriv 回纹理参数
glHint 定义实现特殊线索
glIndex 建当前的色索引
glIndexMas索引缓冲区里
GlIndexPointer 定义一个颜色索引
glInitName 初始化名
glInterleavedArrays 同
时定义许几个一个大的数组集合里组 glIsEnabled 定义能是
glIsList 
显示列表的存在
glIsTexture 一个名对应一个
glLightf
,glLighti,glLightfv,glLightiv 设置光参数 glLightModelf,glLightModeli,glLightModelfv,glLightModeliv 设置光线模型参数 glLineStipple 设定线点绘图
glLineWidth 设栅线
glListBase 为 glcallList 设显示列表的基
glLoadIdentity 用等矩阵换当前矩阵
glLoadMatrixd
,glLoadMatrif 用一个矩阵换当前矩阵
glLoadName 
一个名字调入名
glLogicOp 为色
索引渲染定义一个逻辑像素操作
glMap1d
,glMap1f 定义一个一维求值程序
glMap
2d,glMap2定义一个二维求值程序

glMapGrid1d,glMapGrid1f,glMapgrid2d,glMapGrid2定义一个一维或二维网 
glMaterialf
,glMateriali,glMateriafv,glMaterialiv 为光照模型定义材质参数 glMatrixMode 定义一个矩阵是当前矩阵

glMultMatrixd,glMultMatrixf 用当前矩阵矩阵相乘 glNewList,glEndList 创建或替换一个显示列表
glNormal 设
当前点法向
glNormalPointer 设一个法向

glOrtho 用垂直矩阵当前矩阵相乘
glPassThrough 
在反馈缓冲区号 glPixelMapfv,glPixelMapuiv,glPixelMapusv 设定像素换图 glPixelStoref,glpixelStorei 设定像素存储模式
glPixelTransferf
,glPixelTransferi 设定像素存储模式
glPixel
Zoom 设定像素缩放因数
glPointSi
ze 设栅点直径
glPolygonMode 选一个多形的光模式
glPolygonOffset 设
定 OpenGL 用于计算度值的比例和
glPolygonStipple 设
填充
glPrioritizeTextures 设定纹
glPushAttrib,glPopAttrib 属性堆栈的入和出操作 glPushClientAttrib,glPopClientAttrib 客户性堆存储客户状态值 glPushmatrix,glPopMatrix 矩阵栈的入和出操作 glPushName,glPopName 名栈的入和出操作
glRasterPos 
定义像素操作的光栅位
glreadBuffer 为
像素一个缓冲区
glReadPixels 从帧缓冲区读取数据 glRectd,glRectf,glRecti,glRects,glRectdv,glRectfv,glRectiv,glRectsv 绘制一个三 
glRenderMode 
定义模式
glRotated
,glRotatef 转矩阵当前矩阵相乘
glScaled
,glScalef 的比例矩阵当前矩阵相乘
glScissor 
定义
glSelectBuffer 为选模式一个缓冲区
glShadeModel 选
glStencilFunc 为模
测试设置功能和参照
glStencilMas写单
glStencilOp 设置激活模式测试
glTexCoord 设置当前
glTexCoordPointer 
定义一个标数组 glTexEnvf,glTexEnvi,glTexEnvfv,glTexEnviv 设定纹环境参数 glTexGend,glTexgenf,glTexGendv,glTexGenfv,glTexGeniv 标的生成 glTexImage1D 定义一个一理图
glTexImage2D 定义一个二维理图 glTexParameterf,glTexParameteri,glTexParameterfv,glTexParameteriv 设置

理参数
glTexSubImage1
D 定义一个存在的一维纹理图的一部分,但不能定义新的

glTexSubImage2D 定义一个存在二维纹理图的一部分,但不能定义新的

glTranslated,glTranslatef 变换矩阵当前矩阵相乘 glVertex 定义一个
glVertexPointer 设一个数据数
glViewport 设置视窗

[OpenGL 应用函数库]

gluBeginCurve,gluEndCurve 定义不一的有理的 NURBS 曲线 gluBeginPolygon,gluEndPolygon 定义一个非形 gluBeginSurface,gluEndSurface 定义一个 NURBS 曲线 gluBeginTrim,gluEndTrim 定义一个 NURBS 整理环 gluBuild1Dmipmaps 建重映射

gluBuild2Dmipmaps 建立二维重映射 gluCylinder 绘制一个圆柱 gluDeleteNurbsRenderer 删除一个 NURBS 对象 gluDeleQuadric 删除一个二次曲面对象 gluDeleteTess 删除一个镶嵌

gluDis绘制一个
gluErrorString 根据 OpenGL 或 GLU 错误错误字串 gluGetNutbsProperty 得到一个 NURBS 属
gluGetString 得到一个描述 GL本号或支持 GL扩展用的串 gluGetTessProperty 得到一个镶嵌
gluLoadSamplingMatrices 载 NUMRBS 例选矩阵
gluLoo
kAt 设一个变换视
gluNewNurbsRenderer 创建一个 NURBS 对
gluNewQuadric 建一个二次曲面对
gluNewTess 建一个镶嵌
gluNextContour 为其他轮廓的开
gluNurbsCallbac为 NURBS 对一个回调
gluNnrbsCurve 设一个 NuRBS 曲线的形
gluNurbsProperty 设一个 NURBS 属
gluNurbsSurface 定义一个 NURBS 表面的形
gluOrtho2D 定义一个二位正投影矩阵
gluPartial
Dis绘制一个
gluPerspective 设置一个视投影矩阵
gluPic
kMatrix 定义一个拾取区间
gluProject 象坐映射为窗口
gluPwlCurve 
描述一个分线性 NURBS 修剪曲线

gluQuadricCallbac二次曲面对象定义一个回调 gluQuadricDrawStyle 为二次曲面设定合适的绘制风格 gluQuadricNormals 定义二次曲面所用的法向类 gluQuadricOrientation 定义二次曲部方向 gluQuadricTexture 定义否带二次其图 gluScaleImage 变换为尺寸

gluSphere 绘制一个球体 gluTessBeginContour,gluTessEndContour 一个边界描述 gluTessBeginPolygon,gluTessEndPolygon 一个多描述 gluTessCallbac镶嵌象定义一个回调
gluTessNormal 为一个多行形定义法向
gluTessProperty 设置镶嵌的属
gluTessVertex 定义在一个多
gluUnProject 窗口映射为对象坐

glAccum 操作加缓冲区
glAddSwapHintRectWIN 定义组被 SwapBuffers 拷贝的三形 glAlphaFunc 许设置 alpha 功能
glAreTexturesResident 
定特定理对在纹中 glArrayElement 定义一个用于点渲染的数成分
glBegin
,glEnd 定义一个
glBindTexture 许建一个理的有名理 glBitmap 绘制一个
glBlendFunc 
特殊像素算法
glCallList 执行一个显示列表
glCallLists 执行一列显示列表
glClear 用当前
缓冲区
GlClearAccum 为加缓冲区用于除的
glClearColor 为色缓冲区用于除的
glClearDepth 为度缓冲区用于除的
glClearStencil 为模缓冲区用于除的
glClipPlane 定义被裁剪的一个平面几何
glColor 设置当前色
glColorMas帧缓冲区
glColorMaterial 使一个材质色当前的色
glColorPointer 定义一列色
glColorTableEX定义目的一个理的的格式和尺寸 glColorSubTableEX定义目理的的一部分被替换 glCopyPixels 拷贝帧缓冲区里像素
glCopyTexImage1D 将像素帧缓冲区拷贝到一个间纹理图中 glCopyTexImage2D 将像素帧缓冲区拷贝到一个间纹理图中 glCopyTexSubImage1帧缓冲区拷贝一个间纹理的

glCopyTexSubImage2D 帧缓冲区拷贝一个间纹理的象 glCullFace 定义前面后面是
gl
DeleteLists 删除相显示列表
gl
DeleteTextures 删除命名的

glDepthFunc 定义用于度缓冲区对照的数据 glDepthMas度缓冲区 glDepthRange 定义 z 值从标准的设备坐映射窗口标 glDrawArrays 定义渲染多个图元

glDrawBuffer 定义个色缓冲区被绘制 glDrawElements 渲染数据中的图元
gl
DrawPixels 组像素写帧缓冲区
glEdgeFlag 定义一个
glEdgeFlagPointer 定义一个
glEnableglDisable 闭 OpenGL 的特殊功能 glEnableClientState,glDisableClientState 分别组 glEvalCoord 解一二维贴

glEvalMesh1,glEvalMesh2 求解一二维点或线格 glEvalPoint1,glEvalPoint生成及解一个格中的单点 glFeedbackBuffer 反馈模式
glFinish 等
待直到 OpenGL 执行结束

glFlush 时间里强制 OpenGL 的执行
glFogf
,glFogi,glFogfv,glFogiv 定义雾参数
glFrontFace 
定义形的前面和
glFrustum 当前矩阵乘
视矩阵
glGenLists 生成一
的显示列表
glGenTextures 生成
理名称 glGetBooleanv,glGetDoublev,glGetFloatv,glGetIntegerv 回值或所选参数值 glGetClipPlane 回特定面的系数

glGetColorTableEXT 从当前板得到颜色表数据 glGetColorTableParameterfvEXT,glGetColorTableParameterivEXT 从颜色表中 得到参数
glGetError 
回错误消息
glGetLightfv,glGetLightiv 参数值 glGetMapdv,glGetMapfv,glGetMapiv 回求值程序参数 glGetMaterialfv,glGetMaterialiv 材质参数 glGetPixelMapfv,glGetpixelMapuiv,glGetpixelMapusv 回特定像素图 glGetPointerv 数据数
glGetPolygonStipple 形的
glGetString 描述当前 OpenGl 接的
glGetTexEnvfv 回纹环境参数 glGetTexGendv,glGetTexGenfv,glGetTexGeniv 回纹标生成参数 glGetTexImage 一个理图象 glGetTexLevelParameterfv,glGetTexLevelParameteriv 回特定理参数的 细节级

glGetTexParameterfv,glGetTexParameteriv 回纹理参数值 glHint 定义实现特殊线索
glIndex 建当前的色索引
glIndexMas索引缓冲区里位 GlIndexPointer 定义一个颜色索引

glInitName 初始化名
glInterleavedArrays 同
时定义许几个一个大的数组集合里组 glIsEnabled 定义能是
glIsList 
显示列表的存在
glIsTexture 一个名对应一个
glLightf
,glLighti,glLightfv,glLightiv 设置光参数 glLightModelf,glLightModeli,glLightModelfv,glLightModeliv 设置光线模型参数 glLineStipple 设定线点绘图
glLineWidth 设栅线
glListBase 为 glcallList 设显示列表的基
glLoadIdentity 用等矩阵换当前矩阵
glLoadMatrixd
,glLoadMatrif 用一个矩阵换当前矩阵
glLoadName 
一个名字调入名
glLogicOp 为色
索引渲染定义一个逻辑像素操作
glMap1d
,glMap1f 定义一个一维求值程序
glMap
2d,glMap2定义一个二维求值程序 glMapGrid1d,glMapGrid1f,glMapgrid2d,glMapGrid2定义一个一维或二维网 
glMaterialf
,glMateriali,glMateriafv,glMaterialiv 为光照模型定义材质参数 glMatrixMode 定义一个矩阵是当前矩阵
glMultMatrixd
,glMultMatrixf 用当前矩阵矩阵相乘
glNewList
,glEndList 创建或替换一个显示列表
glNormal 设
当前点法向
glNormalPointer 设一个法向
glOrtho 用垂直矩阵当前矩阵相乘
glPassThrough 
在反馈缓冲区号 glPixelMapfv,glPixelMapuiv,glPixelMapusv 设定像素换图 glPixelStoref,glpixelStorei 设定像素存储模式
glPixelTransferf
,glPixelTransferi 设定像素存储模式
glPixel
Zoom 设定像素缩放因数
glPointSi
ze 设栅点直径
glPolygonMode 选一个多形的光模式
glPolygonOffset 设
定 OpenGL 用于计算度值的比例和
glPolygonStipple 设
填充
glPrioritizeTextures 设定纹
glPushAttrib,glPopAttrib 属性堆栈的入和出操作 glPushClientAttrib,glPopClientAttrib 客户性堆存储客户状态值 glPushmatrix,glPopMatrix 矩阵栈的入和出操作 glPushName,glPopName 名栈的入和出操作

glRasterPos 定义像素操作的光栅位
glreadBuffer 为
像素一个缓冲区
glReadPixels 从帧缓冲区读取数据 glRectd,glRectf,glRecti,glRects,glRectdv,glRectfv,glRectiv,glRectsv 绘制一个三 

glRenderMode 定义模式
glRotated
,glRotatef 转矩阵当前矩阵相乘
glScaled
,glScalef 的比例矩阵当前矩阵相乘
glScissor 
定义
glSelectBuffer 为选模式一个缓冲区
glShadeModel 选
glStencilFunc 为模
测试设置功能和参照
glStencilMas写单
glStencilOp 设置激活模式测试
glTexCoord 设置当前
glTexCoordPointer 
定义一个标数组 glTexEnvf,glTexEnvi,glTexEnvfv,glTexEnviv 设定纹环境参数 glTexGend,glTexgenf,glTexGendv,glTexGenfv,glTexGeniv 标的生成 glTexImage1D 定义一个一理图
glTexImage2D 定义一个二维理图 glTexParameterf,glTexParameteri,glTexParameterfv,glTexParameteriv 设置纹 理参数
glTexSubImage1
D 定义一个存在的一维纹理图的一部分,但不能定义新的理 glTexSubImage2D 定义一个存在二维纹理图的一部分,但不能定义新的理 glTranslated,glTranslatef 变换矩阵当前矩阵相乘
glVertex 
定义一个
glVertexPointer 设一个数据数
glViewport 设置视窗[OpenGL 应用函数库]
gluBeginCurve,gluEndCurve 定义不一的有理的 NURBS 曲线 gluBeginPolygon,gluEndPolygon 定义一个非形 gluBeginSurface,gluEndSurface 定义一个 NURBS 曲线 gluBeginTrim,gluEndTrim 定义一个 NURBS 整理
gluBuild1Dmipmaps 建重映射
gluBuild2Dmipmaps 建立二维重映射
gluCylinder 绘制一个圆柱
gluDeleteNurbsRenderer 删除一个 NURBS 对
gluDeleQuadric 删除一个二次曲面对
gluDeleteTess 删除一个镶嵌
gluDis绘制一个
gluErrorString 根据 OpenGL 或 GLU 错误错误字串 gluGetNutbsProperty 得到一个 NURBS 属
gluGetString 得到一个描述 GL本号或支持 GL扩展用的串 gluGetTessProperty 得到一个镶嵌
gluLoadSamplingMatrices 载 NUMRBS 例选矩阵

gluLookAt 设一个变换视
gluNewNurbsRenderer 创建一个 NURBS 对
gluNewQuadric 建一个二次曲面对
gluNewTess 建一个镶嵌
gluNextContour 为其他轮廓的开
gluNurbsCallbac为 NURBS 对一个回调 gluNnrbsCurve 设一个 NuRBS 曲线的形状 gluNurbsProperty 设一个 NURBS 属
gluNurbsSurface 定义一个 NURBS 表面的形
gluOrtho2D 定义一个二位正投影矩阵
gluPartial
Dis绘制一个
gluPerspective 设置一个视投影矩阵
gluPic
kMatrix 定义一个拾取区间
gluProject 象坐映射为窗口
gluPwlCurve 
描述一个分线性 NURBS 修剪曲线 gluQuadricCallbac二次曲面对象定义一个回调 gluQuadricDrawStyle. 为二次曲面设定合适的绘制风格 gluQuadricNormals 定义二次曲面所用的法向类 gluQuadricOrientation 定义二次曲部方gluQuadricTexture 定义否带二次其图 gluScaleImage 变换为尺寸
gluSphere 绘制一个球体 gluTessBeginContour,gluTessEndContour 一个边界描述 gluTessBeginPolygon,gluTessEndPolygon 一个多描述 gluTessCallbac镶嵌象定义一个回调
gluTessNormal 为一个多行形定义法向
gluTessProperty 设置镶嵌的属
gluTessVertex 定义在一个多
gluUnProject 窗口映射为对象坐

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值