




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Computer GraphicsLi Guiqing2010. 9 Introduction to OpenGL2.4 OpenGL 2.4.1 概述 OpenGL是一個圖形庫。它提供了應用程序與圖形處理的接口。 最初是作為SGI (Silicon Graphics Inc.)圖形工作站的圖形庫(Graphics Library,GL) 為移植到不同環境中而形成了一個開放的圖形應用程序接口OpenGL.2.4.2 OpenGL的功能A 繪制幾何圖形點、線、多邊形多面體表面Bezier曲面、NURBSglBegin()glEnd()B 幾何變換平移、旋轉、縮放glTranslate*glRot
2、ate*glScale*C 顏色和光照背景顏色光源、光照模型、材質(Material properties)glLightModel*()glMaterial*()D 反走樣(反混淆), 霧(Fog)glHint(), glBlendFunc()glFog*()E 紋理映射glTexImage2D()glBindTexture()glTexEnv*()F 霧化G 圖元屬性2.4.4 OpenGL的組成A OpenGL核心庫函數, opengl32.lib 核心庫函數以gl開頭。如 函數名本身往往指出參數個數及類型。如glBegin(), glEnd();glTranslatef().void
3、glVertex2d( GLdouble x, GLdouble y ); void glVertex2f( GLfloat x, GLfloat y ); void glVertex2i( GLint x, GLint y ); void glVertex2s( GLshort x, GLshort y ); void glVertex3d( GLdouble x, GLdouble y, GLdouble z ); void glVertex3f( GLfloat x, GLfloat y, GLfloat z ); void glVertex3i( GLint x, GLint y, G
4、Lint z ); void glVertex3s( GLshort x, GLshort y, GLshort z ); void glMaterialfv(GLint, float *); / v-vectorB OpenGL實用程序庫函數, glu.lib 這一部分函數由核心庫函數實現,以glu為前綴。可看作是核心庫函數的擴展,提供更高級的圖形功能。如:void gluBeginSurface( GLUnurbsObj * nobj ); void gluEndSurface( GLUnurbsObj * nobj );Transformation: gluOrtho2D(), gluP
5、erspective(), gluLookAt(), gluProject();Quadrics: gluSphere(); gluCylinder(); gluDisk(); gluPartialDisk(); C 擴展庫 核心庫函數是設備獨立的。而OpenGL的實體要在一個指定的長方形區域中(窗口)繪制。在Microsoft Windows系統中這類函數以wgl為前綴(Apple GL則以agl為前綴。)如:HGLRC wglCreateContext( HDC hdc / device context of device that the rendering context / will
6、 be suitable for ); BOOL wglDeleteContext( HGLRC hglrc / handle to the OpenGL rendering context to delete ); 2 OpenGL實用工具包實用工具包GLUT(Graphics Library Utility Toolkits) 圖形庫實用工具包提供了一組與任意屏幕窗口系統進行交互的函數。因此是的。這樣簡化了應用程序的工作,也方便移植。 GLUT庫函數以glut為前綴。A GLUT庫安裝 Windows的OpenGL庫是直接捆邦在Visual C+中的。但GLUT庫是獨立于具體的窗口系統的,
7、它由opengl org提供。 i)可在下面地址下載: /developers/documentation/glut/glutdlls37beta.zip; ii)解壓后有glut.h, glut32.lib和glut32.dll; iii)將glut32.dll復制到 windows/system32目錄下; iv)將glut32.lib復制到Visual C+的lib目錄下。 v)將glut.h 復制到Visual C+的include目錄下。B GLUT函數分類 i) 初始化和創建窗口 初始化GLUT庫: glutInit(int argc, ch
8、ar *argv); 初始化窗口: glutInitDisplayMode(unsign int mode);等等. ii) 處理窗口和接收鍵盤和鼠標輸入 iii)繪制三維物體如猶他茶壺: void glutWireTeapot(Gldouble size) iv)后臺管理 v) 運行程序 函數: glutMainLoop(void)。 這個函數放在main()函數的最后調用,作用是顯示初始圖形,使程序進入無窮循環直到遇到輸入或窗口被關閉。 3 一個完整的程序一個完整的程序 void main(int argc, char *argv)glutInit(&argc, argv);glutIni
9、tDisplayMode(GLUT_SINGLE|GLUT_RGB);glutInitWindowSize(400,300); /窗口大小(列,行)glutInitWindowPosition(50,100); /窗口左上角在屏 /幕中的位置glutCreateWindow(“An OpenGL program);myinit();glutDisplayFunc(lineSegment); /回調glutMainLoop(); /執行glutDisplayFunc( void (*func) (void) ):登記回調函數(Callback functions). glutDisplayFun
10、c( lineSegment )意味著窗口需要重畫時,lineSegment將被調用,重畫窗口內容. void myinit(void) glClearColor(1.0, 1.0, 1.0, 0.0); /置背景色 glMatrixMode(GL_PROJECTION);/設矩陣模式 gluOrth2D(0.0, 200.0, 0.0, 150.0); /正交投影窗口 gluOrth2D(x0,x1,y0,y1): 表示位于世界坐標窗口(x0,x1,y0,y1)內的物體將被投影到顯示窗口中。 void lineSegment(void) glClear (GL_COLOR_BUFFER_BI
11、T); /清除 glColor3f(1.0,0.0,0.0); /繪制顏色為紅色 glBegin(GL_LINES) /定義一個OpenGL圖元 glVertex2i(180,15); glVertex2i(10,145); glEnd(); glFlush(); /清緩沖 窗口為(300,400)窗口為(400,300)線段從(180,15)到(10,145)(180,15)(10,145)(180,15)(10,145) 窗口為(400,300)(180,15)(10,145)世界坐標窗口(0.0, 200.0, 0.0, 150.0)從世界坐標到窗口坐標的變換4小結小結 關于OpenGL的一些功能以后還有介紹,但我們可以從兩個途徑學習它:A 查詢Microsoft的MSDN, gl,wgl和glu的函數都可以查到;B OpenGL函數都有相當多的參數,可以在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國梅酒市場競爭策略及行業投資潛力預測報告
- 2025年中國窗簾電機行業市場全景評估及投資前景展望報告
- 2025年中國冰淇凌行業市場調查研究及投資前景預測報告
- 王克的工程經濟學課件
- 智慧圖書館服務創新-洞察及研究
- 史前生物遷徙路徑-洞察及研究
- 外來物種生態位競爭-洞察及研究
- 武漢城市職業學院《英語二》2023-2024學年第二學期期末試卷
- 新鄉學院《歷史研究基礎》2023-2024學年第二學期期末試卷
- 四川音樂學院《生物多樣性與保護生物學》2023-2024學年第二學期期末試卷
- 2025春季學期國開電大本科《人文英語4》一平臺機考真題及答案(第六套)
- 2025年中國鐵路濟南局集團招聘筆試沖刺題(帶答案解析)
- 2025年河北省萬唯中考定心卷地理(二)
- 2025年全國高考一卷英語真題(解析版)
- 湖南省長沙市2025年七年級下學期語文期末試卷(附參考答案)
- 農機停放場管理制度
- 2025年浙江省嘉興市南湖區中考二模英語試題(含答案無聽力原文及音頻)
- T/SHPTA 071.1-2023高壓電纜附件用橡膠材料第1部分:絕緣橡膠材料
- 生產基層管理培訓課程
- 2025至2030年中國豬預混料行業投資前景及策略咨詢研究報告
- 2025年中央八項規定精神學習教育應知應會考試題庫(含答案)
評論
0/150
提交評論