999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

虛擬現(xiàn)實二次開發(fā)平臺的研究與實現(xiàn)

2010-06-29 06:12:10
成都信息工程大學學報 2010年2期
關鍵詞:二次開發(fā)可視化用戶

王 柯

(成都信息工程學院軟件工程學院,四川成都610225)

1 引言

隨著計算機圖形學的發(fā)展,虛擬現(xiàn)實技術得到了廣泛的應用[1]。虛擬現(xiàn)實技術是一種可以創(chuàng)建和體驗虛擬世界的計算機系統(tǒng)[2],被廣泛應用于軍事、醫(yī)療、航空、汽車、機械等多個領域。它是計算機圖形學、多媒體技術、人工智能技術等高科技技術的高度集成和融合,其本質是客觀事物在計算機上的一種仿真實現(xiàn)[3]。

目前,三維虛擬場景的創(chuàng)建和顯示有3類比較流行開發(fā)方式,一類是在商用可視化開發(fā)平臺(如3dsmax、maya等)下進行虛擬模型的可視化建立與編輯,再通過安置靜態(tài)或動態(tài)攝像機實現(xiàn)對三維場景的觀察。這種場景建立方式雖然非常方便,模型的外觀和參數(shù)都可通過直觀的方式修改和調整,但在最終的虛擬場景中用戶往往只能按照預先設置的攝像機視點觀察場景,被動地接受場景的變換和更替。難以實現(xiàn)與虛擬場景內模型對象的實時交互,更無法達到通過交互改變虛擬場景的目標。而大多數(shù)交互實時性虛擬現(xiàn)實系統(tǒng)多采用在開發(fā)平臺中以編程語言調用圖形應用程序接口的方式實現(xiàn)特定的虛擬場景,其開發(fā)成果物對于實時和交互能提供良好的支持。但如果用戶對于虛擬場景的顯示要求有所變化,程序員往往需要對源代碼進行修改以滿足用戶的特定要求,其編碼工作的重復率較高,復用率極低。雖然目前也陸續(xù)有一些支持編程的可視化三維軟件平臺,可以以直觀的方式創(chuàng)建簡單的三維場景,但其開發(fā)的結果大多需要依賴原始的開發(fā)平臺做支持,制約了其開發(fā)成果的通用性。因此,針對虛擬現(xiàn)實場景的建立工作,開發(fā)一套既能滿足可視化直觀的可復用三維模型建立方式,又保證虛擬場景的交互實時性的通用二次開發(fā)平臺就顯得非常重要。

2 虛擬現(xiàn)實二次開發(fā)平臺的設計

2.1 虛擬現(xiàn)實二次開發(fā)平臺的質量標準

為滿足虛擬現(xiàn)實二次開發(fā)平臺兩類典型用戶的使用需求,即一方面能為專業(yè)三維程序員提供直觀便捷的可復用三維場景建立環(huán)境,另一方面又能降低三維系統(tǒng)設計的難度,為普通工程人員提供開發(fā)交互實時三維場景系統(tǒng)的可能性,在設計二次開發(fā)平臺的過程中需要從方便易用、技術先進、執(zhí)行高效、高穩(wěn)定、可移植兼容、高效伸縮和系統(tǒng)融合以及相對獨立等多個方面來衡量平臺的品質[4]。其中平臺的易用性是設計時所考慮的首要因素,二次開發(fā)平臺的使用方式盡量符合開發(fā)人員的工程習慣,界面設計直觀易于用戶理解;另一方面,隨著三維圖形設計技術的發(fā)展,推出新的模型實現(xiàn)算法或對原有的繪制方法進行改進以后,對用戶之前所開發(fā)的應用程序應該保持較好的向下兼容性,因此系統(tǒng)使用組件式開發(fā)將是解決兼容與移植的可行方案;由于虛擬現(xiàn)實二次開發(fā)平臺涉及最多的是三維圖形的處理和渲染,有效提升平臺處理和渲染的速度是平臺設計人員和普通用戶都非常關注的問題,因此在設計過程中應用先進的算法和軟件技術提高系統(tǒng)的執(zhí)行速度也顯得非常重要。

