可視化技術(shù)在數(shù)據(jù)顯示中的應(yīng)用_第1頁
可視化技術(shù)在數(shù)據(jù)顯示中的應(yīng)用_第2頁
可視化技術(shù)在數(shù)據(jù)顯示中的應(yīng)用_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

可視化技術(shù)在數(shù)據(jù)顯示中的應(yīng)用

1數(shù)據(jù)可視化的概念數(shù)據(jù)可視化技術(shù)是指使用計算機圖形學(xué)和數(shù)據(jù)處理技術(shù)在屏幕上顯示數(shù)據(jù)的理論、方法和技術(shù)。它涉及到計算機圖形學(xué)、圖像處理、計算機輔助設(shè)計、計算機視覺及人機交互技術(shù)等多個領(lǐng)域。數(shù)據(jù)可視化概念首先來自科學(xué)計算可視化,隨著計算機技術(shù)的發(fā)展,數(shù)據(jù)可視化概念已大大擴展,幾乎可以應(yīng)用于自然科學(xué)、工程技術(shù)、金融、通信和商業(yè)等各種領(lǐng)域。通過三維圖形開發(fā)庫OpenGL開發(fā)三維可視化結(jié)果,使得開發(fā)出來的軟件具有重用性、通用性、實時性等特點。2生成符合對標系統(tǒng)的驅(qū)動設(shè)計OpenGL是個專業(yè)的3D程序接口,是一個功能強大,調(diào)用方便的底層3D圖形庫。OpenGL是個與硬件無關(guān)的軟件接口,可以在不同的平臺如Windows95、WindowsNT、Unix、Linux、MacOS、OS/2之間進行移植。因此,支持OpenGL的軟件具有很好的移植性,可以獲得非常廣泛的應(yīng)用。OpenGL顯示列表(DisplayList)是由一組預(yù)先存儲起來留待以后調(diào)用的OpenGL函數(shù)語句組成的,當(dāng)調(diào)用這張顯示列表時就依次執(zhí)行表中所列出的函數(shù)語句。OpenGL顯示列表的設(shè)計能優(yōu)化程序運行性能,尤其是網(wǎng)絡(luò)性能。它被設(shè)計成命令高速緩存,而不是動態(tài)數(shù)據(jù)庫緩存。蒙板緩存(StencilBuffer)可以保持屏幕上某些部位的圖形不變,而其他部位仍然可以進行圖形繪制。正確靈活地運用蒙板緩存,可以實現(xiàn)對象的反射、折射和陰影等顯示效果。利用OpenGL開發(fā)庫驅(qū)動圖形顯示,可以充分利用顯卡的3D加速性能,從而實現(xiàn)滿足可視化要求的實時顯示,實現(xiàn)畫面的流暢驅(qū)動。3完成步驟3.1生成西部平臺oglintrocx的平臺啟動VC++6.0,選擇菜單File|New,打開New對話框。在New對話框中選擇Projects選項卡,在列表中選擇MFCActiveXControlWizard,建立一個工程名為“OglInstrOcx”的控件工程。通過AppWizard生成的框架應(yīng)用是不支持OpenGL的顯示。首先需要設(shè)置設(shè)備顯示模式,從而能支持OpenGL的顯示。接著,需要設(shè)置OpenGL的視窗大小,投影變換。這里的有些參數(shù)可以根據(jù)實際需要作相應(yīng)的調(diào)整:3.2實時三維數(shù)字視頻圖像的生成格式為了實現(xiàn)三維數(shù)字的顯示,需要做3方面的工作。第一,利用三維建模軟件實現(xiàn)數(shù)字0到9的三維模型;第二,利用工具把模型轉(zhuǎn)換成CPP的輸出文件;第三,把生成的CPP文件內(nèi)容加入工程中,編程驅(qū)動。首先,要生成0到9的三維模型。在這里選用multigencreator軟件,當(dāng)然,用3DMAX等軟件都是可以的。Creator軟件為美國MultiGen公司新一代實時仿真建模軟件;它區(qū)別于其他建模軟件,主要考慮在滿足實時性的前提下如何生成用戶需要的三維模型。其強大的建模功能可為眾多不同類型的圖像發(fā)生器提供建模系統(tǒng)及工具,其Openflight輸出格式在實時三維領(lǐng)域中成為最流行的圖像生成格式,并成為視景仿真領(lǐng)域事實上的行業(yè)標準。打開creator軟件,新建一個空文件。在工具欄選擇“Geometry”中的“3DText”按鈕,彈出“Text”對話框,在“TextString”編輯框中輸入“0123456789”,點擊ok,生成平面的數(shù)字模型,如圖1所示。接下來,在工具欄選擇“Geometry”中的“Wall”按鈕,彈出“Wall”對話框,在“Height”編輯框中輸入三維數(shù)字的厚度,點擊ok,生成三維的數(shù)字模型,如圖2所示。保存三維數(shù)字模型,輸出文件number0.flt。其次,利用DeepExploration三維模型轉(zhuǎn)換工具,把剛才生成的openflight三維數(shù)字模型轉(zhuǎn)換成OpenGLCPP的代碼。具體轉(zhuǎn)化過程比較簡單,在DeepExploration軟件中打開number0.flt文件,選擇菜單“Saveas…”,在保存類型中選擇“OpenGLCPPcode(*.cpp)”,根據(jù)需要點擊“Setting…”按鈕,設(shè)置輸出的具體選項。因為,需要把生成的代碼嵌入到工程中,所以在“Setting…”的cppcode中選擇“Displaylist”類型,生成number0.cpp代碼文件。在這個文件中,包含一個OpenGL對象顯示列表的函數(shù)如下:使用同樣的方法步驟,得到了number1.cpp至number9.cpp。利用這10個顯示列表函數(shù),可以通過程序調(diào)用生成任意的三維數(shù)據(jù)顯示。下面以兩位數(shù)為例說明:3.3蒙板存儲及顯示創(chuàng)建鏡面反射顯示效果,使用蒙板緩存技術(shù)。首先,需要先把各個緩存清空,包括蒙板緩存。接著,需要設(shè)置作為反射面的對象。在這里,把序號為1的顯示列表對象floor作為發(fā)射平面。因為,反射生成的影像都繪制在反射面上,不需要深度檢測。另外,反射面只是作為蒙板的參考,不需要顯示,所以設(shè)置了顏色掩碼,把參數(shù)設(shè)為GL_FALSE,這樣就不會在屏幕上繪制任何東西。接著,啟用蒙板測試,這樣就可以修改蒙板緩存中的值了。蒙板函數(shù)用于確定一個顏色片段是應(yīng)該丟棄還是保留(被繪制)。蒙板緩存區(qū)中的值與參考值進行比較,比較標準是glStencilFunc所指定的比較函數(shù)。參考值和蒙板緩存區(qū)的值都可以與掩碼進行為AND操作。蒙板測試的結(jié)果還導(dǎo)致蒙板緩存區(qū)根據(jù)glStencilOp函數(shù)所指定的行為進行修改。啟用了蒙板緩存,只能在蒙板中值為1的地方繪制,反射的實質(zhì)就是在反射屏幕的對應(yīng)位置再繪制一個物體,并把它放置在反射平面中,而這個物體的的Y向正好是反的:由于在蒙板緩存上繪制的對象要與實際顯示的floor融合在一起,所以需要把OpenGL的融合打開,并設(shè)置相應(yīng)的融合系數(shù)。最后,正常顯示周圍的效果畫面和三維統(tǒng)計結(jié)果。3.4動態(tài)陰影的實現(xiàn)使用OpenGL蒙板緩沖區(qū)實現(xiàn)平面陰影,關(guān)鍵是利用光源的矢量位置和地板的法線矢量,生成平面陰影投射矩陣

溫馨提示

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

評論

0/150

提交評論