1. 程式人生 > >OpenGL函式庫及配套工具集

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 設定視窗

相關推薦

OpenGL函式配套工具

閱讀目錄     (一)OpenGL函式庫         1、核心函式庫主要可以分為以下幾類函式         2、OpenGL實用庫(The OpenGL Utility Library)(GLU)         3、OpenGL輔助庫         4、Open

OpenGLOpenGL基本OpenGL實用OpenGL實用函式工具包之間的差別

OpenGL中的gl庫是核心庫,glu是實用庫,glut是實用工具庫。 gl是核心,glu是對gl的部分封裝,glut是OpenGL的跨平臺工具庫。 gl中包含了最基本的3D函式,而glu似乎對gl的輔助,如果算數好,不用glu的情況下,也是可以做出同樣的效果。 g

Python的擴展接口[2] -> 動態鏈接DLL[0] -> 動態鏈接輔助工具

特定 步驟 pen 所有 有用 部分 可能 cor 無需 動態鏈接庫 / Dynamic Link Library 目錄 動態鏈接庫簡介 函數封裝DLL 組件對象模型COM 如何判斷.dll文件是COM還是DLL 輔助工具 1 動態鏈接庫簡介 / DLL Intr

C#呼叫C++的P/Invoke工具

p/Invoke可以使用工具輔助自動生成,以減少混淆 1、官方的支援 http://visualstudiogallery.msdn.microsoft.com/site/search?query=p%2Finvoke&f%5B0%5D.Value=p%2Finvoke&f%5B0%5D.Ty

opengl 函式 2

曲線的基本理論 27.glMap1{f,d}(GLenum target,GLfloat u1,float u2,int stride, int order , const  double * points);功能;定一個一維取值器引數說明;target 指定由求知器所生成

opengl函式介紹

開發基於OpenGL的應用程式,必須先了解OpenGL的庫函式。它採用C語言風格,提供大量的函式來進行圖形的處理和顯示。OpenGL庫函式的命名方式非常有規律。所有OpenGL函式採用了以下格式: <庫字首><根命令><可選的引數個數>&

自編DataBase函式,內有引數查詢分頁操作

下面是DataBase.asp的完整程式碼。內有許多不相干的自編的偷懶函式(大家不要學我,我是嫌VB太囉嗦),你不需要可以去掉   <%'以下程式碼為通用程式碼Option ExplicitConst SqlUserID = "sa"   &n

LOCUST - 用於說話人驗證的縱向語料工具

LOCUST - Longitudinal Corpus and Toolset for Speaker Verification 摘要 在本文中,我們提出了一個新的縱向語料庫和工具集,以努力解決語音老化對說話人驗證的影響。 我們已經檢查過以前對年齡相關語音變化的縱向研究以及它對現實世界

linux下封裝函式——動態.so和靜態.a(程式碼實現連結方式)

在linux環境下的連結庫分為靜態連結庫(.a庫)和動態連結庫(.so庫),其作用是把C程式編譯好做成一種可執行連結檔案,主程式檔案呼叫這些程式的函式介面是可以使用a庫或so庫,在主程式中只需要include含有庫中提供的函式介面宣告的標頭檔案即可。所以學會如何

robot framework 工具介紹

標準庫:Robot Framework可以直接匯入使用的庫: Builtin:包含經常需要的關鍵字。自動匯入無需import,因此總是可用的 Collections:提供關鍵字來對列表和字典操作 DateTime:支援建立和驗證日期和時間值以及它們之間的計算。 Dialogs:提

JavaFX開發的開發常用工具——清單管理工具、命令列加強工具HTTP呼叫工具

在軟體開發過程中,經常會需要使用到一些工具,如清單管理、HTTP呼叫測試等,電腦上經常要裝一堆的軟體,而且這些軟體經常不是很滿足自己的使得習慣。作為一個開發人員,很自然的就想按自己的想法開發一些工具來供自己使用,因此這個工具集就因此而產生了,並且在使用過程中仍在

C++的一些小操作、常用函式(持續更新)

  1. 強制保留n位小數(位數不足則強制補零)    標頭檔案:    #include <iomanip>    在輸出前:    cout<<setprecision(n);    也有不用標頭檔案的方式,在輸出前:    cout.setf(ios::fixed); 

邊城工具:繪圖標註工具

寫文件、寫部落格難免需要繪圖,筆者在前端時間寫專欄《JavaScript 全棧工程師養成記》 的時候,就使用了大量的繪圖工具來繪製插圖,受到讀者們的要求和鼓勵,決定將自己使用的繪圖工具和方法展示出來,供大家參考、批評、指正。 根據筆者的習慣,介紹的工具幾乎都是免費或個人使用免費的,如果有收費工具,筆者會特別

常見string.h函式實現 string類實現

String.h 庫函式實現 void *Memcpy(char *dst, char const *src, int len) { assert(dst && src); char *tmp = dst; const char *s

Spark SQL原始碼函式解讀UDF/UDAF例子 spark研習第六

四、 Spark SQL原始碼函式解讀 1. Spark SQL內建函式解密與實戰 SparkSQL的DataFrame引入了大量的內建函式,這些內建函式一般都有CG(CodeGeneration)功能,這樣的函式在編譯和執行時都會經過高度優化。

ABP+AdminLTE+Bootstrap Table許可權管理系統第七節--登入邏輯幾種abp封裝的Javascript函式

        簡介        經過前幾節,我們已經解決資料庫,模型,DTO,控制器和注入等問題.那麼再來看一下登入邏輯.這裡算是前面幾節的一個初次試水. 首先我們資料庫已經有的相應的資料. 新增Login方法        模型和DTO已經建好,所以我們直接在服務層新增Login方法就可

windows環境下使用wiki中文百科gensim工具訓練詞向量

       以前做影象演算法,面對的都是一幅影象、m*n個畫素點,對於詞向量完全沒有概念,在接觸自然語言處理一些演算法後,才知道這個概念,想必做自然語言處理的同學都訓練過詞向量。訓練詞向量的相關文章

OpenGL 顏色混合函式 glBlendFunc() cocos2d中的戰爭迷霧效果

在OpenGL中繪製的時候,有時候想使新畫的顏色和已經有的顏色按照一定的方式進行混合,比如想使物體擁有半透明的效果,或者繪製疊加光亮的效果,這時候就要用到glBlendFunc()函式。 看名字就知道,用它的原因就是,我們需要把幾種顏色通過混合來達到半透明或其它我們需要

系統呼叫、函式兩者的區別

(1)什麼是系統呼叫?      系統呼叫,說的是作業系統提供給使用者程式呼叫的一組“特殊”介面。使用者程式可以通過這組“特殊”介面來獲得作業系統核心提供的服務、比如使用者可以通過檔案系統相關的呼叫請求系統開啟檔案、關閉檔案或讀寫檔案等;從邏輯上來說,系統呼叫可以被看成是一

C函式qsort函式最後一個引數的相關問題

      在學習資料結構的時候,我們會學習到很多不同的排序演算法,比如說氣泡排序法,雜湊表(大霧),以及快速排序。而C的函式庫也給我們了一個快速排序的函式。就是我所提到的這個qsort。這個函式內部是一個寫好了的快速排序演算法的函式。標頭檔案是#include<st