OpenGL函式庫及配套工具集
(一)OpenGL函式庫
1、核心函式庫主要可以分為以下幾類函式
2、OpenGL實用庫(The OpenGL Utility Library)(GLU)
3、OpenGL輔助庫
4、OpenGL工具庫(OpenGL Utility Toolkit)
5、16個WGL函式,專門用於OpenGL和Windows視窗系統的聯接,其字首名為wgl
(二)函式庫列表
1、OpenGL應用函式庫
2、OpenGL核心函式庫
回到頂部
(一)OpenGL函式庫
格式:
<庫字首><根命令><可選的引數個數><可選的引數型別> 庫字首有 gl、glu、aux、glut、wgl、glx、agl 等等。
回到頂部
1、核心函式庫主要可以分為以下幾類函式
(1) 繪製基本的幾何圖元函式。如:glBegain().
(2) 矩陣操作、幾何變換和投影變換的函式。如:矩陣入棧glPushMatrix(),還有矩陣的出棧、轉載、相乘,此外還有幾何變換函式glTranslate*(),投影變換函式glOrtho()和視口變換函式glViewport()等等。
(3) 顏色、光照和材質函式。
(4) 顯示列表函式,主要有建立、結束、生成、刪除和呼叫顯示列表的函式glNewList()、glEndList()、glGenLists()、glDeleteLists()和glCallList()。
(5) 紋理對映函式,主要有一維和二維紋理函式,設定紋理引數、紋理環境和紋理座標的函式glTexParameter*()、glTexEnv*()和glTetCoord*()等。
(6) 特殊效果函式。
(7) 選著和反饋函式。
(8) 曲線與曲面的繪製函式。
(9) 狀態設定與查詢函式。
(10) 光柵化、畫素函式。
回到頂部
2、OpenGL實用庫(The OpenGL Utility Library)(GLU)
包含有43個函式,函式名的字首名為glu.
(1) 輔助紋理貼圖函式。
(2) 座標轉換和投影變換函式。
(3) 多邊形鑲嵌工具。
(4) 二次曲面繪製工具。
(5) 非均勻有理B樣條繪製工具。
(6) 錯誤反饋工具,獲取出錯資訊的字串gluErrorString()
回到頂部
3、OpenGL輔助庫
包含有31個函式,函式名字首名為aux
這部分函式提供視窗管理、輸入輸出處理以及繪製一些簡單的三維物體。
回到頂部
4、OpenGL工具庫(OpenGL Utility Toolkit)
包含大約30多個函式,函式字首名為glut,此函式由glut.dll來負責解釋執行。
(1) 視窗操作函式。視窗初始化、視窗大小、視窗位置等函式glutInit() glutInitDisplayMode()、glutInitWindowSize() glutInitWindowPosition()等。
(2) 回撥函式。響應重新整理訊息、鍵盤訊息、滑鼠訊息、定時器函式等,GlutDisplayFunc()、glutPostRedisplay()、 glutReshapeFunc()、glutTimerFunc()、glutKeyboardFunc()、 glutMouseFunc()。
(3) 建立複雜的三維物體。這些和aux庫函式功能相同。如建立球體glutWireSphere().
(4) 函式選單
(5) 程式執行函式 glutAttachMenu()
回到頂部
5、16個WGL函式,專門用於OpenGL和Windows視窗系統的聯接,其字首名為wgl
(1) 繪製上下文函式。 wglCreateContext()、wglDeleteContext()、wglGetCurrentContent()、wglGetCurrentDC() wglDeleteContent()等。
(2) 文字和文字處理函式。wglUseFontBitmaps()、wglUseFontOutlines()。
(3) 覆蓋層、地層和主平面處理函式。wglCopyContext()、wglCreateLayerPlane()、 wglDescribeLayerPlane()、wglReakizeLayerPlatte()等。
(4) 其他函式。wglShareLists()、wglGetProcAddress()等。
回到頂部
(二)函式庫列表
回到頂部
1、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 將視窗座標對映為物件座標
回到頂部
2、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 設定視窗