2.2 虛擬現(xiàn)實二次開發(fā)平臺的開發(fā)模式

在二次平臺的開發(fā)過程中,根據(jù)二次開發(fā)技術的不同可分為兩種模式:內嵌機制和外部開發(fā)機制[4]。虛擬現(xiàn)實二次開發(fā)平臺采用了外部開發(fā)機制進行開發(fā),外部開發(fā)機式具有非常強大的功能,幾乎可以實現(xiàn)宿主程序提供的所有功能,并具有較強的獨立性,還可生成新的應用程序,擁有自己的界面和功能,它的執(zhí)行不影響宿主程序的運行。另外,外部開發(fā)機制還可以將開發(fā)成果作為插件形式在宿主程序中調用,增加宿主程序的功能模塊,這一開發(fā)模式就相當于一次軟件創(chuàng)新,但是亦有其不足,它要求二次開發(fā)人員具有較高的素質,對宿主程序有相當?shù)亓私?且對宿主程序的要求較高[4]。虛擬現(xiàn)實二次開發(fā)平臺的開發(fā)模式示意圖如圖1所示。

2.3 虛擬現(xiàn)實二次開發(fā)平臺的模塊劃分

在設計過程中,將虛擬現(xiàn)實二次開發(fā)平臺劃分為5大功能模塊,分別是:基本三維模型處理模塊、擴充三維模型處理模塊、三維場景管理模塊、界面管理模塊、代碼處理模塊。為保證二次平臺的可移植性與兼容性,所有模塊都以組件的形式加以實現(xiàn)。

虛擬現(xiàn)實二次開發(fā)平臺的模塊劃分如圖2所示。

(1)基本三維模型處理模塊負責處理二次開發(fā)平臺中簡單三維模型的建立和修改工作,簡單三維模型主要支持經典幾何圖元類別,具體包括點、線、多邊形、長方體、球體、圓柱、圓錐、圓環(huán)以及茶壺等模型。

(2)擴充三維模型處理模塊負責處理二次開發(fā)平臺中多種復雜三維模型的建立與修改工作,目前已經實現(xiàn)的擴充三維模型包括能從外部導入的3ds模型、簡單粒子系統(tǒng)、起伏地形以及動態(tài)火焰模型,后續(xù)將對該類模型進行擴充,以實現(xiàn)更多非規(guī)則模型的繪制。

(3)三維場景管理模塊負責處理三維場景中光照變換、材質設定、虛擬攝像機控制的管理和參數(shù)變換。

(4)界面管理模塊用于控制虛擬現(xiàn)實二次開發(fā)平臺的界面布局、負責捕捉和傳遞控件事件。

(5)代碼處理模塊是虛擬現(xiàn)實二次開發(fā)平臺的關鍵部分,負責處理控件事件,向后臺源代碼區(qū)插入用戶通過可視化界面操作的結果,并負責將可視化編輯的結果保存為文件。

3 虛擬現(xiàn)實二次開發(fā)平臺的實現(xiàn)

圖1 虛擬現(xiàn)實二次開發(fā)平臺的開發(fā)模式示意圖

圖2 虛擬現(xiàn)實二次開發(fā)平臺的模塊劃分

3.1 開發(fā)工具的選擇

虛擬現(xiàn)實二次開發(fā)平臺采用VC++.net和OpenGL進行開發(fā)。C++是一種基于標準的互操作語言,開發(fā)人員通過VC++.net,可以享用到最優(yōu)秀的C++開發(fā)工具,VC++.net也為開發(fā)人員提供了大量的專業(yè)級功能,方便為Windows環(huán)境創(chuàng)建性能優(yōu)越的應用程序和組件;開放圖形庫OpenGL是SGI公司所發(fā)布的一套三維的計算機圖形和模型庫,它集成了諸如坐標變換、光照設置、材質和紋理編輯、像素操作、融合、反走樣和霧化等復雜三維圖形操作命令,以其優(yōu)良的性能成為了三維圖形軟件接口的工業(yè)標準,被廣泛應用于虛擬現(xiàn)實和計算機可視化仿真領域[5,6]。

