基于opengl的三維建模技術(shù)

基于opengl的三維建模技術(shù)

ID:11483840

大小:4.34 MB

頁(yè)數(shù):30頁(yè)

時(shí)間:2018-07-12

基于opengl的三維建模技術(shù)_第1頁(yè)
基于opengl的三維建模技術(shù)_第2頁(yè)
基于opengl的三維建模技術(shù)_第3頁(yè)
基于opengl的三維建模技術(shù)_第4頁(yè)
基于opengl的三維建模技術(shù)_第5頁(yè)
資源描述:

《基于opengl的三維建模技術(shù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、基于OpenGL的三維 建模技術(shù)王鵬目錄1.三維顯示的基本方法2.OpenGL基本原理3.OpenGL編程的基本方法1.三維顯示的基本方法三維顯示就是將立體圖像以平面投影圖或透視圖的形式在平面上表現(xiàn)出來(lái)的過(guò)程。三維顯示的理論基礎(chǔ)是計(jì)算機(jī)圖形學(xué)。實(shí)現(xiàn)的主要方法:DirectX和OpenGL兩個(gè)函數(shù)庫(kù)。DirectX是微軟獨(dú)自開(kāi)發(fā)的API。DirectX由顯示部分、聲音部分、輸入部分和網(wǎng)絡(luò)部分四大部分組成。OpenGL“開(kāi)放圖形庫(kù)”,由SGI公司開(kāi)發(fā),主要針對(duì)3D圖像處理。它與硬件無(wú)關(guān),并且獨(dú)立于操作系統(tǒng)之外。相比之

2、下,OpenGL更容易被初學(xué)者掌握。三維顯示在地球物理方面的應(yīng)用:三維可視化軟件有:LandmarkEarthCube模塊和GeoProbe模塊,GeoFrame,ParadigmVoxelGeo等等。實(shí)際上,三維顯示功能已經(jīng)成為大型地學(xué)軟件不可或缺的一部分。2.OpenGL基本原理三維顯示和攝影類似相機(jī)鏡頭視點(diǎn)三角架視點(diǎn)位置視野大小視景體景物模型在實(shí)際攝影拍攝時(shí),我們可以改變拍攝位置和角度,相機(jī)的焦距,改變景物的位置等等。在OpenGL中,提供對(duì)應(yīng)的函數(shù)來(lái)實(shí)現(xiàn)這些功能。這些函數(shù)(也稱為變換)是通過(guò)矩陣計(jì)算來(lái)實(shí)現(xiàn)

3、的。同時(shí),OpenGL是一個(gè)狀態(tài)機(jī),設(shè)置了某種狀態(tài)而不改變,OpenGL將一直保持這個(gè)狀態(tài)。視點(diǎn)變換:確定視點(diǎn)的位置和方向。投影變換:定義一個(gè)視景體,使得視景體外多余的部分裁剪掉,確定視野范圍。模型變換:對(duì)模型進(jìn)行平移,旋轉(zhuǎn)和縮放處理。視點(diǎn)變換voidgluLookAT(GLdoubleeyex,GLdoubleeyey,GLdoubleeyez,//視點(diǎn)GLdoublecx,GLdoublecy,GLdoublecz,//目標(biāo)點(diǎn)GLdoubleupx,GLdoubleupy,GLdoubleupz,//視點(diǎn)朝上

4、的方向)投影變換由于顯示器只能用二維圖象顯示三維物體,因此就要靠投影來(lái)降低維數(shù)。投影變換的目的就是定義一個(gè)視景體,使得視景體外多余的部分裁剪掉,最終繪制圖像的只是視景體內(nèi)的有關(guān)部分。投影包括透視投影(PerspectiveProjection)和正交投影(OrthographicProjection)兩種。透視投影voidgluPerspective(fovy,aspect,zNear,zFar)取景體是一個(gè)截頭錐體,在這個(gè)體積內(nèi)的物體這個(gè)錐體的頂點(diǎn)也就是視點(diǎn)的位置。正交投影voidglOrtho(left,ri

5、ght,bottom,top,near,far)取景體是一個(gè)各面均為矩形的六面體透視投影正交投影離視點(diǎn)近的物體大,離視點(diǎn)遠(yuǎn)的物體小。無(wú)論物體距視點(diǎn)多遠(yuǎn),投影后的物體大小不變。建立模型任何復(fù)雜的圖形都是由基本的圖元點(diǎn)、線和多邊形組成的。glBegin(…);……//描述一組頂點(diǎn),用于建構(gòu)某種幾何對(duì)象glEnd();例如:glBegin(GL_LINES)//畫線glVertex2f(0.0,0.0,0.0);glVertex2f(1.0,1.0,1.0);glEnd();模型的平移與旋轉(zhuǎn)平移變換voidglTans

6、late{fd}(TYPEx,TYPEy,TYPEz);旋轉(zhuǎn)變換voidglRotate{fd}(TYPEangle,TYPEx,TYPEy,TYPEz);模型總是在原點(diǎn)處繪制完成以后,再通過(guò)適當(dāng)?shù)钠揭谱儞Q和旋轉(zhuǎn)變換到恰當(dāng)?shù)目臻g位置。需要特別指出的是,實(shí)際的變換順序與指定的順序是相反的。旋轉(zhuǎn)變換平移變換繪制模型繪制模型平移變換旋轉(zhuǎn)變換程序代碼順序:實(shí)現(xiàn)順序:原始模型先平移,再旋轉(zhuǎn)45度先旋轉(zhuǎn)45度再平移光照為了增強(qiáng)模型的立體效果,可以給場(chǎng)景加入光源。無(wú)光源有光源OpenGL將光線分為輻射光、環(huán)境光、漫反射光和鏡面

7、反射光4種獨(dú)立的成分。上色和紋理貼圖現(xiàn)實(shí)世界中的物體表面往往有各種紋理,因此要繪制逼真的三維模型,除了對(duì)模型進(jìn)行光照處理外,還需要加上紋理貼圖,使物體看起來(lái)更真實(shí)。3.OpenGL編程的基本方法1.利用GLUT實(shí)現(xiàn)2.利用MFC實(shí)現(xiàn)3.高級(jí)圖像庫(kù)1利用GLUT實(shí)現(xiàn)因?yàn)镺penGL獨(dú)立于任何窗口系統(tǒng)和操作系統(tǒng)之外。所以O(shè)penGL不能直接用來(lái)打開(kāi)窗口以及從鍵盤或鼠標(biāo)讀取事件。GLUT庫(kù)簡(jiǎn)化Windows窗口操作,它提供了非常簡(jiǎn)單的方法來(lái)實(shí)現(xiàn)窗口操作。intmain(intargc,char**argv){glutI

8、nit(&argc,argv);//初始化GLUTglutInitDisplayMode(GLUT_SINGLE

9、GLUT_RGB);glutInitWindowSize(640,480);//設(shè)置窗口大小glutInitWindowPosition(0,0);//設(shè)置窗口起始位置glutCreateWindow("Basic");//設(shè)置窗口標(biāo)題init();//初始化

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。