![基于OpenGL的三維曲面數(shù)據(jù)場(chǎng)動(dòng)態(tài)顯示_第1頁(yè)](http://file4.renrendoc.com/view/36d58b8f0da2641ec5cfea41ac3fc78e/36d58b8f0da2641ec5cfea41ac3fc78e1.gif)
![基于OpenGL的三維曲面數(shù)據(jù)場(chǎng)動(dòng)態(tài)顯示_第2頁(yè)](http://file4.renrendoc.com/view/36d58b8f0da2641ec5cfea41ac3fc78e/36d58b8f0da2641ec5cfea41ac3fc78e2.gif)
![基于OpenGL的三維曲面數(shù)據(jù)場(chǎng)動(dòng)態(tài)顯示_第3頁(yè)](http://file4.renrendoc.com/view/36d58b8f0da2641ec5cfea41ac3fc78e/36d58b8f0da2641ec5cfea41ac3fc78e3.gif)
![基于OpenGL的三維曲面數(shù)據(jù)場(chǎng)動(dòng)態(tài)顯示_第4頁(yè)](http://file4.renrendoc.com/view/36d58b8f0da2641ec5cfea41ac3fc78e/36d58b8f0da2641ec5cfea41ac3fc78e4.gif)
![基于OpenGL的三維曲面數(shù)據(jù)場(chǎng)動(dòng)態(tài)顯示_第5頁(yè)](http://file4.renrendoc.com/view/36d58b8f0da2641ec5cfea41ac3fc78e/36d58b8f0da2641ec5cfea41ac3fc78e5.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)顯示摘要在大數(shù)據(jù)量條件下,實(shí)時(shí)動(dòng)態(tài)顯示三維曲面較困難,其關(guān)鍵在于進(jìn)步三維圖形數(shù)據(jù)處理和圖形繪制速度。通過(guò)對(duì)基于圖形工業(yè)標(biāo)準(zhǔn)penGL實(shí)現(xiàn)三維曲面動(dòng)態(tài)顯示的原理和方法的討論,提出采用penGL的雙緩存、顯示列表技術(shù),大幅度進(jìn)步了圖形數(shù)據(jù)處理和刷新速度,保證了每幀數(shù)據(jù)圖形繪制的連續(xù)性和完好性,成功實(shí)現(xiàn)了三維曲面數(shù)據(jù)場(chǎng)實(shí)時(shí)動(dòng)態(tài)顯示。關(guān)鍵詞penGL三維曲面動(dòng)態(tài)顯示在某三維數(shù)據(jù)場(chǎng)中,數(shù)據(jù)隨時(shí)間的變化而發(fā)生變化,為直觀(guān)觀(guān)察數(shù)據(jù)隨時(shí)間變化的態(tài)勢(shì),需對(duì)數(shù)據(jù)場(chǎng)的變化實(shí)時(shí)動(dòng)態(tài)顯示。利用網(wǎng)格曲面顯示三維數(shù)據(jù)場(chǎng)是一種直觀(guān)的方法,但需經(jīng)過(guò)數(shù)據(jù)插值、投影、曲面拼接、消隱等處理前方可繪
2、制圖形,計(jì)算量較大。在數(shù)據(jù)量較大的情況下,實(shí)時(shí)動(dòng)態(tài)顯示三維曲面圖形較困難,其關(guān)鍵在于進(jìn)步每幀圖形處理和繪制刷新速度,以保證每幀三維曲面顯示時(shí)的連接性和完好性。penGL是性能卓越的圖形處理工具,采用penGL雙緩存和繪圖操作予編譯技術(shù),較好解決了三維圖形數(shù)據(jù)處理和繪圖刷新速度問(wèn)題。利用Visual+調(diào)用penGL的三維圖形編程接口成功實(shí)現(xiàn)了大數(shù)據(jù)量的三維曲面圖形的實(shí)時(shí)動(dòng)態(tài)顯示。2.1基于penGL三維曲面圖形顯示原理penGL是獨(dú)立于操作系統(tǒng)的開(kāi)放式三維圖形軟件接口。其主要功能是將三維曲面通過(guò)頂點(diǎn)序列或像素點(diǎn)進(jìn)展描繪,并進(jìn)展相應(yīng)的透視、光照、紋理操作,最終轉(zhuǎn)換成幀緩存中的圖像數(shù)據(jù),利用該圖像數(shù)
3、據(jù)進(jìn)展三維曲面圖形的著色。三維曲面圖形顯示歸納為以下幾個(gè)步驟:1在三維場(chǎng)景中建立曲面繪制的模型。選用插值方法、參數(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ù)刷新屏幕視窗。在penGL中利用雙緩存技術(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)視頻
4、緩存。當(dāng)后臺(tái)視頻緩存中的數(shù)據(jù)要求顯示時(shí),penGL就將它拷貝至前臺(tái)視頻緩存,顯示硬件不斷地讀可見(jiàn)視頻緩存中的內(nèi)容,并把結(jié)果顯示在屏幕上。應(yīng)用雙緩存,每一幀三維曲面只在繪制完成之后才顯示出來(lái),所以觀(guān)察者可以看到每一幀完好三維曲面,而不是曲面的繪制過(guò)程。使用雙緩存實(shí)現(xiàn)三維曲面動(dòng)態(tài)顯示的步驟如下:1設(shè)置penGL窗口顯示屬性為雙緩存機(jī)制:auxInitDisplayde(AUX_DUBLE|AUX_RGBA);2利用penGL根本繪圖命令繪制三維曲面;3一幀曲面繪圖完畢后緩存拷貝,切換緩存:auxSapBuffers();SapBuffers(glGeturrentD();2.3利用顯示列表進(jìn)步程序
5、運(yùn)行效率顯示列表是一組預(yù)先存儲(chǔ)起來(lái)留待以后調(diào)用的函數(shù)語(yǔ)句。調(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)立列表:vidglNeList(Gluintlist,Glende);vidglBegin(Glenude);vidglEnd(vid);vidglEndList();2調(diào)用列表:vidglallList(Gluintlist);在使用Visual+的FAppizard建立應(yīng)用程序框架后,生成了多個(gè)類(lèi),與penGL編程相關(guān)的類(lèi)是視圖類(lèi),主要的顯
6、示任務(wù)都在其中完成。3.1基于penGL繪圖的根本設(shè)置3.1.1設(shè)置必要的編譯鏈接環(huán)境penGL的圖形編程接口包括的主要函數(shù)和庫(kù)函數(shù)被封裝在動(dòng)態(tài)鏈接庫(kù)中,因此在工程中要添加penGL32.dll、glu32.dll和glaux.dll三個(gè)庫(kù)。同時(shí)在應(yīng)用程序的視類(lèi)頭文件中參加penGL頭文件說(shuō)明:#inludeglgl.h#inludeglglu.h#inludeglglaux.h3.1.2設(shè)置像素格式該局部設(shè)置繪圖所需的像素格式,inds下采用PIXELFRATDESRIPTR構(gòu)造設(shè)置像素格式,該構(gòu)造包含26個(gè)屬性信息,包含了顏色位數(shù)、顏色形式、緩存的位數(shù)和操作方式,以及是否采用雙緩存機(jī)制等。
7、3.1.3創(chuàng)立著色描繪表penGL應(yīng)用程序的設(shè)備描繪表D稱(chēng)為著色描繪表,由它通知inds在窗口中繪制圖形。應(yīng)用程序必須在繪圖之前調(diào)用專(zhuān)用函數(shù)glreatentext()創(chuàng)立自己的著色描繪表,調(diào)用glakeurrent()使其當(dāng)前化,退出penGL時(shí)使著色表非當(dāng)前化。3.1.4創(chuàng)立三維曲面的觀(guān)察場(chǎng)景penGL一般用函數(shù)glFrustru()和glVieprt()實(shí)現(xiàn)投影變換和視口變換。glFrustru()定義了一個(gè)包容繪制對(duì)象的最大空間區(qū)域,即視景體,位于視景體以外的局部都會(huì)被剪切掉;glVieprt()那么定義了一個(gè)繪制場(chǎng)景的矩形區(qū)域,即視口,用來(lái)把場(chǎng)景中的點(diǎn)映射到繪圖區(qū)。glFrustru
8、(-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;glVieprt(0,0,200,300);/視口區(qū)上、下、左、右坐標(biāo)分別為0,0,200,300;3.1.5視類(lèi)中nDra()成員函數(shù)的設(shè)置在inds的V+編程中,所有窗口中的圖形繪制代碼都在視類(lèi)的nDra成員函數(shù)中實(shí)現(xiàn),采用penGL繪制三維曲面之前需要進(jìn)展必要的環(huán)境設(shè)置。gllearlr(1.0f,1.0f,1.0f,1.0f);/設(shè)置背景顏色為白色gllear(GL_LR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);/
9、去除顏色緩存和深度緩存gllr3f(1.0f,1.0f,1.0f);/設(shè)置繪圖顏色為紅色3.2創(chuàng)立繪制三維曲面的顯示列表在顯示列表中定義用戶(hù)繪制三維曲面圖形所需數(shù)據(jù)以及數(shù)據(jù)之間顯示連接方式。文中實(shí)例中顯示列表包括三維曲面圖形的數(shù)據(jù)點(diǎn)的顯示列表;坐標(biāo)軸的顯示列表;顯示坐標(biāo)數(shù)據(jù)的顯示列表。顯示列表采用線(xiàn)段連接的方式。3.3三維曲面圖形動(dòng)態(tài)顯示程序主框架在視類(lèi)中產(chǎn)生nhuitu()作為繪圖的主程序。三維曲面圖形動(dòng)態(tài)顯示子程序drasurbs()包括初始化,讀數(shù)據(jù)文件,數(shù)據(jù)插值,投影變換,消隱,繪圖顯示列表設(shè)置坐標(biāo)軸繪制顯示列表、三維曲面繪制顯示列表,強(qiáng)迫繪圖操作,緩存拷貝,切換前后緩沖區(qū)等幾個(gè)主要局
10、部。初始化程序yinit()中設(shè)置雙緩存形式,是實(shí)現(xiàn)動(dòng)態(tài)顯示的前提。drasurbs()中緩存拷貝auxSapBuffers()、切換緩存SapBuffers(glGeturrentD()、緩沖區(qū)的去除gllear(GL_LR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)是實(shí)現(xiàn)動(dòng)態(tài)顯示的必不可少的操作。vidNurbsVie:nhuitu()HNDhnd=GetSafeHnd();HDhD=:GetD(hnd);glakeurrent(hD,hglr);/設(shè)置當(dāng)前著色表drasurbs();/動(dòng)態(tài)顯示三維曲面子程序glakeurrent(NULL,NULL);/著色表非當(dāng)前化
11、SapBuffers(hD);/交換緩存vidNurbsVie:drasurbs()yinit();/初始化子程序jixu=20;/動(dòng)態(tài)顯示幀數(shù)hile(jixu)readdata();/讀數(shù)據(jù)文件子程序interplatr();/數(shù)據(jù)插值子程序rthprjetin();/投影變換子程序xiaying();/消隱子程序glPushatrix();gllr3f(0.0f,1.0f,1.0f);/顏色設(shè)置glLineidth(2.0);/線(xiàn)寬設(shè)置glNeList(axis_list,GL_PILE);/坐標(biāo)軸顯示列表glEndList();glNeList(sufer_list,GL_PILE);
12、/三維曲面繪制顯示列表glEndList();glallList(axis_list);glallList(sufer_list)glFlush();/強(qiáng)迫繪圖glPpatrix();auxSapBuffers();/緩存拷貝SapBuffers(glGeturrentD();/切換緩存gllear(GL_LR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);/為繪下幀曲面去除緩沖區(qū)jixu-deley();/延時(shí)子程序vidNurbsVie:yinit()gllearlr(0.03,0.4,0.4,0.4);gllear(GL_LR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);auxInitDisplayde(AUX_DUBLE|AUX_RGBA);/設(shè)置成雙緩存形式根據(jù)以上思想,利用penGL雙緩存及顯示列表技術(shù),基于某數(shù)據(jù)場(chǎng)數(shù)據(jù),開(kāi)發(fā)了三維曲面圖形動(dòng)態(tài)顯示仿真系統(tǒng),該實(shí)例中視窗中三維曲面圖形隨數(shù)據(jù)場(chǎng)的數(shù)據(jù)的改變而動(dòng)態(tài)顯示,圖2為程序運(yùn)行中某一時(shí)刻的顯示結(jié)果。在微機(jī)平臺(tái)上,利用V6.0的penGL根據(jù)數(shù)據(jù)場(chǎng)的分布進(jìn)展三維曲面的動(dòng)態(tài)顯示是實(shí)在可行的,尤其采用雙緩存及顯示列表技術(shù)可以得到很好的三維曲面生成速度,這種動(dòng)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6 我們神圣的國(guó)土 第三課時(shí) (說(shuō)課稿)-部編版道德與法治五年級(jí)上冊(cè)
- 7-1《短歌行》說(shuō)課稿 2024-2025學(xué)年統(tǒng)編版高中語(yǔ)文必修上冊(cè)
- 2025年企業(yè)招標(biāo)承包經(jīng)營(yíng)合同
- 《7 剪紙藝術(shù)》(說(shuō)課稿)-2023-2024學(xué)年四年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)粵教版
- Module 8 Unit 1 Were going to visit Hainan.(說(shuō)課稿)-2024-2025學(xué)年外研版(三起)英語(yǔ)四年級(jí)上冊(cè)
- Unit 2 My week Period 4 Get ready for the new school year(說(shuō)課稿)-2024-2025學(xué)年人教PEP版英語(yǔ)五年級(jí)上冊(cè)
- 19海濱小城 (說(shuō)課稿)-2024-2025學(xué)年三年級(jí)上冊(cè)語(yǔ)文統(tǒng)編版
- 2025農(nóng)副產(chǎn)品買(mǎi)賣(mài)合同書(shū)模板(合同版本)
- 2023八年級(jí)語(yǔ)文上冊(cè) 第五單元 口語(yǔ)交際 復(fù)述與轉(zhuǎn)述配套說(shuō)課稿 新人教版
- 2024年春八年級(jí)歷史下冊(cè) 第10課 社會(huì)主義民主與法制的加強(qiáng)說(shuō)課稿1(pdf) 川教版
- 傷殘撫恤管理辦法實(shí)施細(xì)則
- 提升模組良率-六西格瑪
- DL-T+5196-2016火力發(fā)電廠(chǎng)石灰石-石膏濕法煙氣脫硫系統(tǒng)設(shè)計(jì)規(guī)程
- 2024-2030年中國(guó)產(chǎn)教融合行業(yè)市場(chǎng)運(yùn)營(yíng)態(tài)勢(shì)及發(fā)展前景研判報(bào)告
- 2024年微生物檢測(cè)試劑行業(yè)商業(yè)計(jì)劃書(shū)
- 河南開(kāi)封介紹課件
- 通信設(shè)備售后服務(wù)方案
- 高中英語(yǔ)選擇性必修一單詞表
- 初中生物校本課程綱要
- 物業(yè)公司介紹
- 賣(mài)花生混聲合唱簡(jiǎn)譜
評(píng)論
0/150
提交評(píng)論