3.2 關鍵技術

(1)基本三維模型處理

現(xiàn)實世界中存在很多三維物體可以由基本三維圖元組裝而成,基于上述考慮,在基本三維模型處理模塊中將圖元的共性加以提煉,定義為父類3DPModel,而由父類所派生的模型組件,封裝為子類。

在具體定義時,父類中僅抽象出最基本的成員變量,分別是模型名稱ModelName、模型頂點列表Model-PointList、模型紋理坐標ModelTexCoor、模型位置變換參數(shù)集ModelPositionSet以及模型顏色控制參數(shù)ModelColor;在成員函數(shù)部分,則僅定義出最基本的模型繪制函數(shù)ModelDraw()、模型顏色設置函數(shù)ModelColorSet()、模型頂點設置函數(shù)ModelPointsSet()、模型紋理坐標設置函數(shù)ModelTexCoorSet()以及模型變換函數(shù)ModelMove()、ModelRotate和ModelScale(),為功能上處理方便,初期并沒有將材質的定義放入模型類中,而是放入三維場景管理模塊中做單獨處理。

各圖元子類從父類繼承,以多態(tài)性實現(xiàn)自己的功能,較為簡單的圖元對象,諸如點、線、多邊形和長方體模型,在其繪制函數(shù)中預先已寫入幾何圖元的定義值,而稍復雜的圖元對象,諸如球體、圓柱、圓錐、圓環(huán)以及茶壺等模型,為減少編程的難度,則采用直接調用輔助庫函數(shù)進行繪制。

(2)3ds模型的處理

在模擬真實世界的三維場景中,除了部分可以由基本圖元組裝而成的模型外,還有更多外形各異、組成復雜的模型外觀,比較典型的如汽車、樓房和綠化帶等,這類模型如果直接使用基本圖元建模函數(shù)組合生成,建模的工作量極大,且難于獲得最理想的模擬效果,因此系統(tǒng)中的這類復雜模型便利用目前比較成熟的三維設計類軟件,采用真實對象的外觀參數(shù)進行可視化建模,建模完成后再將三維模型的外觀控制信息讀取到系統(tǒng)中交由OpenGL進行轉換和控制,該部分處理工作將其歸入擴充三維模型處理模塊中進行。

為保證平臺處理的便利性,預先建立了一些通用模型,初期共分為3類,分別是汽車類GLCar、樓房類GLBuildering和綠化類GLGreen,將事先建立好的模型轉換為3ds文件,3ds格式的文件是由很多塊所構成,塊是3ds文件的基本單位,塊是可以互相嵌套的,通過文件中大量的塊以及塊的相互嵌套構成了一個復雜但又靈活的文件系統(tǒng)[7],在代碼中通過分析3ds文件的結構獲取繪制關注的頂點信息、面索引信息和紋理坐標信息等。除了可以直接使用系統(tǒng)所預先建立好的3類模型外,在實現(xiàn)過程中也考慮到模型的多樣性與用戶的特殊需求,實現(xiàn)時將讀取3ds文件的代碼進行了封裝,以便用戶可以在平臺內導入自己所建立的外部模型以構成虛擬場景。

(3)代碼處理

在設計時,為方便虛擬現(xiàn)實二次開發(fā)平臺進行后續(xù)代碼的處理工作,事先創(chuàng)建完成了三維代碼的基本框架?;究蚣苤饕糜趯崿F(xiàn)三維繪圖前的準備,主要包括引用Windows環(huán)境和OpenGL庫所對應的各頭文件、設置像素格式、初始化OpenGL繪圖環(huán)境、定制時鐘、創(chuàng)建繪圖窗口以及定義基本窗口事件處理機制等內容。

平臺運行中,代碼的植入由用戶事件所驅動,在基本框架內按照程序結構進行了植入區(qū)位置的預分配,設置了代碼植入區(qū)域的識別符,系統(tǒng)通過讀取識別符以確定代碼的植入位置。

