![基于OpenGL的三維曲面數(shù)據(jù)場(chǎng)動(dòng)態(tài)顯示(1)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/24/8de5e26b-d45c-49c1-b5d7-7575d75b7f6d/8de5e26b-d45c-49c1-b5d7-7575d75b7f6d1.gif)
![基于OpenGL的三維曲面數(shù)據(jù)場(chǎng)動(dòng)態(tài)顯示(1)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/24/8de5e26b-d45c-49c1-b5d7-7575d75b7f6d/8de5e26b-d45c-49c1-b5d7-7575d75b7f6d2.gif)
![基于OpenGL的三維曲面數(shù)據(jù)場(chǎng)動(dòng)態(tài)顯示(1)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/24/8de5e26b-d45c-49c1-b5d7-7575d75b7f6d/8de5e26b-d45c-49c1-b5d7-7575d75b7f6d3.gif)
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于OpenGL的三維曲面數(shù)據(jù)場(chǎng)動(dòng)態(tài)顯示(1) 摘 要 在大數(shù)據(jù)量條件下,實(shí)時(shí)動(dòng)態(tài)顯示三維曲面較困難,其關(guān)鍵在于提高三維圖形數(shù)據(jù)處理和圖形繪制速度。通過(guò)對(duì)基于圖形工業(yè)標(biāo)準(zhǔn)OpenGL實(shí)現(xiàn)三維曲面動(dòng)態(tài)顯示的原理和方法的討論,提出采用OpenGL的雙緩存、顯示列表技術(shù),大幅度提高了圖形數(shù)據(jù)處理和刷新速度,保證了每幀數(shù)據(jù)圖形繪制的連續(xù)性和完整性,成功實(shí)現(xiàn)了三維曲面數(shù)據(jù)場(chǎng)實(shí)時(shí)動(dòng)態(tài)顯示。 關(guān)鍵詞 OpenGL 三維曲面 動(dòng)態(tài)顯示 &
2、#160;1 引言 在某三維數(shù)據(jù)場(chǎng)中,數(shù)據(jù)隨時(shí)間的變化而發(fā)生變化,為直觀觀察數(shù)據(jù)隨時(shí)間變化的態(tài)勢(shì),需對(duì)數(shù)據(jù)場(chǎng)的變化實(shí)時(shí)動(dòng)態(tài)顯示。利用網(wǎng)格曲面顯示三維數(shù)據(jù)場(chǎng)是一種直觀的方法,但需經(jīng)過(guò)數(shù)據(jù)插值、投影、曲面拼接、消隱等處理后方可繪制圖形,計(jì)算量較大。在數(shù)據(jù)量較大的情況下,實(shí)時(shí)動(dòng)態(tài)顯示三維曲面圖形較困難,其關(guān)鍵在于提高每幀圖形處理和繪制刷新速度,以保證每幀三維曲面顯示時(shí)的連貫性和完整性。 OpenGL是性能卓越的圖形處理工具,采用OpenGL雙緩存和繪圖操作予編譯技術(shù),較好解決了三維圖形數(shù)據(jù)處理和繪圖刷新速
3、度問(wèn)題。利用Visual C 調(diào)用OpenGL的三維圖形編程接口成功實(shí)現(xiàn)了大數(shù)據(jù)量的三維曲面圖形的實(shí)時(shí)動(dòng)態(tài)顯示。 2 基于OpenGL的三維曲面動(dòng)態(tài)顯示原理 2.1 基于OpenGL三維曲面圖形顯示原理 OpenGL是獨(dú)立于操作系統(tǒng)的開(kāi)放式三維圖形軟件接口。其主要功能是將三維曲面通過(guò)頂點(diǎn)序列或像素點(diǎn)進(jìn)行描述,并進(jìn)行相應(yīng)的透視、光照、紋理操作,最終轉(zhuǎn)換成幀緩存中的圖像數(shù)據(jù),利用該圖像數(shù)據(jù)進(jìn)行三維曲面圖形的著色。三維曲面圖形顯示歸納為以下幾個(gè)步驟: (1)在三維場(chǎng)景中建立曲面繪制的模型。選用插值方法、參
4、數(shù)曲面函數(shù),計(jì)算曲面控制點(diǎn),進(jìn)行曲面重構(gòu); (2)設(shè)置視點(diǎn)和透視方式; (3)進(jìn)行消隱、光照、紋理、明暗處理; (4)繪制場(chǎng)景,輸出到屏幕窗口。 圖1 三維曲面圖形顯示基本流程 2.2 利用雙緩存實(shí)現(xiàn)動(dòng)態(tài)顯示原理 三維曲面動(dòng)態(tài)顯示需要連續(xù)地繪制三維曲面并顯示場(chǎng)景,用不同的曲面數(shù)據(jù)刷新屏幕視窗。 在OpenGL中利
5、用雙緩存技術(shù),分配兩個(gè)幀緩存區(qū),在連續(xù)顯示三維曲面時(shí),一個(gè)幀緩沖區(qū)中的數(shù)據(jù)執(zhí)行繪制曲面命令的同時(shí),另一個(gè)幀緩存區(qū)中的數(shù)據(jù)進(jìn)行圖形顯示。當(dāng)前可見(jiàn)視頻緩存稱(chēng)為前臺(tái)視頻緩存,不可見(jiàn)的正在繪圖的視頻緩存稱(chēng)為后臺(tái)視頻緩存。當(dāng)后臺(tái)視頻緩存中的數(shù)據(jù)要求顯示時(shí),OpenGL就將它拷貝至前臺(tái)視頻緩存,顯示硬件不斷地讀可見(jiàn)視頻緩存中的內(nèi)容,并把結(jié)果顯示在屏幕上。 應(yīng)用雙緩存,每一幀三維曲面只在繪制完成之后才顯示出來(lái),所以觀察者可以看到每一幀完整三維曲面,而不是曲面的繪制過(guò)程。 使用雙緩存實(shí)現(xiàn)三維曲面動(dòng)態(tài)顯示的步驟如下:
6、 (1)設(shè)置OpenGL窗口顯示屬性為雙緩存機(jī)制:auxInitDisplayMode(AUX_DOUBLE|AUX_RGBA); (2)利用OpenGL基本繪圖命令繪制三維曲面; (3)一幀曲面繪圖結(jié)束后緩存拷貝,切換緩存:auxSwapBuffers(); SwapBuffers(wglGetCurrentDC(); 2.3 利用顯示列表提高程序運(yùn)行效率 顯示列表是一組預(yù)先存儲(chǔ)起來(lái)留待以后調(diào)用的函數(shù)語(yǔ)
7、句。調(diào)用顯示列表時(shí)就按次序執(zhí)行其中的函數(shù)。顯示列表將反復(fù)執(zhí)行的繪圖操作以編譯好的命令方式進(jìn)行存儲(chǔ),設(shè)計(jì)成命令的高速緩存,而不是動(dòng)態(tài)的數(shù)據(jù)庫(kù)緩存,所以可以?xún)?yōu)化程序運(yùn)行性能。 實(shí)現(xiàn)和調(diào)用顯示列表的方法: (1)創(chuàng)建列表: void glNewList(Gluint list,Glenm mode); void glBegin(Glenum mode); void glEnd(void);
8、0; void glEndList(); (2)調(diào)用列表: void glCallList(Gluint list); 3 基于OpenGL的三維曲面動(dòng)態(tài)顯示實(shí)現(xiàn) 在使用Visual C 的MFC AppWizard建立應(yīng)用程序框架后,生成了多個(gè)類(lèi),與OpenGL編程相關(guān)的類(lèi)是視圖類(lèi),主要的顯示任務(wù)都在其中完成。 3.1 基于OpenGL繪圖的基本設(shè)置 3.1.1 設(shè)置必要的編譯鏈接環(huán)境
9、60;OpenGL的圖形編程接口包括的主要函數(shù)和庫(kù)函數(shù)被封裝在動(dòng)態(tài)鏈接庫(kù)中,因此在項(xiàng)目中要添加 OpenGL32.dll、glu32.dll和glaux.dll三個(gè)庫(kù)。同時(shí)在應(yīng)用程序的視類(lèi)頭文件中加入OpenGL頭文件說(shuō)明: #include "glgl.h" #include "glglu.h" #include "glglaux.h" 3.1.
10、2 設(shè)置像素格式 該部分設(shè)置繪圖所需的像素格式,Windows下采用PIXELFORMATDESCRIPTOR結(jié)構(gòu)設(shè)置像素格式,該結(jié)構(gòu)包含26個(gè)屬性信息,包含了顏色位數(shù)、顏色模式、緩存的位數(shù)和操作方式,以及是否采用雙緩存機(jī)制等。 3.1.3 創(chuàng)建著色描述表 OpenGL應(yīng)用程序的設(shè)備描述表(DC)稱(chēng)為著色描述表,由它通知Windows在窗口中繪制圖形。應(yīng)用程序必須在繪圖之前調(diào)用專(zhuān)用函數(shù)wglCreateContext()創(chuàng)建自己的著色描述表,調(diào)用wglMakeCurrent()使其當(dāng)前化,退出Ope
11、nGL時(shí)使著色表非當(dāng)前化。 3.1.4 創(chuàng)建三維曲面的觀察場(chǎng)景 OpenGL一般用函數(shù)glFrustrum()和glViewport()實(shí)現(xiàn)投影變換和視口變換。glFrustrum()定義了一個(gè)容納繪制對(duì)象的最大空間區(qū)域,即視景體,位于視景體以外的部分都會(huì)被剪切掉;glViewport()則定義了一個(gè)繪制場(chǎng)景的矩形區(qū)域,即視口,用來(lái)把場(chǎng)景中的點(diǎn)映射到繪圖區(qū)。 glFrustrum(-1.0,1.0,-2.0,2.0,0.0,7.0); /視景體上、下、左、右、前、后的坐標(biāo)分別為-1.0,1.0,-2.0,2.0,0.0,7.0; glViewport(0,0,200,300);
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度辦事處知識(shí)產(chǎn)權(quán)專(zhuān)利實(shí)施許可與授權(quán)合同
- 家裝項(xiàng)目監(jiān)管合同
- 二零二五年度辦公室清潔與員工健康關(guān)懷合同
- 農(nóng)產(chǎn)品銷(xiāo)售居間合同委托書(shū)
- 有保證人借款合同
- 全新借錢(qián)的合同
- 制造業(yè)自動(dòng)化技術(shù)指南
- 醫(yī)院技術(shù)合作協(xié)議
- 工程建設(shè)項(xiàng)目招標(biāo)代理協(xié)議書(shū)
- 商標(biāo)權(quán)轉(zhuǎn)讓合同
- 必修3《政治與法治》 選擇題專(zhuān)練50題 含解析-備戰(zhàn)2025年高考政治考試易錯(cuò)題(新高考專(zhuān)用)
- 二零二五版電商企業(yè)兼職財(cái)務(wù)顧問(wèn)雇用協(xié)議3篇
- 課題申報(bào)參考:流視角下社區(qū)生活圈的適老化評(píng)價(jià)與空間優(yōu)化研究-以沈陽(yáng)市為例
- 深圳2024-2025學(xué)年度四年級(jí)第一學(xué)期期末數(shù)學(xué)試題
- 《openEuler操作系統(tǒng)》考試復(fù)習(xí)題庫(kù)(含答案)
- 2024-2025學(xué)年成都市高新區(qū)七年級(jí)上英語(yǔ)期末考試題(含答案)
- 17J008擋土墻(重力式、衡重式、懸臂式)圖示圖集
- 《中南大學(xué)模板》課件
- 廣東省深圳市南山區(qū)2024-2025學(xué)年第一學(xué)期期末考試九年級(jí)英語(yǔ)試卷(含答案)
- T-CISA 402-2024 涂鍍產(chǎn)品 切口腐蝕試驗(yàn)方法
- 后勤安全生產(chǎn)
評(píng)論
0/150
提交評(píng)論