版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
OpenGL使用簡介簡介OpenGL(OpenGraphicsLibrary)是個定義了一個跨編程語言、跨平臺的編程接口的規(guī)格,是個專業(yè)的3D程序接口,是一個功能強(qiáng)大,調(diào)用方便的底層3D圖形庫。OpenGL是個與硬件無關(guān)的軟件接口,可以在不同的平臺如Windows95、WindowsNT、Unix、Linux、MacOS、OS/2之間進(jìn)行移植。這個接口由近二百五十個不同的函數(shù)調(diào)用組成,用來從簡單的圖元繪制復(fù)雜的三維景象。在電子游戲工業(yè)里,它是頗普遍的,而另一種編程接口系統(tǒng)是僅用于MicrosoftWindows上的Direct3D。OpenGL常用于CAD、虛擬實(shí)境、科學(xué)視覺化程序和電子游戲開發(fā)。發(fā)展歷史OpenGL的前身是SGI公司為其圖形工作站開發(fā)的IRISGL。1992年7月,SGI公司發(fā)布了OpenGL的1.0版本。OpenGL歷經(jīng)2.0,1.5,1.4,1.3,1.2,1.1,or1.0多個版本?,F(xiàn)在最新的是在2006年8月3日公布的OpenGLversion2.1。
OpenGL規(guī)范由1992年成立的OpenGL架構(gòu)評審委員會(ARB)維護(hù)。ARB由一些特別興趣于建立一個統(tǒng)一的普遍可用的API的公司組成。根據(jù)OpenGL官方網(wǎng)站,2002年6月的ARB投票成員包括3Dlabs、AppleComputer、ATITechnologies、DellComputer、Evans&Sutherland、Hewlett-Packard、IBM、Intel、Matrox
、NVIDIA、SGI和SunMicrosystems(Microsoft曾是創(chuàng)立成員之一,但已于2003年3月退出)。GL的平臺(1)基于OpenGL標(biāo)準(zhǔn)開發(fā)的應(yīng)用程序必須運(yùn)行于32位Windows
平臺下,如WindowsNT或Windows95環(huán)境;而且運(yùn)行時還需有動態(tài)
鏈接庫OpenGL32.DLL、Glu32.DLL,一般在…\WINDOWS\system32里面(注:window2000以上系統(tǒng)均帶有OPENGL32.DLL和glu32.dll)一般來說,VC6和VS.NET里面就帶有GL的基本庫VC6:…\MicrosoftVisualStudio\VC98\Include\GLVS.NET.2005:…\MicrosoftVisualStudio8\VC\PlatformSDK\Include\gl一般是Gl.h,Glaux.h,Glu.hLib里也有:OpenGL32.lib,GLu32.lib,GLaux.lib所以開發(fā)者在VC下可以使用#include<gl\gl.h> //HeaderFileForTheOpenGL32Library#include<gl\glu.h> //HeaderFileForTheGLu32Library#include<gl\glaux.h>//HeaderFileForTheGlauxLibraryGL的平臺(2)同時OpenGL也適應(yīng)別的OS和語言在OpenGL的基礎(chǔ)上還有OpenInventor、Cosmo3D、Optimizer等多種高級圖形庫,適應(yīng)不同應(yīng)用??筛鷵?jù)需要下載相關(guān)的開發(fā)包。
OpenGL基本功能
模型繪制模型觀察顏色模式的指定光照應(yīng)用圖象效果增強(qiáng)位圖和圖象處理紋理映射實(shí)時動畫交互技術(shù)
一些命名規(guī)則函數(shù):OpenGL核心庫(gl)OpenGL實(shí)用庫(glu)對X窗口系統(tǒng)的OpenGL擴(kuò)展(glX)舉例:voidglBegin(GLenummode);voidgluBeginCurve(GLUnurbs*nurb);voidglXFreeContextEXT(Display*dpy,GLXContext
ctx);參數(shù):GL_POINTS,GL_LINES,GL_LINE_STRIP,GL_LINE_LOOP,GL_TRIANGLES,GL_TRIANGLE_STRIP,GL_TRIAN,GL_QUADS,GL_QUAD_STRIP數(shù)據(jù)類型名voidglVertex3s(GLshortx,GLshort y,GLshortz);voidglVertex3i(GLintx,GLinty,GLintz);voidglVertex3f(GLfloat x,GLfloaty,GLfloatz);voidglVertex3d(GLdoublex,GLdoubley,GLdoublez);設(shè)置VisualC/C++6.0VisualC/C++的工程有兩個重要選項(xiàng):Console(控制臺)和Win32應(yīng)用程序?qū)袃蓚€窗口:一個控制臺窗口,以及一個OpenGL窗口。選擇Win32仍然可以讓你在不需要關(guān)心Windows程序設(shè)計(jì)的情況下編寫GLUT程序.你需要做以下設(shè)置:
選擇Project->settings
選擇Link選項(xiàng)卡
從Category中選擇Output
在Entry-pointsynmbol
文本框中鍵入mainCRTStartup對于已存在的控制臺工程,有一個簡單的辦法將它轉(zhuǎn)換成Win32應(yīng)用程序:
根據(jù)上面的步驟修改入口點(diǎn),在Projectoptions文本框中用subsystem:windows
覆蓋subsystem:console
或者你可以直接在你的源代碼開頭處添加:
代碼
//#pragmacomment(linker,"/subsystem:\"windows\"/entry:\"mainCRTStartup\"")
在沒使用GLUT的情況下(手動添加link):在你文件頭加上#include<gl\gl.h>#include<gl\glu.h>#include<gl\glaux.h>進(jìn)入Project菜單,選Settings項(xiàng),彈出Settings對話框,選Link項(xiàng),在Libraries欄目中加入OpenGL庫:opengl32.libglu32.libglaux.libGLUTGLUT(OpenGLUtilityToolkit)安裝:在windows下通過C/C++語言編寫GLUT程序,你需要以下三個文件:
GLUT.H-你需要在你的源代碼中包含這個文件。通常情況下,這個文件應(yīng)該放在你系統(tǒng)的包含目錄下的GL文件夾中。
GLUT.LIB(SGIwindows版本)以及glut32.lib(微軟版本)-這個文件必須被連接到你的程序中,確保它放在LIB目錄中。glut32.dll(Windows)和glut.dll(SGIWindows版本)-根據(jù)你所使用的OpenGL選擇一個,如果你正在使用微軟公司的版本,那么你必須選擇glut32.dll。你應(yīng)該把DLL放置在你的系統(tǒng)文件夾中。舉例:在windowXP下使用VC6安裝GLUT下載glutdlls并解壓復(fù)制glut32.dll和glut.dll到…\windows\system32復(fù)制glut.h到...\MicrosoftVisualStudio\VC98\Include\GL復(fù)制glut32.lib和glut.lib到…\MicrosoftVisualStudio\VC98\Lib#include<GL/glut.h>voidrenderScene(void){//繪制一個簡單的二維的三角形
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLES); glVertex3f(-0.5,-0.5,0.0); glVertex3f(0.5,0.0,0.0); glVertex3f(0.0,0.5,0.0);
glEnd();
glFlush();}voidmain(int
argc,char**argv){
glutInit(&argc,argv);//初始化glut
glutInitDisplayMode(GLUT_DEPTH|GLUT_SINGLE|GLUT_RGBA); //設(shè)置窗口的模式-深度緩存,單緩存,顏色模型
glutInitWindowPosition(100,100);//設(shè)置窗口的位置
glutInitWindowSize(320,320);//設(shè)置窗口的大小
glutCreateWindow(“3DTech-GLUTTutorial”);//創(chuàng)建窗口并賦予title
glutDisplayFunc(renderScene);//調(diào)用renderScene把繪制傳送到窗口
glutMainLoop();//進(jìn)入循環(huán)等待}通過定義voidglutReshapeFunc(void(*func)(intwidth,intheight))來避免因窗口大小改變時圖形的變形;通過定義voidglutIdleFunc(void(*func)(void));
使應(yīng)用空閑時反復(fù)調(diào)用函數(shù)func對于window的基本應(yīng)用:mouse,keyboard,menu,subwindow,font等glut里也提供了支持#include<GL/glut.h>floatangle=0.0;voidchangeSize(intw,inth){
if(h==0)h=1; floatratio=1.0*w/h;
glMatrixMode(GL_PROJECTION);
glLoadIdentity(); glViewport(0,0,w,h); gluPerspective(45,ratio,1,1000);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity(); gluLookAt(0.0,0.0,5.0, 0.0,0.0,-1.0, 0.0f,1.0f,0.0f);}voidrenderScene(void){
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix(); glRotatef(angle,0.0,1.0,0.0);
glBegin(GL_TRIANGLES); glVertex3f(-0.5,-0.5,0.0); glVertex3f(0.5,0.0,0.0); glVertex3f(0.0,0.5,0.0);
glEnd();
glPopMatrix(); angle++;
glutSwapBuffers();}voidmain(int
argc,char**argv){
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DEPTH| GLUT_DOUBLE|GLUT_RGBA);//設(shè)為雙緩沖區(qū), //平滑動畫需要
glutInitWindowPosition(100,100); glutInitWindowSize(320,320);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 五年級數(shù)學(xué)下冊完整教案
- 三年級上冊全冊教案
- 高一信息技術(shù)教案(全套)
- 能源項(xiàng)目風(fēng)險管理 課件 2-能源項(xiàng)目風(fēng)險規(guī)劃管理
- 高一化學(xué)成長訓(xùn)練:第一單元核外電子排布與周期律
- 2024屆四川巫溪縣白馬中學(xué)高考沖刺押題(最后一卷)化學(xué)試卷含解析
- 2024高中語文第三單元因聲求氣吟詠詩韻第14課自主賞析閣夜課時作業(yè)含解析新人教版選修中國古代詩歌散文欣賞
- 2024高考地理一輪復(fù)習(xí)第二部分人文地理-重在運(yùn)用第二章城市與城市化第18講城市內(nèi)部空間結(jié)構(gòu)與不同等級城市的服務(wù)功學(xué)案新人教版
- 2024高考化學(xué)一輪復(fù)習(xí)第3章自然界及材料家族中的元素第3講硫及其化合物學(xué)案魯科版
- 2025高考數(shù)學(xué)考點(diǎn)剖析精創(chuàng)專題卷四-平面向量【含答案】
- 2025年中國華能集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 光伏安裝施工合同范本
- 北京郵電大學(xué)《數(shù)學(xué)物理方法概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024-2025學(xué)年無錫市數(shù)學(xué)三年級第一學(xué)期期末質(zhì)量檢測試題含解析
- 2024年簡易別墅買賣合同樣本
- 2025中考數(shù)學(xué)考點(diǎn)題型歸納(幾何證明大題)
- 人教版(2024)數(shù)學(xué)七年級上冊期末測試卷(含答案)
- 醫(yī)院護(hù)理10s管理
- 2024-2025學(xué)年度第一學(xué)期二年級數(shù)學(xué)寒假作業(yè)有答案(共20天)
- 2024年質(zhì)量管理考核辦法及實(shí)施細(xì)則(3篇)
- 寵物店員工管理制度(4篇)
評論
0/150
提交評論