為方便程序讀取,使用VC++的注釋格式,比如植入與三維環(huán)境中光照相關代碼的區(qū)域,其首行識別符為/*light*/;植入三維模型材質相關代碼的區(qū)域,其首行識別符為/*material*/。比如當用戶打開光源設置面板,啟用光源并設置該光源的各項參數(shù)后,系統(tǒng)將自動植入該光源所對應的源代碼,為避免用戶輸入錯誤,在系統(tǒng)中對各輸入框的輸入值范圍進行了限定,并規(guī)定如果用戶輸入“#”字符,則表示不啟用該項參數(shù)值,如圖3所示。

圖3 光照源代碼的生成

3.3 應用實例

虛擬現(xiàn)實二次開發(fā)平臺在VC++.net開發(fā)環(huán)境下,通過調用OpenGL三維圖形庫進行二次開發(fā)而成。較為完整地處理了三維繪圖環(huán)境下的相關技術,包括繪制環(huán)境的預處理工作;標準三維圖元的繪制以及復雜三維模型的導入與生成;簡單粒子系統(tǒng)、三維地形、動態(tài)火焰等非規(guī)則模型的模擬;最為關鍵的是,通過事件驅動的代碼置入方式,為平臺用戶提供了直觀可視化的三維應用程序開發(fā)方式,通過在平臺內設置三維場景的相關參數(shù),快速生成三維場景源代碼。

用戶通過點擊菜單欄下方建模工具欄中的各建模工具按鈕,可以快速創(chuàng)建簡單幾何圖元,其創(chuàng)建效果如圖4所示;圖5為導入外部3ds模型后的場景,用戶可以方便地通過攝像機設置面板修改視點的位置和方向;除了以參數(shù)方式設定攝像機視點外,用戶也可以通過鍵盤上的方向鍵與拖動鼠標,實現(xiàn)場景的漫游工作,圖6是視點漫游過程中觀察某室外場景的示意,在該場景中使用了系統(tǒng)的預置綠化類模型建立了一些樹木外觀。

在平臺界面左側下方的新代碼植入顯示窗口內,會實時顯示之前操作確認后所植入的新代碼,用戶可以檢查代碼的植入情況,如有不正確之處,也可以手工修正。當所有對三維場景的修改工作完成后,即可將植入代碼后的繪制程序進行存儲,如圖7所示。

圖4 基本圖元繪制

圖5 設置攝像機參數(shù)

圖6 視點漫游過程中所觀察到的室外場景效果

圖7 存儲繪制代碼

4 結束語

對建立一套可視化桌面虛擬現(xiàn)實二次開發(fā)平臺進行了闡述。平臺較為完整地處理了三維圖像的繪制工作,包括經典幾何圖元以及外部3ds模型等非規(guī)則三維景觀的建立、視點轉換、光照設置等功能。與目前流行的三維場景系統(tǒng)開發(fā)方法相比,虛擬現(xiàn)實二次開發(fā)平臺通過前臺可視化操作觸發(fā)后臺代碼植入的方式,實現(xiàn)了對三維基本框架的豐富與擴充,為平臺用戶進行三維視景源代碼的編寫提供了直觀便捷的操作方式,一方面減低了進行三維可視化代碼編制的難度,另一方面則較大地提高了開發(fā)高品質三維軟件的效率。

[1]鄧宇,陳孝威.基于Visual C#.NET與3DSTATE實現(xiàn)虛擬現(xiàn)實[J].計算機工程與設計,2006,27(21):4019-4021.

[2]檀鵬,張樹揚.虛擬現(xiàn)實開發(fā)平臺系統(tǒng)的研究與實現(xiàn)[J].徐州師范大學學報,2005,23(2):57-59.

[3]徐延海,寧凡坤.用于汽車操縱穩(wěn)定性模擬的虛擬現(xiàn)實平臺的研究[J].系統(tǒng)仿真學報,2007,19(17):3984-3987.

