VC_與OpenGL混合編程實現(xiàn)三維圖形處理_第1頁
VC_與OpenGL混合編程實現(xiàn)三維圖形處理_第2頁
VC_與OpenGL混合編程實現(xiàn)三維圖形處理_第3頁
VC_與OpenGL混合編程實現(xiàn)三維圖形處理_第4頁
VC_與OpenGL混合編程實現(xiàn)三維圖形處理_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、VC+與OpenGL混合編程實現(xiàn)三維圖形處理吳󰀁遜(江西師范大學軟件學院,江西南昌330022)摘󰀁要:VC+中的MFC包含了基于Windows的應(yīng)用框架,該框架功能十分強大,可以提供豐富的事件管理及相關(guān)的窗口函數(shù),在面向?qū)ο缶幊踢^程中被廣泛應(yīng)用;而OpenGL則從某種程度上成為三維圖形的開發(fā)標準,也是三維圖形處理的最佳選擇。就基于OpenGL的基本框架,闡述其在VC+平臺下進行三維圖形處理的具體操作。關(guān)鍵詞:VC+;OpenGL;三維圖形處理中圖分類號:TP751󰀁󰀁󰀁󰀁󰀁文獻標識

2、碼:A󰀁󰀁󰀁󰀁󰀁文章編號:1672-7800(2011)08-0160-02Windows光應(yīng)用程序框架,其有著良好的通用性及可移植0󰀁引言一般情況下,工程設(shè)計和資源勘探都離不開計算機仿真技術(shù)的有效應(yīng)用,尤其是在復雜地質(zhì)條件赫爾工藝結(jié)構(gòu)的處理過程中都需要利用教學模型建立三維立體圖形結(jié)構(gòu)。所謂的三維立體圖形處理主要包括切割、旋轉(zhuǎn)、移動以及光照等具體操作,開發(fā)中的難點一般都是軟件的強大圖形能力和良好用戶界面的接口。VC+面向?qū)ο蟮?、功能豐富的可視化開發(fā)工具,具有自動編輯、編譯、鏈接生成可執(zhí)行文件等多種功

3、能。能夠開發(fā)出良好的用戶界面接口,受到廣大軟件開發(fā)人員的青睞。OpenGL則是一種三維工具軟件包,在交互式三維圖形建模能力和編程方面和其它圖形開發(fā)方面具有很強的優(yōu)越性。與傳統(tǒng)的GDI繪圖不一樣的是,OpenGL開發(fā)不僅能減少代碼的數(shù)量,而且可收到更好的視覺效果。在Open-GL反饋的基礎(chǔ)上建立的強大選擇和修改功能,極大地方便了有限元網(wǎng)格圖形的修改和處理,加快了有限元分析計算的周期。本文在對VC開發(fā)功能進行分析的基礎(chǔ)上,進一步結(jié)合OpenGL的圖形處理能力,以期最終能實現(xiàn)對三維仿真圖形圖像的處理,為工程應(yīng)用中圖形數(shù)據(jù)的可視化及仿真提供相關(guān)的借鑒。+性,更利于VC的封裝性,且有較高的執(zhí)行效率,此外

4、,它還提供了一些諸如打印或者數(shù)據(jù)庫等具有共性特征應(yīng)用程序的操作支持。在MFC框架中有APP類、DOC類以及VIEW和MAINFRAME類等4種,MFC將其進行有機的結(jié)合。1.2󰀁OpenGL的簡介+所謂OpenGL是指開放圖形程序庫,它是一款高速高質(zhì)的3D圖形編輯軟件。VC+中有120個圖形函數(shù)進行點、線及其它多邊形的繪制,相對于在2D坐標系中的作圖,VC最根本的區(qū)別就是它是基于3D坐標系進行圖元的繪制的,利用現(xiàn)有的基本圖元建立模型,即可將復雜的3D物體繪制出來。VC+支持動畫、光照以及陰影和紋理映射等,可以在微機上實現(xiàn)交互式的、高品質(zhì)的三維圖形開發(fā)。+2󰀁Wi

5、ndows的圖形系統(tǒng)結(jié)構(gòu)體系OpenGL在網(wǎng)絡(luò)環(huán)境中工作時,因為計算機的輸出及顯示設(shè)備類型不同、型號不同,因此Windows系統(tǒng)就提供了GDI概念,即GraphicsDeviceInterface,從而實現(xiàn)應(yīng)用程序設(shè)備無關(guān)性。該技術(shù)將不同操作系統(tǒng)硬件設(shè)備的差異屏蔽掉,外部設(shè)備驅(qū)動程序直接由操作系統(tǒng)進行管理,用戶在進行編程時,一些特殊的硬件位置無需考慮,即可通過設(shè)備描述表與相關(guān)的應(yīng)用程序建立起關(guān)聯(lián)。因此,OpenGL在網(wǎng)絡(luò)中工作時,客戶端的顯示機器可以和運行圖形程序的服務(wù)器不同類型,只要二者服從的協(xié)議相同即可。1󰀁VC+與OpenGL的簡介1.1󰀁VC+VC是微軟

6、公司研發(fā)的面向?qū)ο蟮目梢暬_發(fā)工具,其可以借助微軟相應(yīng)的基礎(chǔ)類庫(MFC)以及應(yīng)用程序框架,開發(fā)出Windows標準界面的應(yīng)用程序。其中MFC將WindowsAPI函數(shù)進行完整的封裝,從而建立起+3󰀁應(yīng)用VC+與OpenGL進行聯(lián)合編程3.1󰀁構(gòu)建OpenGL程序框架VC與OpenGL之間的圖形接口的機制是通過設(shè)置:(),+與O。第8期󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁𘀀

7、1;󰀁吳󰀁遜:VC+與OpenGL混合編程實現(xiàn)三維圖形處理󰀁161󰀁像素格式來實現(xiàn)的,并關(guān)聯(lián)DC和RC。在創(chuàng)建繪圖描述表RC前,要先對像素格式進行相應(yīng)設(shè)置,完成后再為OpenGL建立RC,在建立了RC后OpenGL即可地蠔繪圖原語的調(diào)用,并在相應(yīng)的窗口中進行圖形的處理。RC的單位為線程,每個線程均要用一個RC為當前RC,才可以執(zhí)行OpenGL繪圖原語。3.2󰀁VC+與OpenGL圖形接口的實現(xiàn)該三維模型在顯示的過程中,其所消耗時間最大的是用顏色填充長方體網(wǎng)格單元,這種作法對于處理效率的影響比較大。出于人機交互時人只

8、能識別物體信息的表層部分,對物體進行切割后其內(nèi)部信息也會展示為表層信息的考慮,那么實際上在顯示時只需用顏色將網(wǎng)格的表層填充即可,這種可以大大提升處理效率,真正實現(xiàn)三維模型的網(wǎng)格化處理。首先要通過MFCAppWizard(exe)建立一個單文的新項目,然后設(shè)置OpenGL的基礎(chǔ)庫,在菜單中選擇Pro-ject/Settings的LINK選項,在Object/LibraryModules下增加OpenGL所需的庫程序,即OpenGL32.lib、glu32.lib、Glaux.lib,并且各程序開頭均要包含OpenGL所用的庫的頭文件。接下來進行窗口風格的修改,以便其可以支持OpenGL,Open

9、GL所需要的窗口要有WS_CLIPCHIL-DREN風格,用于父窗口的創(chuàng)建;還要具備WS_CLIPAIB-LINGS風格來創(chuàng)建子窗口。然后進行像素格式的設(shè)置,并關(guān)聯(lián)RC及DC。為了使渲染描述表知道如何選擇像素,像素格式要在渲染描述表創(chuàng)建之前建設(shè)置,并在On-Create()函數(shù)中添加相應(yīng)的語句(此處略)。接下來將消息處理函數(shù)添加進去,用以響應(yīng)WM_SIZE和WM_DE-STROY。其中響應(yīng)WM_SIZE是為了防止窗口的大小發(fā)生改變后造成圖像的失真,從而完成視場的變化;而響應(yīng)WM_DESTROY主要目的則是為了釋放RD及DC。最后再將繪制場景的代碼添加到OnDraw函數(shù)中。此外,值得注意是在利用

10、OpenGL進行繪圖的過程中,為了不對后續(xù)的OpenGL命令產(chǎn)生影響,不能將繪制描述表RC所對應(yīng)的設(shè)備描述表DC刪除或者釋放。假如OpenGL作圖的過程中占用DC的時間比較長,可以將作圖窗口類的屬性設(shè)置為CS_OWNDC。3.3󰀁圖形的基本操作功能的實現(xiàn)4󰀁結(jié)束語總之,由于VC+的三維數(shù)據(jù)處理能力相對有限,因此與OpenGL進行聯(lián)合編程,將其強大的圖形處理能力充分利用起來,二者進行良好的融合,全程應(yīng)用C語言即可完成程序的開發(fā),有效地防止了利用MATLAB繪圖所出現(xiàn)的種種問題,并且程序在向其它諸如Linux等操作系統(tǒng)中移植時也比較方便。此外,本文所采用的網(wǎng)格化模型

11、處理方法可以將物體細節(jié)信息更為詳細地表達處理,而且解決了圖形網(wǎng)格化處理效率低下的問題。通過相關(guān)實驗,驗證其可行性及實用性。參考文獻:1󰀁郭兆榮,王彥.VisualC郵電出版社,2006.2󰀁郭兆榮,李菁,王彥.VisualC+人民郵電出版社,2007.3󰀁高恩婷.基于VC+的OpenGL三維應(yīng)用程序的設(shè)計J.蘇州大學學報(自然科學版),2007(4).4󰀁任群.VC+OpenGL應(yīng)用程序開發(fā)M.北京:人民OpenGL應(yīng)用程序開發(fā)M.北京:與OpenGL混合編程實現(xiàn)三維圖形處理J.大眾科技,2010(1).5󰀁陳俊濤

12、,肖明,鄭永蘭.用OpenGL開發(fā)地下結(jié)構(gòu)工程三維有限元圖形系統(tǒng)J.巖石力學與工程學報,2006(6).6󰀁姚普選,仇國巍.程序設(shè)計教程(VisualC+出版社,2005.(責任編輯:杜能鋼)+為了提高三維模型表述物體細節(jié)信息的準確性,在處理三維模型時可以采用網(wǎng)格化的方式,這樣模型的顏色就可以分別表達出物體中不同細節(jié)的物理信息。比如如果三維模型為100󰀁100󰀁100,則會產(chǎn)生106個小網(wǎng)格體。)M.北京:清華大學Realizationof3DGraphicsbyVC+OpenGLandMixingProgrammingAbstract:TheMFCofVC+containsapplicationframeworkbasedonWindows,thefunctionofframeworkisverystrong,itcanprovideabundanteventmanagementandrelevantwindowfunctions,itwasusedinobject-orientedprogram-mingprocesswidely.Insomeways,OpenGLisdevelopstanda

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論