青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

OpenGL開發(fā)庫的介紹[轉(zhuǎn)載]

  開發(fā)基于 OpenGL 的應用程序,必須先了解 OpenGL 的庫函數(shù)。它采用 C 語言風格,提供大量的函數(shù)來進行圖形的處理和顯示。 OpenGL 庫函數(shù)的命名方式非常有規(guī)律。所有 OpenGL 函數(shù)采用了以下格式:

  < 庫前綴 >< 根命令 >< 可選的參數(shù)個數(shù) >< 可選的參數(shù)類型 >

  庫前綴有 gl 、 glu 、 aux 、 glut 、 wgl 、 glx 、 agl 等等,分別表示該函數(shù)屬于 OpenGL 那個開發(fā)庫,從函數(shù)名后面中還可以看出需要多少個參數(shù)以及參數(shù)的類型。 I 代表 int 型, f 代表 float 型, d 代表 double 型, u 代表無符號整 型。例如 glVertex3fv() 表示了該函數(shù)屬于 gl 庫,參數(shù)是三個 float 型參數(shù)指針。我們用 glVertex*()
來表示這一類函數(shù)。



  OpenGL 函數(shù)庫相關的 API 有核心庫 (gl) 、實用庫 (glu) 、輔助庫 (aux) 、實用工具庫 (glut) 、窗口庫 (glx 、 agl 、 wgl) 和擴展函數(shù)庫等。從圖可以看出, gl 是核心, glu 是對 gl 的部分封裝。 glx 、 agl 、 wgl 是針對不同窗口系統(tǒng)的函數(shù)。 glut 是為跨平臺的 OpenGL 程序的工具包,比 aux 功能強大。擴展函數(shù)庫是硬件廠商為實現(xiàn)硬件更新利用 OpenGL 的擴展機制開發(fā)的函數(shù)。下面逐一對這些庫進行詳細介紹。

  1 . OpenGL 核心庫

  核心庫包含有 115 個函數(shù),函數(shù)名的前綴為 gl 。這部分函數(shù)用于常規(guī)的、核心的圖形處理。此函數(shù)由 gl.dll 來負責解釋執(zhí)行。由于許多函數(shù)可以接收不同數(shù)以下幾類。據(jù)類型的參數(shù),因此派生出來的函數(shù)原形多達 300 多個。核心庫中的函數(shù)主要可以分為以下幾類函數(shù):

  繪制基本幾何圖元的函數(shù): glBegain() 、 glEnd() 、 glNormal*() 、 glVertex*() ;

  矩陣操作、幾何變換和投影變換的函數(shù):如矩陣入棧函數(shù) glPushMatrix() ,矩陣出棧函數(shù) glPopMatrix() ,裝載矩陣函數(shù) glLoadMatrix() ,矩陣相乘函數(shù) glMultMatrix() ,當前矩陣函數(shù) glMatrixMode() 和矩陣標準化函數(shù) glLoadIdentity() ,幾何變換函數(shù) glTranslate*() 、 glRotate*() 和 glScale*() ,投影變換函數(shù) glOrtho() 、 glFrustum() 和視口變換函數(shù) glViewport() ;

  顏色、光照和材質(zhì)的函數(shù):如設置顏色模式函數(shù) glColor*() 、 glIndex*() ,設置光照效果的函數(shù) glLight*() 、 glLightModel*() 和設置材質(zhì)效果函數(shù) glMaterial() ;

  顯示列表函數(shù):主要有創(chuàng)建、結束、生成、刪除和調(diào)用顯示列表的函數(shù) glNewList() 、 glEndList() 、 glGenLists() 、 glCallList() 和 glDeleteLists() ;

  紋理映射函數(shù):主要有一維紋理函數(shù) glTexImage1D() 、二維紋理函數(shù) glTexImage2D() 、設置紋理參數(shù)、紋理環(huán)境和紋理坐標的函數(shù) glTexParameter*() 、 glTexEnv*() 和 glTetCoord*() ;

  特殊效果函數(shù):融合函數(shù) glBlendFunc() 、反走樣函數(shù) glHint() 和霧化效果 glFog*() ;

  光柵化、象素操作函數(shù):如象素位置 glRasterPos*() 、線型寬度 glLineWidth() 、多邊形繪制模式 glPolygonMode() ,讀取象素 glReadPixel() 、復制象素 glCopyPixel() ;

  選擇與反饋函數(shù):主要有渲染模式 glRenderMode() 、選擇緩沖區(qū) glSelectBuffer() 和反饋緩沖區(qū) glFeedbackBuffer() ;

  曲線與曲面的繪制函數(shù):生成曲線或曲面的函數(shù) glMap*() 、 glMapGrid*() ,求值器的函數(shù) glEvalCoord*() glEvalMesh*() ;

  狀態(tài)設置與查詢函數(shù): glGet*() 、 glEnable() 、 glGetError() 。

  2 . OpenGL 實用庫 The OpenGL Utility Library (GLU)

  包含有 43 個函數(shù),函數(shù)名的前綴為 glu 。 OpenGL 提供了強大的但是為數(shù)不多的繪圖命令,所有較復雜的繪圖都必須從點、線、面開始。 Glu 為了減輕繁重的編程工作,封裝了 OpenGL 函數(shù), Glu 函數(shù)通過調(diào)用核心庫的函數(shù),為開發(fā)者提供相對簡單的用法,實現(xiàn)一些較為復雜的操作。此函數(shù)由 glu.dll 來負責解釋執(zhí)行。 OpenGL 中的核心庫和實用庫可以在所有的 OpenGL 平臺上運行。主要包括了以下幾種:

  輔助紋理貼圖函數(shù): gluScaleImage() 、 gluBuild1Dmipmaps() 、 gluBuild2Dmipmaps() ;

  坐標轉(zhuǎn)換和投影變換函數(shù):定義投影方式函數(shù) gluPerspective() 、 gluOrtho2D() 、 gluLookAt() ,拾取投影視景體函數(shù) gluPickMatrix() ,投影矩陣計算 gluProject() 和 gluUnProject() ;

  多邊形鑲嵌工具: gluNewTess() 、 gluDeleteTess() 、 gluTessCallback() 、 gluBeginPolygon() 、 gluTessVertex() 、 gluNextContour() 、 gluEndPolygon() ;

  二次曲面繪制工具,主要有繪制球面、錐面、柱面、圓環(huán)面 gluNewQuadric() 、 gluSphere() 、 gluCylinder() 、 gluDisk() 、 gluPartialDisk() 、 gluDeleteQuadric() ;

  非均勻有理 B 樣條繪制工具:主要用來定義和繪制 Nurbs 曲線和曲面,包括 gluNewNurbsRenderer() 、 gluNurbsCurve() 、 gluBeginSurface() 、 gluEndSurface() 、 gluBeginCurve() 、 gluNurbsProperty() ;

  錯誤反饋工具:獲取出錯信息的字符串 gluErrorString() 。

  3 . OpenGL 輔助庫

  包含有 31 個函數(shù),函數(shù)名前綴為 aux 。這部分函數(shù)提供窗口管理、輸入輸出處理以及繪制一些簡單三維物體。此函數(shù)由 glaux.dll 來負責解釋執(zhí)行。創(chuàng)建 aux 庫是為了學習和編寫 OpenGL 程序,它更像是一個用于測試創(chuàng)意的預備基礎接管。 Aux 庫在 windows 實現(xiàn)有很多錯誤,因此很容易導致頻繁的崩潰。在跨平臺的編程實例和演示中, aux 很大程度上已經(jīng)被 glut 庫取代。 OpenGL 中的輔助庫不能在所有的 OpenGL 平臺上運行。

  輔助庫函數(shù)主要包括以下幾類:

  窗口初始化和退出函數(shù): auxInitDisplayMode() 和 auxInitPosition() ;

  窗口處理和時間輸入函數(shù): auxReshapeFunc() 、 auxKeyFunc() 和 auxMouseFunc() ;

  顏色索引裝入函數(shù): auxSetOneColor() ;

  三維物體繪制函數(shù):包括了兩種形式網(wǎng)狀體和實心體,如繪制立方體 auxWireCube() 和 auxSolidCube() 。這里以網(wǎng)狀體為例,長方體 auxWireBox() 、環(huán)形圓紋面 auxWireTorus() 、圓柱 auxWireCylinder() 、二十面體 auxWireIcosahedron() 、八面體 auxWireOctahedron() 、四面體 auxWireTetrahedron() 、十二面體 auxWireDodecahedron() 、圓錐體 auxWireCone() 和茶壺 auxWireTeapot() ;

  背景過程管理函數(shù): auxIdleFunc() ;

  程序運行函數(shù): auxMainLoop() 。

  4 . OpenGL 工具庫 OpenGL Utility Toolkit

  包含大約 30 多個函數(shù),函數(shù)名前綴為 glut 。 glut 是不依賴于窗口平臺的 OpenGL 工具包,由 Mark KLilgrad 在 SGI 編寫(現(xiàn)在在 Nvidia ),目的是隱藏不同窗口平臺 API 的復雜度。 函數(shù)以 glut 開頭,它們作為 aux 庫功能更強的替代品,提供更為復雜的繪制功能,此函數(shù)由 glut.dll 來負責解釋執(zhí)行。由于 glut 中的窗口管理函數(shù)是不依賴于運行環(huán)境的,因此 OpenGL 中的工具庫可以在 X-Window, Windows NT, OS/2 等系統(tǒng)下運行,特別適合于開發(fā)不需要復雜界面的 OpenGL 示例程序。對于有經(jīng)驗的程序員來說,一般先用 glut 理順 3D 圖形代碼,然后再集成為完整的應用程序。

  這部分函數(shù)主要包括:

  窗口操作函數(shù):窗口初始化、窗口大小、窗口位置函數(shù)等 [glutInit() 、 glutInitDisplayMode() 、 glutInitWindowSize() 、 glutInitWindowPosition()] ;

  回調(diào)函數(shù):響應刷新消息、鍵盤消息、鼠標消息、定時器函數(shù) [GlutDisplayFunc() 、 glutPostRedisplay() 、 glutReshapeFunc() 、 glutTimerFunc() 、 glutKeyboardFunc() 、 glutMouseFunc()] ;

  創(chuàng)建復雜的三維物體:這些和 aux 庫的函數(shù)功能相同;

  菜單函數(shù):創(chuàng)建添加菜單的函數(shù) GlutCreateMenu() 、 glutSetMenu() 、 glutAddMenuEntry() 、 glutAddSubMenu() 和 glutAttachMenu() ;

  程序運行函數(shù): glutMainLoop() 。

  5 . Windows 專用庫

  針對 windows 平臺的擴展,包含有 16 個函數(shù),函數(shù)名前綴為 wgl 。這部分函數(shù)主要用于連接 OpenGL 和 Windows ,以彌補 OpenGL 在文本方面的不足。 Windows 專用庫只能用于 Windows 環(huán)境中。

  這類函數(shù)主要包括以下幾類:

  繪圖上下文相關函數(shù): wglCreateContext() 、 wglDeleteContext() 、 wglGetCurrentContent() 、 wglGetCurrentDC() 、 wglDeleteContent() ;

  文字和文本處理函數(shù): wglUseFontBitmaps() 、 wglUseFontOutlines() ;

  覆蓋層、地層和主平面層處理函數(shù): wglCopyContext() 、 wglCreateLayerPlane() 、 wglDescribeLayerPlane() 、 wglReakizeLayerPlatte() ;

  其他函數(shù): wglShareLists() 、 wglGetProcAddress() 。

  6 . Win32 API 函數(shù)庫

  包含有 6 個函數(shù),函數(shù)名無專用前綴,是 win32 擴展函數(shù)。這部分函數(shù)主要用于處理像素存儲格式和雙幀緩存;這 6 個函數(shù)將替換 Windows GDI 中原有的同樣的函數(shù)。 Win32API 函數(shù)庫只能用于 Windows 95/98/NT 環(huán)境中。

  7 . X 窗口專用庫

  是針對 Unix 和 Linux 的擴展函數(shù)。包括渲染上下文、繪制圖元、顯示列表、紋理貼圖等;
