OpenGL函数库相关的API有核心库(gl)、实用库(glu)、辅助库(aux)、实用工具库(glut)、窗口库(glx、agl、wgl)和扩展函数库等。从图可以看出,gl是核心,glu是对gl的部分封装。glx、agl、wgl 是针对不同窗口系统的函数。glut是为跨平台的OpenGL程序的工具包,比aux功能强大。扩展函数库是硬件厂商为实现硬件更新利用OpenGL的扩展机制开发的函数。
目前OpenGL的函数主要包含在3个库中:GL 函数库、GLU 函数库、GLUT 函数库
GL 库函数
颜色编辑 |
glShadeModel,glColor,glColorPointer,glIndex,glIndexPointer,glColorTableEXT,glColorSubTableEXT |
绘制几何图形 |
glVertex,glVertexPointer,glArrayElement,glBegin , glEnd,glEdgeFlag , glEdgeFlagv,glPointSize,glLineWidth,glLineStipple,glPolygonMode,glFrontFace,glPolygonStipple,glDrawElements,glRect |
坐标转换 |
glTranslate,glRotate,glScale,glViewPoint,glFrustum,glOrtho,glClipPlane |
堆栈操作 |
glLoadMatrix,glMultMatrix,glMatrixMode,glPushMatrix , glPopMatrix,glPushAttrib , glPopAttrib,glPushName , glPopName,glInitName ,glLoadName |
显示列表 |
glNewList , glEndList,glCallList,glCallLists,glGenLists,glDeleteLists, glIsList, |
使用光照和材质 |
glNormal,glNormalPointer,glLight,glLightModel,glMaterial,glColorMaterial, |
像素操作 |
glRasterPos,glBitmap,glReadPixels,glDrawPixels,glCopyPixels,glCopyTexImage1D,glCopyTexImage2D,glCopyTexSubImage1D,glCopyTexSubImage2D,glPixelZoom,glPixelStore,glPixelTransfer,glPixelMap |
纹理映射 |
glTexImage1D,glTexImage2D,glTexParameter,glTexSubImage1D,glTexSubImage2D,glTexEnv,glTexCoord,glTexGen,glTexCoordPointer,glDeleteTextures, |
特效操作 |
glBlendFunc,glHint,glFog |
帧缓存操作 |
glClear,glClearAccum,glClearColor,glClearDepth,glClearIndex,glClearStencil,glDrawBuffer,glIndexMask,glColorMask,glDepthMask,glStencilMask,glAlphaFunc,glStencilFunc,glStencilOp,glDepthFunc,glDepthRange,glLogicOp,glAccum, |
曲线或曲面绘制 |
glEvalCoord,glMap1,glMap2,glMapGrid,glEvalMesh,glEvalPoint, |
查询函数 |
glGet,glGetClipPlane,glGetColorTableEXT,glGetColorTableParameterfvEXT , glGetColorTableParameterivEXT,glGetError,glGetLight,glGetMap,glGetMaterial,glGetPixelMap,glGetPointerv,glGetPolygonStipple,glGetString,glGetTexEnv,glGetTexImage,glGetTexLevelParameter,glGetTexParameter, |
GLU 库函数
包含有43个函数,函数名的前缀为glu。OpenGL提供了强大的但是为数不多的绘图命令,所有较复杂的绘图都必须从点、线、面开始。Glu 为了减轻繁重的编程工作,封装了OpenGL函数,Glu函数通过调用核心库的函数,为开发者提供相对简单的用法,实现一些较为复杂的操作。此函数由glu.dll来负责解释执行。OpenGL中的核心库和实用库可以在所有的OpenGL平台上运行。
绘制 NURBS 曲线和曲面 |
gluNewNurbsRenderer,gluNurbsProperty,gluNurbsCallback,gluBeginCurve , gluEndCurve,gluNurbsCurve,gluDeleteNurbsRenderer,gluBeginSurface , gluEndSurface,gluNurbsSurface,gluBeginTrim , gluEndTrim,gluPwlCurve,gluBeginPolygon , gluEndPolygon,gluPickMatrix |
绘制二次几何物体 |
gluNewQuadric,gluQuadricDrawStyle,gluQuadricNormals,gluQuadricOrientation,gluCylinder,gluSphere,gluDisk,gluPartialDisk,gluDeleteQuadric,gluQuadricTexture,gluQuadricCallback |
网格化 |
gluNewTess,gluTessVertex,gluTessCallback,gluTessBeginPolygon , gluTessEndPolygon,gluTessBeginContour , gluTessBeginContour,gluTessProperty,gluNextContour,gluTessNormal,gluDeleteTess |
坐标转换 |
gluOrtho2D,gluPerspective,gluLookAt,gluProject,gluUnProject |
多重映射 |
gluBuild1DMipmaps,gluBuild2DMipmaps,gluScaleImage |
查询函数 |
gluErrorString,gluGetNurbsProperty,gluGetString,gluGetTessProperty |
GLUT 库函数
包含大约30多个函数,函数名前缀为glut。glut是不依赖于窗口平台的OpenGL工具包,由Mark KLilgrad在SGI编写(现在在Nvidia),目的是隐藏不同窗口平台API的复杂度。 函数以glut开头,它们作为aux库功能更强的替代品,提供更为复杂的绘制功能,此函数由glut.dll来负责解释执行。由于glut中的窗口管理函数是不依赖于运行环境的,因此OpenGL中的工具库可以在X-Window, Windows NT, OS/2等系统下运行,特别适合于开发不需要复杂界面的OpenGL示例程序。对于有经验的程序员来说,一般先用glut理顺3D图形代码,然后再集成为完整的应用程序。
初始化和启动事件处理 |
glutInit,glutInitWindowPosition,glutInitWindowSize,glutInitDisplayMode,glutMainLoop, |
窗口管理 |
glutCreateWindow,glutCreateSubWindow,glutHideWindow,glutShowWindow,glutSetWindowTitle,glutPostRedisplay,glutSwapBuffers,glutFullScreen,glutPositionWindow,glutReshapeWindow,glutSetWindow,glutGetWindow,glutPopWindow,glutPushWindow,glutDestroyWindow,glutIconifyWindow,glutSetCursor, |
重叠层管理 |
glutEstablishOverlay,glutUseLayer,glutRemoveOverlay,glutPostOverlayRedisplay,glutShowOverlay,glutHideOverlay, |
菜单管理 |
glutCreateMenu,glutAddMenuEntry,glutAddSubMenu,glutAttachMenu,glutGetMenu,glutSetMenu,glutDestroyMenu,glutChangeToMenuEntry,glutChangeToSubMenu,glutRemoveMenuItem,glutDetachMenu, |
注册回调函数 |
glutDisplayFunc,glutReshapeFunc,glutMouseFunc,glutMotionFunc,glutIdleFunc,glutVisibilityFunc,glutKeyboardFunc,glutSpecialFunc,glutOverlayDisplayFunc,glutPassiveMotionFunc,glutEntryFunc,glutSpaceballMotionFunc,glutSpaceballRotateFunc,glutSpaceballButtonFunc,glutButtonBoxFunc,glutDialsFunc,glutTableMotionFunc,glutTableButtonFunc,glutMenuStatusFunc,glutTimerFunc |
颜色索引映射表管理 |
glutSetColor,glutGetColor,glutCopyColormap, |
状态检索 |
glutGet,glutLayerGet,glutDeviceGet,glutGetModifiers,glutExtensionSupported, |
字体绘制 |
glutBitmapCharacter,glutBitmapWidth,glutStrokeCharacter,glutStrokeWidth, |
几何图形绘制 |
glutSolidSphere , glutWireSphere,glutSolidCube , glutWireCube,glutSolidCone , glutWireCone,glutSolidTorus , glutWireTorus,glutSolidDodecahedron , glutWireDodecahedron,glutSolidOctahedron , glutWireOctahedron,glutSolidTetrahedron , glutWireTetrahedron,glutSolieIcosahedron , glutWireIcosahedron,glutSolidTeapot , glutWireTeapot, |
[OpenGL]OpenGL库函数汇总,布布扣,bubuko.com