資源描述:
《OpenGL編程入門》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、OpenGL編程入門版權(quán)所有,1999(c)姜明,北京大學(xué)數(shù)學(xué)學(xué)院信息科學(xué)系OpenGL介紹由SGI公司的GL發(fā)展而來的一個(gè)工業(yè)標(biāo)準(zhǔn)圖形庫。OpenGL由圖形庫GL(GraphicsLibrary)和應(yīng)用圖形庫GLU(GraphicsLibraryUtilities)兩個(gè)庫組成。OpenGL是與平臺(tái)無關(guān)的標(biāo)準(zhǔn)圖形庫,可在多種平臺(tái)上運(yùn)行。OpenGL可在網(wǎng)絡(luò)上運(yùn)行,顯示圖形的計(jì)算機(jī)可以不是運(yùn)行圖形程序的計(jì)算機(jī)。但OpenGL沒有事件處理(如鼠標(biāo),鍵盤輸入等)和窗口管理(如大小,位置等)的功能。另一個(gè)輔助
2、庫GLUT提供了與平臺(tái)無關(guān)的事件處理和窗口管理功能,運(yùn)行于X和WINDOWS。實(shí)現(xiàn)事件處理和窗口管理等功能的另一個(gè)方法是使用OpenGL在特定窗口系統(tǒng)的擴(kuò)展,如OpenGL的X擴(kuò)展GLX,在Windows的擴(kuò)展WGL。OpenGL的發(fā)展1992年7月,OpenGL1.0;1995年12月,OpenGL1.1;1998年3月,OpenGL1.2;1998年10月,OpenGL1.2.1;OpenGL由獨(dú)立組織ARB(OpenGLArchitectureReviewBoard)管理。成立于1992年。主要
3、成員有IBM,SGI,Intel,Microsoft,Compaq等。另一獨(dú)立組織OPC(OpenGLPerformanceCharacterizationCommittee)負(fù)責(zé)管理和發(fā)布OpenGL的性能測(cè)試基準(zhǔn)(benchmark)。OpenGL與Windows平臺(tái)Microsoft和SGI共同開發(fā)了OpenGL的WIN32版本,稱為WGL。最先OpenGL集成在WindowsNT中,后來集成到了Windows95(OSR2)中。Windows98已將OpenGL作為標(biāo)準(zhǔn)組成部分。運(yùn)行OpenG
4、L程序,需要在windowssystem目錄下有動(dòng)態(tài)連接庫opengl32.dll,glu32.dll,使用GLUT的用戶需要有g(shù)lut32.dll。編譯OpenGL程序需要有頭文件gl.h和glu.h,庫opengl32.lib,glu32.lib。使用GLUT還需要頭文件glut.h和庫glut32.lib。OpenGL命名規(guī)范函數(shù)名以gl,glu,glut開始,其中每一成份的首寫字母大寫,如glPolygonMode();常數(shù)名以GL,GLU,GLUT開始,中間以下劃線_分離,如GLUT_RG
5、BA;函數(shù)名的一般結(jié)構(gòu)[gl,glu,glut][234][sifd][v](args)[234]表示維數(shù)[sifd]表示參數(shù)類型[v]使用指針參數(shù)OpenGL的數(shù)據(jù)類型4.1開放圖形庫OpenGL4.1.1OpenGL簡(jiǎn)介OpenGL是近幾年來發(fā)展起來的一個(gè)性能卓越的三維圖形標(biāo)準(zhǔn),它是在SGI等多家世界著名的計(jì)算機(jī)公司的倡導(dǎo)下,以SGI的GL三維圖形庫為基礎(chǔ)制定的一個(gè)通用、共享的開放式三維圖形標(biāo)準(zhǔn)。它最初是SGI公司為其圖形工作站開發(fā)的可以獨(dú)立于操作系統(tǒng)和硬件環(huán)境的圖形開發(fā)系統(tǒng)。目
6、前,包括Microsoft、SGI、IBM、DEC、SUN、HP等大公司都采用了OpenGL作為三維圖形標(biāo)準(zhǔn),許多軟件廠商也紛紛以O(shè)penGL為基礎(chǔ)開發(fā)出自己的產(chǎn)品,其中比較著名的產(chǎn)品有動(dòng)畫制作軟件SoftImage和3DstudioMAX、仿真軟件OpenInventor、VR軟件WorldToolKit、CAM軟件ProEngineer和GIS軟件ARC/INFO等。由于其在醫(yī)學(xué)成像、地理信息、石油勘探、氣候模擬以及娛樂動(dòng)畫上的廣泛應(yīng)用,OpenGL已經(jīng)成為高性能圖形和交互式視景處理的工業(yè)標(biāo)準(zhǔn)。作
7、為工業(yè)標(biāo)準(zhǔn)的OpenGL是以函數(shù)庫的形式提供給程序員的,安裝在不同的操作系統(tǒng)中,遵從統(tǒng)一的標(biāo)準(zhǔn),因此使用OpenGL開發(fā)的用戶程序可在多種系統(tǒng)平臺(tái)上移植。OpenGL包含了近200個(gè)函數(shù),使用這些函數(shù)可以開發(fā)出與現(xiàn)實(shí)世界相類似的三維景象。OpenGL函數(shù)庫可以分為四類:核心函數(shù)、實(shí)用函數(shù)、輔助函數(shù)和專用函數(shù)。核心函數(shù)有115個(gè),這些函數(shù)是最基本的,以gl開頭,可以在任何OpenGL平臺(tái)中使用,用于繪制各種各樣的圖形、進(jìn)行場(chǎng)景變換、產(chǎn)生光照效果、進(jìn)行紋理映射等工作。由于這些函數(shù)可以使用不同類型的參數(shù),函
8、數(shù)名后綴也做相應(yīng)的變化,因此實(shí)際上可以演變成300多個(gè)函數(shù)。實(shí)用函數(shù)比核心函數(shù)要高一個(gè)層次,它們將核心函數(shù)進(jìn)行了組織和封裝,提供了比較簡(jiǎn)單的接口函數(shù)和用法,減輕了開發(fā)者的編程負(fù)擔(dān)。這些函數(shù)共有43個(gè),以glu為前綴,它們也可以在任何OpenGL平臺(tái)上使用。實(shí)用函數(shù)提供了紋理映射、坐標(biāo)變換和繪制簡(jiǎn)單三維實(shí)體(如球、圓柱等)等功能。輔助函數(shù)是一些特殊的函數(shù),共有31個(gè),以aux為前綴。它們不能在所有的OpenGL平臺(tái)上使用,一般用于在Windows應(yīng)用程序中