[分享] OpenGL 库函数汇总
<STRONG> </STRONG><FONT color=#ff0000><STRONG> OpenGL 库函数汇总<br>=================================<br><br></STRONG>目前OpenGL的函数主要包含在3个库中<br>1.GL 函数库<br>2.GLU 函数库<br>3.GLUT 函数库<br><br>为方便大家学习OpenGL,现将其函数分类汇总,以供查询。[em01]</FONT><br><br><br>PS: 敲了一下午的键盘,太累了[em06],函数的格式参数以及作用以后慢慢加。[em04]<br> 工程量比较大,还望各位谅解[em29][align=right][color=#000066][此贴子已经被作者于2007-9-23 16:34:03编辑过][/color][/align]
<P><FONT color=#ff0000><STRONG>1.GL 库函数<br>===================================<br><br><br></STRONG>颜色编辑<br>-------------------<br><br><br>glShadeModel<br><br> <FONT color=#0909f7>选择平面明暗模式或光滑明暗模式<br><br> void glShadeModel(GLenum mode) <br> 参数:mode 指定表示明暗模式的符号值,可选 GL_FLAT 和 GL_SMOOTH ,缺省值为 GL_SMOOTH<br></FONT><br><br>glColor<br><br><FONT color=#0000ff> 设置当前颜色<br> 这是一个家族性质的函数集合,并没有glColor()这个函数。其包含的函数如下:<br><br> void glColor3b(GLbyte red , GLbyte green , GLbyte blue)<br> void glColor3d(GLdouble red , GLdouble green , GLdouble blue)<br> void glColor3f(GLfloat red , GLfloat green , GLfloat blue)</FONT><br><FONT color=#0033ff> void glColor3i(GLint red , GLint green , GLint blue)<br> void glColor3s(GLshort red , GLshort green , GLshort blue)<br> void glColor3ub(GLubyte red , GLubyte green , GLubyte blue)<br> void glColor3ui(GLuint red , GLuint green , GLuint blue)<br> void glColor3us(GLushort red , GLushort green , GLushort blue)<br></FONT><br><FONT color=#3300ff> void glColor4b(GLbyte red , GLbyte green , GLbyte blue , GLbyte alpha)<br> void glColor4d(GLdouble red , GLdouble green , GLdouble blue , GLdouble alpha)<br> void glColor4f(GLfloat red , GLfloat green , GLfloat blue , GLfloat alpha)<br> void glColor4i(GLint red , GLint green , GLint blue , GLint alpha)<br> void glColor4s(GLshort red , GLshort green , GLshort blue , GLshort alpha)<br> void glColor4ub(GLubyte red , GLubyte green , GLubyte blue , GLubyte alpha)<br> void glColor4ui(GLuint red , GLuint green , GLuint blue , GLuint alpha)<br> void glColor4us(GLushort red , GLushort green , GLushort blue , GLbyte alpha)<br><br> 参数:red , green , blue 指定当前新的红、绿、蓝的颜色值<br> alpha 透明度,指明当前新的 alpha 颜色值 ,只有在 glColor4 函数中带4个变量时才会指定此参数。<br></FONT><br> <FONT color=#0909f7>此外还包括:</FONT><br><br> <FONT color=#3d11ee>void glColor3bv(const GLbyte * v)</FONT><br><FONT color=#0000ff> void glColor3dv(const GLdoble * v)<br> void glColor3fv(const GLfloat * v)<br> void glColor3iv(const GLint * v)<br> void glColor3sv(const GLshort * v)<br> void glColor3ubv(const GLubyte * v)<br> void glColor3uiv(const GLuint * v)<br> void glColor3usv(const GLushort * v)<br><br> void glColor4bv(const GLbyte * v)<br> void glColor4dv(const GLdoble * v)<br> void glColor4fv(const GLfloat * v)<br> void glColor4iv(const GLint * v)<br> void glColor4sv(const GLshort * v)<br> void glColor4ubv(const GLubyte * v)<br> void glColor4uiv(const GLuint * v)<br> void glColor4usv(const GLushort * v)<br></FONT> <br> <FONT color=#3809f7>参数:v 指定一个值向包含红、绿、蓝和 alpha 值的数组指针。</FONT><br><br><br><br>glColorPointer<br><br> <FONT color=#0000ff>定义颜色数组</FONT><br> <FONT color=#0000ff>void glColorPointer(GLint size , GLenum type , GLsizei stride , GLsizei count , const GLvoid * pointer)<br> 参数:size 每个颜色的分量数目 ,该值必须是3或4<br> type 在颜色数组中每个颜色分量的数据类型,可选的数据类型为:<br> GL_BYTE GL_UNSIGNED_BYTE GL_SHORT GL_UNSIGNED_SHORT<br> GL_INT GL_UNSIGNED_INT GL_FLOAT GL_UNSIGNED_FLOAT<br> stride 相邻两个颜色的字节偏移量。当stride为零时 ,颜色值在数组中是一个接一个排列的。<br> count 静态颜色的数目 ,从第一个颜色开始计数。<br> pointer 指向颜色数组中第一个颜色元素中第一个分量的指针。</FONT><br><br><br><br>glIndex<br><br><FONT color=#0909f7> 设置当前颜色索引<br><br> void glIndexd(GLdouble c)<br> void glIndexf(GLfloat c)<br> void glIndexi(GLint c)<br> void glIndexs(GLshort c) <br> 参数: c 新的当前颜色索引值<br><br> void glIndexdv(GLdouble * c)<br> void glIndexfv(GLfloat * c)<br> void glIndexiv(GLint * c)<br> void glIndexsv(GLshort * c)<br> 参数: c 指向一个由单个元素组成的数组指针 ,该数组中包含新的当前颜色索引值。<br></FONT><br><br><br><br>glIndexPointer<br><br> <FONT color=#0000ff>定义颜色索引数组<br><br> void glIndexPointer(GLenum type ,GLsizei stride ,GLsizei count ,const GLvoid *pointer)<br> 参数:type 数组中每个颜色索引的数据类型 ,可以选择的符号常数为:GL_SHORT GL_INT GL_FLOAT GL_DOUBLE<br> stride 相邻的两个颜色索引的字节偏移量。当stride为零时 ,颜色索引值在数组中是一个接一个排列的。<br> count 颜色索引的数目,从第一个颜色开始计数 ,它们是静态的。<br> pointer 指向颜色数组中第一个颜色索引的指针。<br></FONT><br><br><br><br><br>glColorTableEXT<br><br> <FONT color=#0000ff>为目标调色板纹理指定调色板的格式和大小<br> void glColorTableEXT(GLenum target ,GLenum internalFormat ,GLsizei width ,GLenum format ,GLenum type ,const GLvoid *data)<br> 参数:target 需要更改调色板的目标纹理 ,必须为 TEXTURE_1D TEXTURE_2D PROXY_TEXTURE_1D PROXY_TEXTURE_2D <br> intenalFormat (等待编辑)<br> width 调色板的大小 ,对于某些 n ,必须满足 2n>=1 . <br> format (等待编辑)<br> type data的数据类型 ,可选以下符号常量:<br> GL_UNSIGNED_BYTE GL_BYTE GL_UNSIGNED_SHORT GL_SHORT GL_UNSIGNED_INT GL_INT GL_UNSIGNED_FLOAT GL_FLOAT<br> data 指向调色板纹理数据的指针。对于调色板项目 ,数据作为一维纹理调色板项目中的单个像素进行处理。<br></FONT><br><br><br><br><br>glColorSubTableEXT<br><br> <FONT color=#3809f7> 指定需要替代的目标纹理调色板的一部分<br> void glColorSubTableEXT(GLenum target ,GLsizei start ,GLsizei count ,GLenum format ,GLenum type ,const GLvoid * data)<br> 参数:target 需要更改调色板的目标纹理 ,必须为 TEXTURE_1D TEXTURE_2D PROXY_TEXTURE_1D PROXY_TEXTURE_2D<br> start 被改变的调色板的起始调色板索引项目。<br> count 被改变的调色板中从 start 开始的调色板索引项目的数目。count参数确定了被改变的调色板中调色板索引项目的范围。<br> format (等待编辑)<br> type data的数据类型 ,可选以下符号常量:<br> GL_UNSIGNED_BYTE GL_BYTE GL_UNSIGNED_SHORT GL_SHORT GL_UNSIGNED_INT GL_INT GL_UNSIGNED_FLOAT GL_FLOAT<br> data 指向调色板纹理数据的指针。对于调色板项目 ,数据作为一维纹理调色板项目中的单个像素进行处理。</FONT><br><br><br>绘制几何图形<br>-----------------------------<br><br><br>glVertex<br>glVertexPointer<br>glArrayElement<br>glBegin , glEnd<br>glEdgeFlag , glEdgeFlagv<br>glPointSize<br>glLineWidth<br>glLineStipple<br>glPolygonMode<br>glFrontFace<br>glPolygonStipple<br>glDrawElements<br>glRect<br><br><br><br>坐标转换<br>-----------------------------<br><br><br>glTranslate<br>glRotate<br>glScale<br>glViewPoint<br>glFrustum<br>glOrtho<br>glClipPlane<br><br><br><br><br>堆栈操作<br>------------------------------<br><br><br>glLoadMatrix<br>glMultMatrix<br>glMatrixMode<br>glPushMatrix , glPopMatrix<br>glPushAttrib , glPopAttrib<br>glPushName , glPopName<br>glInitName <br>glLoadName<br><br></FONT></P>
[align=right][color=#000066][此贴子已经被作者于2007-9-24 18:01:38编辑过][/color][/align]
<P><FONT color=#ff0000><STRONG>1.GL 函数库(续)<br>===============================<br></STRONG><br><br>显示列表<br>-----------------------------<br><br><br>glNewList , glEndList<br>glCallList<br>glCallLists<br>glGenLists<br>glDeleteLists<br>glIsList<br><br><br><br>使用光照和材质<br>-----------------------------<br><br><br>glNormal<br>glNormalPointer<br>glLight<br>glLightModel<br>glMaterial<br>glColorMaterial<br><br><br><br>像素操作<br>------------------------------<br><br><br>glRasterPos<br>glBitmap<br>glReadPixels<br>glDrawPixels<br>glCopyPixels<br>glCopyTexImage1D<br>glCopyTexImage2D<br>glCopyTexSubImage1D<br>glCopyTexSubImage2D<br>glPixelZoom<br>glPixelStore<br>glPixelTransfer<br>glPixelMap<br><br><br><br>纹理映射<br>-----------------------------<br><br><br>glTexImage1D<br>glTexImage2D<br>glTexParameter<br>glTexSubImage1D<br>glTexSubImage2D<br>glTexEnv<br>glTexCoord<br>glTexGen<br>glTexCoordPointer<br>glDeleteTextures<br><br><br><br>特效操作<br>----------------------------<br><br><br>glBlendFunc<br>glHint<br>glFog<br><br><br></FONT></P>
[align=right][color=#000066][此贴子已经被作者于2007-9-23 14:40:47编辑过][/color][/align]
<P><FONT color=#ff0000><STRONG>1.GL 库函数(续2)<br>=============================<br><br><br></STRONG>帧缓存操作<br>-----------------------------<br><br><br>glClear<br>glClearAccum<br>glClearColor<br>glClearDepth<br>glClearIndex<br>glClearStencil<br>glDrawBuffer<br>glIndexMask<br>glColorMask<br>glDepthMask<br>glStencilMask<br>glAlphaFunc<br>glStencilFunc<br>glStencilOp<br>glDepthFunc<br>glDepthRange<br>glLogicOp<br>glAccum<br><br><br><br>曲线或曲面绘制<br>------------------------------<br><br><br>glEvalCoord<br>glMap1<br>glMap2<br>glMapGrid<br>glEvalMesh<br>glEvalPoint<br><br><br><br>查询函数<br>-----------------------------<br><br><br>glGet<br>glGetClipPlane<br>glGetColorTableEXT<br>glGetColorTableParameterfvEXT , glGetColorTableParameterivEXT<br>glGetError<br>glGetLight<br>glGetMap<br>glGetMaterial<br>glGetPixelMap<br>glGetPointerv<br>glGetPolygonStipple<br>glGetString<br>glGetTexEnv<br>glGetTexImage<br>glGetTexLevelParameter<br>glGetTexParameter</FONT></P>
[align=right][color=#000066][此贴子已经被作者于2007-9-23 14:54:29编辑过][/color][/align]
<P><FONT color=#f73809><STRONG>2.GLU 库函数</STRONG></FONT><br><FONT color=#f70909>============================</FONT></P>
<P><br><FONT color=#f70909>绘制 NURBS 曲线和曲面<br>------------------------------</FONT></P>
<P><br><FONT color=#f70909>gluNewNurbsRenderer<br>gluNurbsProperty<br>gluNurbsCallback<br>gluBeginCurve , gluEndCurve<br>gluNurbsCurve<br>gluDeleteNurbsRenderer<br>gluBeginSurface , gluEndSurface<br>gluNurbsSurface<br>gluBeginTrim , gluEndTrim<br>gluPwlCurve<br>gluBeginPolygon , gluEndPolygon<br>gluPickMatrix</FONT></P>
<P><FONT color=#f70909></FONT> </P>
<P><FONT color=#f70909>绘制二次几何物体<br>---------------------------------</FONT></P>
<P><br><FONT color=#f70909>gluNewQuadric<br>gluQuadricDrawStyle<br>gluQuadricNormals<br>gluQuadricOrientation<br>gluCylinder<br>gluSphere<br>gluDisk<br>gluPartialDisk<br>gluDeleteQuadric<br>gluQuadricTexture<br>gluQuadricCallback</FONT></P>
<P><FONT color=#f70909></FONT> </P>
<P><br><FONT color=#f70909>网格化<br>------------------------------</FONT></P>
<P><br><FONT color=#f70909>gluNewTess<br>gluTessVertex<br>gluTessCallback<br>gluTessBeginPolygon , gluTessEndPolygon<br>gluTessBeginContour , gluTessBeginContour<br>gluTessProperty<br>gluNextContour<br>gluTessNormal<br>gluDeleteTess</FONT></P>
<P><FONT color=#f70909></FONT> </P>
<P><br><FONT color=#f70909>坐标转换<br>------------------------------</FONT></P>
<P><br><FONT color=#f70909>gluOrtho2D<br>gluPerspective<br>gluLookAt<br>gluProject<br>gluUnProject</FONT></P>
<P><FONT color=#f70909></FONT> </P>
<P><br><FONT color=#f70909>多重映射<br>------------------------------</FONT></P>
<P><br><FONT color=#f70909>gluBuild1DMipmaps<br>gluBuild2DMipmaps<br>gluScaleImage</FONT></P>
<P><FONT color=#f70909></FONT> </P>
<P><br><FONT color=#f70909>查询函数<br>-----------------------------</FONT></P>
<P><br><FONT color=#f70909>gluErrorString<br>gluGetNurbsProperty<br>gluGetString<br>gluGetTessProperty<br></FONT></P>
[align=right][color=#000066][此贴子已经被作者于2007-9-23 15:21:26编辑过][/color][/align]
<P><FONT color=#f73809><STRONG>3.GLUT 库函数<br>=============================<br><br><br></STRONG>初始化和启动事件处理<br>-------------------------<br><br><br>glutInit<br>glutInitWindowPosition<br>glutInitWindowSize<br>glutInitDisplayMode<br>glutMainLoop<br><br><br><br><br>窗口管理<br>-------------------------<br><br><br>glutCreateWindow<br>glutCreateSubWindow<br>glutHideWindow<br>glutShowWindow<br>glutSetWindowTitle<br>glutPostRedisplay<br>glutSwapBuffers<br>glutFullScreen<br>glutPositionWindow<br>glutReshapeWindow<br>glutSetWindow<br>glutGetWindow<br>glutPopWindow<br>glutPushWindow<br>glutDestroyWindow<br>glutIconifyWindow<br>glutSetCursor<br><br><br><br>重叠层管理<br>-------------------------<br><br><br>glutEstablishOverlay<br>glutUseLayer<br>glutRemoveOverlay<br>glutPostOverlayRedisplay<br>glutShowOverlay<br>glutHideOverlay<br><br><br><br><br>菜单管理<br>-------------------------<br></FONT></P><br><br><FONT color=#ff0000>glutCreateMenu<br>glutAddMenuEntry<br>glutAddSubMenu<br>glutAttachMenu<br>glutGetMenu<br>glutSetMenu<br>glutDestroyMenu<br>glutChangeToMenuEntry<br>glutChangeToSubMenu<br>glutRemoveMenuItem<br>glutDetachMenu</FONT>
[align=right][color=#000066][此贴子已经被作者于2007-9-23 15:50:57编辑过][/color][/align]
<P><FONT color=#ee1111><STRONG>3.GLUT 库函数(续)<br>===============================<br></STRONG></FONT><br><FONT color=#ff0000><br><br>注册回调函数<br>-------------------------------<br><br><br>glutDisplayFunc<br>glutReshapeFunc<br>glutMouseFunc<br>glutMotionFunc<br>glutIdleFunc<br>glutVisibilityFunc<br>glutKeyboardFunc<br>glutSpecialFunc<br>glutOverlayDisplayFunc<br>glutPassiveMotionFunc<br>glutEntryFunc<br>glutSpaceballMotionFunc<br>glutSpaceballRotateFunc<br>glutSpaceballButtonFunc<br>glutButtonBoxFunc<br>glutDialsFunc<br>glutTableMotionFunc<br>glutTableButtonFunc<br>glutMenuStatusFunc<br>glutTimerFunc<br><br><br><br><br>颜色索引映射表管理<br>-------------------------------<br><br><br>glutSetColor<br>glutGetColor<br>glutCopyColormap<br><br><br><br>状态检索<br>-------------------------------<br><br><br>glutGet<br>glutLayerGet<br>glutDeviceGet<br>glutGetModifiers<br>glutExtensionSupported<br><br><br><br>字体绘制<br>-------------------------------<br><br><br>glutBitmapCharacter<br>glutBitmapWidth<br>glutStrokeCharacter<br>glutStrokeWidth<br><br><br><br><br>几何图形绘制<br>-------------------------------<br><br><br>glutSolidSphere , glutWireSphere<br>glutSolidCube , glutWireCube<br>glutSolidCone , glutWireCone<br>glutSolidTorus , glutWireTorus<br>glutSolidDodecahedron , glutWireDodecahedron<br>glutSolidOctahedron , glutWireOctahedron<br>glutSolidTetrahedron , glutWireTetrahedron<br>glutSolieIcosahedron , glutWireIcosahedron<br>glutSolidTeapot , glutWireTeapot<br><br><br><br><br></FONT></P>
[align=right][color=#000066][此贴子已经被作者于2007-9-23 16:16:18编辑过][/color][/align]
楼主辛苦了! 谢谢分享
页:
[1]