初始化: glXQueryExtension() ;

  渲染上下文函數(shù): glXCreateContext() 、 glXDestroyContext() 、 glXCopyContext() 、 glXMakeCurrent() 、 glXCreateGLXPixmap() ;

  執(zhí)行: glXWaitGL() 、 glXWaitX() ;

  緩沖區(qū)和字體: glXSwapBuffers() 、 glXUseXFont() 。

  8 .其他擴展庫

  這些函數(shù)可能是新的 OpenGL 函數(shù),并沒有在標準 OpenGL 庫中實現(xiàn),或者它們是用來擴展已存在的OpenGL 函數(shù)的功能。和 glu 、 glx 和 wgl 一樣,這些 OpenGL 擴展是由硬件廠商和廠商組織開發(fā)的。OpenGL 擴展 (OpenGL Extention) 包含了大量的擴展 API 函數(shù)。

  隨著硬件的更新,硬件廠商首先向 SGI 申請登記新的擴展,編寫規(guī)格說明書( specification )。然后按照說明書進行開發(fā)擴展程序。不同的 OpenGL 實現(xiàn)( OpenGL Implementation )支持的擴展可能不一樣,只有隨著某一擴展的推廣與應用以及硬件技術的提高該擴展才會在所有的 OpenGL 實現(xiàn)中被給予支持,從而最終成為 OpenGL 標準庫的一部分。擴展由 SGI 維護,在 SGI 網(wǎng)站上列出了目前公開的已注冊的擴展及其官方說明書。擴展源由擴展函數(shù)的后綴來指明 ( 或使用擴展常量后綴 ) 。例如,后綴 WIN 表明一個符合 Windows 規(guī)范的擴展, EXT 或 ARB 后綴表明該擴展由多個賣主定義。

  下面給出 OpenGL 官方規(guī)定的命名規(guī)則:
  ARB – OpenGL Architecture Review Board 正式核準的擴展,往往由廠商開發(fā)的擴展發(fā)展而來,如果同時存在廠商開發(fā)的擴展和 ARB 擴展,應該優(yōu)先使用 ARB 擴展;

  EXT – 多家 OpenGL 廠商同意支持的擴展;

  HP – Hewlett-Packard 惠普;

  IBM – International Business Machines ;

  KTX – Kinetix, maker of 3D Studio Max ;

  INTEL – Intel 公司;

  NV – NVIDIA 公司;

  MESA – Brian Paul's freeware portable OpenGL implementation ;

  SGI – Silicon Graphics 公司開發(fā)的擴展;

  SGIX – Silicon Graphics (experimental) 公司開發(fā)的實驗性擴展;

  SUN – Sun Microsystems ;

  WIN – Microsoft 。

  由于 OpenGL 擴展在針對不同平臺和不同驅(qū)動, OpenGL 不可能把所有的接口程序全部放到 gl.h 、 glx.h 、 wgl.h 中,而是將這些函數(shù)頭放在了 glext.h 、 glxext.h 和 wglext.h 中。這些擴展被看作時 OpenGL 核心庫規(guī)范的增加和修改。