[4]趙衛(wèi)東,柳先輝,衛(wèi)剛.CAD軟件二次開發(fā)平臺實現(xiàn)技術[J].計算機輔助設計與圖形學學報.2003,15(4):512-516.

[5]賀孝梅,劉丹青,姚新港.基于OpenGL的小球碰撞動畫模擬的實現(xiàn)[J].計算機應用與軟件,2007,24(6):184-186.

[6]魏海濤,姜昱明,張婭.基于OpenGL的虛擬航天飛機發(fā)射場景仿真研究[J].微電子學與計算機,2009,26(5):200-203,208.

[7]李勝睿,王乘恩,王智高.計算機圖形學實驗教材[M].北京:機械工業(yè)出版社,2004:173-175.

猜你喜歡
二次開發(fā)可視化用戶
基于CiteSpace的足三里穴研究可視化分析
基于Power BI的油田注水運行動態(tài)分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
基于CGAL和OpenGL的海底地形三維可視化
淺談基于Revit平臺的二次開發(fā)
甘肅科技(2020年20期)2020-04-13 00:30:02
“融評”:黨媒評論的可視化創(chuàng)新
傳媒評論(2019年4期)2019-07-13 05:49:14
淺談Mastercam后處理器的二次開發(fā)
模具制造(2019年3期)2019-06-06 02:11:02
西門子Easy Screen對倒棱機床界面二次開發(fā)
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
主站蜘蛛池模板: 国产毛片基地| 欧美色视频网站| 99r在线精品视频在线播放| 欧美啪啪网| 亚洲日韩精品无码专区97| 人人澡人人爽欧美一区| 免费国产黄线在线观看| 久久国产香蕉| 91精品国产一区自在线拍| 久久综合亚洲色一区二区三区| 日本a∨在线观看| 好紧好深好大乳无码中文字幕| 国产精品偷伦视频免费观看国产| 99久久精品免费看国产免费软件| 日韩精品一区二区深田咏美| 国产网友愉拍精品| 真实国产精品vr专区| 亚洲欧美自拍中文| 啪啪免费视频一区二区| 国产SUV精品一区二区6| 精品91自产拍在线| 毛片网站在线播放| 欧美在线黄| 欧美三级日韩三级| 黄色在线不卡| 国产精品一区在线观看你懂的| 全午夜免费一级毛片| 亚洲综合极品香蕉久久网| 国产日韩精品一区在线不卡| 国内精品小视频在线| 四虎永久在线视频| 日韩中文欧美| 在线观看精品自拍视频| 免费99精品国产自在现线| 中文字幕av无码不卡免费| 日本爱爱精品一区二区| 日韩在线视频网站| 波多野衣结在线精品二区| 亚洲热线99精品视频| 亚洲天堂区| 在线色综合| 全部免费特黄特色大片视频| 亚洲人成电影在线播放| 91精品啪在线观看国产91| 午夜福利免费视频| 亚洲av片在线免费观看| 国产内射一区亚洲| 丝袜亚洲综合| 色老头综合网| 欧美a在线看| 在线色国产| 91精品国产综合久久香蕉922| 欧美日韩国产综合视频在线观看| 欧美性天天| 精品欧美日韩国产日漫一区不卡| 99热这里只有精品免费| 成人国产小视频| 一区二区三区国产精品视频| 制服丝袜一区| 欧美在线观看不卡| 一级毛片无毒不卡直接观看| 久久精品娱乐亚洲领先| 国产精品深爱在线| 无码专区国产精品一区| 国产精品视频导航| 亚洲区第一页| 99资源在线| 中文字幕无码中文字幕有码在线| 免费jizz在线播放| 经典三级久久| 福利一区三区| 新SSS无码手机在线观看| 成人国产精品一级毛片天堂 | 国产一级裸网站| 91免费片| 国产一级裸网站| 国产成人三级| jizz国产视频| 成人韩免费网站| 国产亚洲欧美日韩在线一区二区三区| 亚洲乱码在线播放| 五月激情婷婷综合|