posted on 2007-04-07 22:08 楊粼波 閱讀(747) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲精品小视频在线观看| 欧美日韩精品国产| 亚洲天堂av综合网| 欧美一区亚洲一区| aa日韩免费精品视频一| 日韩视频在线观看一区二区| 在线观看亚洲视频| 亚洲网站在线| 亚洲国产日韩一区二区| 亚洲夜晚福利在线观看| 亚洲日本一区二区| 欧美亚洲日本一区| 国产精品99久久久久久久女警| 亚洲欧美三级在线| 99xxxx成人网| 久久国产高清| 午夜精品美女自拍福到在线| 欧美成人精品一区| 久久综合色播五月| 国产精品一区二区三区四区五区 | 国产精品免费观看视频| 欧美v日韩v国产v| 樱桃视频在线观看一区| 亚洲女ⅴideoshd黑人| 亚洲精品国产精品久久清纯直播 | 亚洲第一黄色网| 亚洲一级黄色| 一区二区三区精品久久久| 免费精品视频| 久久亚洲影院| 国内精品久久久久国产盗摄免费观看完整版 | 亚洲欧洲在线免费| 久久夜色精品国产欧美乱极品| 欧美中文字幕| 国产精品爽爽ⅴa在线观看| 亚洲精品乱码久久久久久| 亚洲国产另类精品专区| 欧美在线资源| 欧美在线播放视频| 国产自产v一区二区三区c| 亚洲欧美一区二区三区在线| 西西人体一区二区| 国产精品入口夜色视频大尺度 | 欧美中文字幕在线播放| 欧美在线播放高清精品| 国产精品美女久久久久av超清| 9久re热视频在线精品| 一区二区电影免费在线观看| 欧美日韩不卡在线| 亚洲免费观看高清完整版在线观看| 亚洲精品裸体| 欧美日韩高清不卡| 一本色道久久综合亚洲精品小说 | 99国产精品久久久久久久| 99综合在线| 国产精品videosex极品| 亚洲在线1234| 久久激情久久| 亚洲国产精彩中文乱码av在线播放| 麻豆免费精品视频| 亚洲大片一区二区三区| aa级大片欧美| 国产精品成人v| 午夜伦欧美伦电影理论片| 久久婷婷蜜乳一本欲蜜臀| 91久久精品日日躁夜夜躁国产| 欧美国产专区| 正在播放亚洲| 裸体一区二区| 在线一区二区三区四区| 国产美女诱惑一区二区| 久久精品首页| 亚洲精品久久久久久一区二区 | 亚洲国产成人精品久久久国产成人一区| 久久国产精品99久久久久久老狼| 欧美成人精品一区| 日韩视频在线一区二区三区| 欧美香蕉大胸在线视频观看| 久久久久久9| 亚洲免费成人| 久久综合九色综合欧美狠狠| 亚洲久久成人| 国产一区二区视频在线观看| 欧美精品日韩综合在线| 性欧美激情精品| 亚洲国产精品视频| 欧美影片第一页| 日韩性生活视频| 国模套图日韩精品一区二区| 欧美日韩亚洲综合一区| 久久久久久久97| 中文精品一区二区三区| 欧美mv日韩mv国产网站| 亚洲天堂网站在线观看视频| 精品动漫一区| 国产精品久久二区| 裸体歌舞表演一区二区| 亚洲欧美一区二区原创| 亚洲精品一区二| 牛牛精品成人免费视频| 久久国产精品黑丝| 一区二区三区高清在线| 在线免费观看一区二区三区| 国产精品亚洲不卡a| 欧美精品高清视频| 久久婷婷人人澡人人喊人人爽| 亚洲一区二区三区精品视频| 亚洲黑丝在线| 免费毛片一区二区三区久久久| 欧美一区1区三区3区公司| 一区二区三区欧美日韩| 亚洲国产精品日韩| 激情一区二区三区| 国产婷婷97碰碰久久人人蜜臀| 国产精品成人一区二区三区夜夜夜| 蜜乳av另类精品一区二区| 99精品国产在热久久下载| 亚洲精品老司机| 91久久久久久| 欧美成人官网二区| 美日韩在线观看| 久久亚洲国产精品日日av夜夜| 久久精品人人做人人爽电影蜜月| 亚洲欧美精品一区| 中文有码久久| 亚洲欧美精品在线观看| 亚洲欧美日韩另类| 午夜久久久久久久久久一区二区| 亚洲一区三区电影在线观看| 亚洲特级片在线| 亚洲欧美日韩高清| 亚洲欧美中日韩| 欧美一区二区三区四区在线| 欧美一区国产在线| 久久精品综合一区| 久久免费视频在线| 欧美jizzhd精品欧美巨大免费| 欧美成年视频| 免费欧美高清视频| 欧美国产精品va在线观看| 久热精品视频在线观看| 久久夜色精品一区| 欧美激情偷拍| 亚洲美女淫视频| 亚洲一区网站| 久久精品亚洲精品| 欧美激情第六页| 国产精品国色综合久久| 国产亚洲精品高潮| 亚洲成人在线视频网站| 伊人久久综合| 亚洲激情六月丁香| 亚洲一品av免费观看| 久久国产精品黑丝| 免费在线观看成人av| 亚洲精品视频免费观看| 中日韩午夜理伦电影免费| 欧美一区二区精美| 乱人伦精品视频在线观看| 欧美日韩高清在线播放| 国产精品一区二区久久| 亚洲高清久久| 亚洲永久免费视频| 久久久欧美精品| 欧美韩国在线| 亚洲视频综合| 久久网站免费| 国产精品久久激情| 亚洲第一区在线观看| 亚洲午夜电影在线观看| 久久免费精品视频| 欧美激情偷拍| 久久高清福利视频| 欧美日韩精品| 亚洲高清视频一区二区| 午夜精品久久久久久99热| 欧美激情影院| 午夜精品久久99蜜桃的功能介绍| 麻豆久久精品| 国产亚洲综合精品| 亚洲制服av| 亚洲第一精品福利| 欧美一级一区| 国产精品入口66mio| 99精品国产热久久91蜜凸| 久久久久久久性| 亚洲美女黄色片| 看片网站欧美日韩| 国产日韩欧美不卡在线| 在线视频欧美一区| 欧美激情bt| 久久午夜影视| 狠狠噜噜久久| 欧美一区二区三区视频在线| 99国产精品久久久久老师| 你懂的视频一区二区| 伊人久久av导航| 性久久久久久| 久久精品视频播放| 国产日韩在线看片|