安徽理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 周華平 林浩偉 孫克雷
近年來(lái),隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展,拓寬和深化了計(jì)算機(jī)在數(shù)據(jù)采集和信息處理方面的應(yīng)用,尤其是人與信息科學(xué)相結(jié)合的高新技術(shù)——可視化(Visualization)與虛擬現(xiàn)實(shí)(virtual Reality,簡(jiǎn)稱VR)給計(jì)算機(jī)的應(yīng)用帶來(lái)了新的活力。在計(jì)算機(jī)技術(shù)創(chuàng)造的三維虛擬環(huán)境中,用戶可直接參與并探索仿真對(duì)象在所處環(huán)境中的作用與變化,可視化及虛擬現(xiàn)實(shí)技術(shù)的進(jìn)一步發(fā)展必將成為現(xiàn)代科學(xué)技術(shù)研究的重要手段并將對(duì)信息的處理及提高信息的利用率產(chǎn)生深遠(yuǎn)的影響。在礦業(yè)領(lǐng)域中由于新技術(shù)和新設(shè)備的不斷引入,增強(qiáng)了礦業(yè)對(duì)于安全高效、自動(dòng)化的要求,虛擬現(xiàn)實(shí)技術(shù)為滿足這一需求提供了有效手段。因此虛擬現(xiàn)實(shí)的研究開發(fā)無(wú)疑對(duì)提高煤礦安全生產(chǎn)、礦工安全保護(hù)意識(shí)和系統(tǒng)優(yōu)化設(shè)計(jì)等具有重要的實(shí)用價(jià)值。
虛擬現(xiàn)實(shí)是利用計(jì)算機(jī)生成一種模擬環(huán)境,它通過(guò)多種傳感設(shè)備使用戶“沉浸”到該環(huán)境中,是實(shí)現(xiàn)用戶與該環(huán)境直接進(jìn)行自然交互的技術(shù)。實(shí)際上它就是一種先進(jìn)的人機(jī)接口,通過(guò)給用戶同時(shí)提供諸如視、聽(tīng)、觸等各種直觀而又自然的實(shí)時(shí)感知交互手段,最大限度地方便用戶操作,從而減輕用戶的負(fù)擔(dān),提高整個(gè)系統(tǒng)的工作效率。虛擬現(xiàn)實(shí)技術(shù)可以完全徹底地轉(zhuǎn)化人們的想象力,在計(jì)算機(jī)中產(chǎn)生另一種境界,將境界的有關(guān)信息傳給人的感覺(jué)器官,使人們獲得一種全新的感受,讓人覺(jué)得其的確是在另外一個(gè)三維世界中。虛擬現(xiàn)實(shí)技術(shù)是一項(xiàng)綜合集成技術(shù),涉及計(jì)算機(jī)圖形學(xué)、人機(jī)交互技術(shù)、傳感技術(shù)、人工智能等領(lǐng)域,它用計(jì)算機(jī)生成逼真的三維視覺(jué)、聽(tīng)覺(jué)、味覺(jué)等感觸,使人作為參與者通過(guò)適當(dāng)?shù)奶摂M現(xiàn)實(shí)設(shè)置,自然的對(duì)虛擬世界進(jìn)行體驗(yàn)和交互作用。
圖1 OpenGL的基本工作流程
圖2 三維虛擬漫游系統(tǒng)的總框圖
1)多感知性
除了一般計(jì)算機(jī)所具有的視覺(jué)感知外,虛擬現(xiàn)實(shí)系統(tǒng)還具有聽(tīng)覺(jué)感知、力覺(jué)感知、觸覺(jué)感知、味覺(jué)感知和嗅覺(jué)感知等。理想的虛擬現(xiàn)實(shí)系統(tǒng)應(yīng)具有人的一切感知功能,目前由于傳感器技術(shù)的限制,現(xiàn)有的虛擬現(xiàn)實(shí)技術(shù)所能提供的感知功能僅限于視覺(jué)、聽(tīng)覺(jué)、力覺(jué)和觸覺(jué)等。
2)用戶投入性
這是VR系統(tǒng)的核心,是指用戶進(jìn)入到計(jì)算機(jī)生成的虛擬場(chǎng)景中的能力,用戶在虛擬場(chǎng)景中有身臨其境之感。
3)用戶與虛擬場(chǎng)景的交互性
指用戶與虛擬場(chǎng)景中各種對(duì)象相互作用的能力。它是人機(jī)和諧的關(guān)鍵因素。交互性包括對(duì)象的可操作程度及用戶從環(huán)境中得到反饋的自然程度、虛擬場(chǎng)景中對(duì)象依據(jù)物理學(xué)定律運(yùn)動(dòng)的程度等。VR是自主參考系,即以用戶的視點(diǎn)變化進(jìn)行虛擬交換,這個(gè)過(guò)程中最重要的因素是實(shí)時(shí)性,實(shí)時(shí)性是指計(jì)算機(jī)能夠響應(yīng)用戶的輸入并立即改變虛擬場(chǎng)景狀態(tài)的能力。虛擬現(xiàn)實(shí)不僅僅是一個(gè)用戶與終端的接口,而且可使用戶沉浸在虛擬環(huán)境中獲取新知識(shí),提高感性和理性認(rèn)識(shí),從而產(chǎn)生新的構(gòu)思并輸入到系統(tǒng)中去,系統(tǒng)會(huì)將處理后的狀態(tài)實(shí)時(shí)顯示或由傳感裝置反饋給用戶。
OpenGL(Open Graphics Library)是美國(guó)SGI公司開發(fā)的三維圖形設(shè)計(jì)軟件,獨(dú)立于操作系統(tǒng)和硬件系統(tǒng)的圖形開發(fā)系統(tǒng)的通用接口,被認(rèn)為是高性能圖形和交互式視景處理的標(biāo)準(zhǔn),是計(jì)算機(jī)圖形技術(shù)領(lǐng)域的集大成者。在三維仿真建模、虛擬現(xiàn)實(shí)技術(shù)等領(lǐng)域,OpenGL發(fā)揮著重要的作用。OpenGL突出的特點(diǎn)是與平臺(tái)無(wú)關(guān),它適用UNIX,Windows95/98,MacOS,WindowsNT等多種操作系統(tǒng),而且在Visual C++2。0及以上版本中都封裝了OpenGL圖形庫(kù)。它包括100多個(gè)圖形函數(shù),開發(fā)者可以用這些函數(shù)構(gòu)造出接近光線跟蹤的高質(zhì)量的三維景物模型、進(jìn)行三維圖形實(shí)時(shí)交互軟件的開發(fā)。OpenGL提供的基本功能有:模型繪制、模型觀察、光照處理、色彩處理、位圖和圖像處理、紋理映射、實(shí)時(shí)動(dòng)畫、物體運(yùn)動(dòng)模糊處理、交互技術(shù)等。因此利用OpenGL與Visual C++結(jié)合可以開發(fā)出完美的3D圖形產(chǎn)品。
OpenGL實(shí)現(xiàn)一個(gè)完整功能的圖形處理系統(tǒng)結(jié)構(gòu)是:底層為圖形硬件,依次向上為操作系統(tǒng)、窗口系統(tǒng)、OpenGL和應(yīng)用軟件。其基本工作流程如圖1所示。
OpenGL提供對(duì)2D、3D圖形的基本操作,但并不提供描述復(fù)雜幾何物體及建立復(fù)雜物體模型的手段,即它僅提供繪制復(fù)雜幾何物體本身的機(jī)制而非描述復(fù)雜物體本身的方法,因而,必須尋找自身的三維建模方法才能繪制出適合需要的真實(shí)世界。
(1)分割重組法
分割重組法生成一個(gè)宏觀物體,需要拆分和重組兩個(gè)步驟。拆分過(guò)程是將物體人為地細(xì)節(jié)化,而重組則是將己拆分的圖形片元按一定規(guī)律組裝起來(lái),是拆分的逆過(guò)程。下面是這兩個(gè)步驟的具體過(guò)程。
l)拆分
考慮一個(gè)宏觀物體,從各個(gè)方向?qū)⑵淝蟹?,切分原則應(yīng)保證每?jī)汕忻嬷g的形狀為方形、圓形或兩者的結(jié)合。應(yīng)根據(jù)物體的形狀,選擇恰當(dāng)?shù)那蟹贮c(diǎn),使切分后的物體比較簡(jiǎn)單、規(guī)則。采用這一切分原則可以較為細(xì)致地刻畫出物體的每個(gè)細(xì)節(jié),因而方便了圖形的重新組織工作。對(duì)物體進(jìn)行切分之后,可得到由基本幾何形狀組成的切分面(多邊形、圓、方形等),對(duì)圓形切面以相近多邊形擬合,獲得合適的多邊形之后,確定重組物體所需的長(zhǎng)方體側(cè)面數(shù)。為方便計(jì)算,常取8、16、32、64多邊形來(lái)逼近某一曲面。
2)重組
重組的過(guò)程也是尋找圖形對(duì)象點(diǎn)、線、面關(guān)系的過(guò)程。還以上述的物體為例,將各部分分別編號(hào)并按順序連接兩面對(duì)應(yīng)點(diǎn),從而形成所需模型。
(2)曲面合成法
在實(shí)際的礦井系統(tǒng)仿真中,經(jīng)常會(huì)遇到制作光滑曲面、閉合曲面的情形,如彎道、交叉口以及機(jī)械構(gòu)件等實(shí)物造型。為了很好的實(shí)現(xiàn)曲面建模,可采用計(jì)算機(jī)圖形學(xué)中較為成熟的Bezier、NURBS等樣條曲一面理論,同時(shí)借助OpenGL語(yǔ)言的強(qiáng)大功能來(lái)完成曲面設(shè)計(jì)方法。利用Bezier曲線的形狀(有一組多邊折線的頂點(diǎn)唯一地確定)可以畫出十分光滑的曲線,在多邊形多個(gè)頂點(diǎn)中,只有第一個(gè)和最后一點(diǎn)在Bezier曲線上,第一條和最后一條折線的方向是Bezier曲線的起點(diǎn)和終點(diǎn)的切線方向,而其余的頂點(diǎn)則用于定義曲線的形狀。改變多邊折線的頂點(diǎn)和改變曲線的形狀有著形象直觀的聯(lián)系。
三維漫游系統(tǒng)是包括一個(gè)逼真的視、聽(tīng)、觸覺(jué)一體化的特定范圍的虛擬環(huán)境,它是一個(gè)真實(shí)空間或假想空間的實(shí)時(shí)仿真虛擬空間,用戶借助一定的裝備以自然的方式在該虛擬空間中漫游,從任意角度對(duì)環(huán)境中的虛擬對(duì)象進(jìn)行觀察,從而產(chǎn)生親臨其境的真實(shí)感覺(jué),同時(shí)也可以對(duì)其中的物體進(jìn)行操作獲取反饋。在構(gòu)建煤礦虛擬現(xiàn)實(shí)模型的基礎(chǔ)上,進(jìn)一步建立相應(yīng)的模型數(shù)據(jù)庫(kù),通過(guò)該數(shù)據(jù)庫(kù)可以構(gòu)建不同虛擬現(xiàn)實(shí)礦井,以便適應(yīng)不同的煤礦需求。利用目前比較成熟的Vega虛擬現(xiàn)實(shí)軟件開發(fā)工具,結(jié)合煤礦虛擬現(xiàn)實(shí)模型,實(shí)現(xiàn)煤礦的漫游功能。在漫游功能的基礎(chǔ)上,能夠?qū)ΦV工進(jìn)行礦井地圖識(shí)別訓(xùn)練、礦井搜索訓(xùn)練等任務(wù),使礦工在虛擬環(huán)境下能對(duì)礦井有所熟悉,并且對(duì)各種安全設(shè)施所在的方位了如指掌,增加礦工在災(zāi)變環(huán)境下的逃生能力。三維虛擬漫游系統(tǒng)的總框圖如圖2所示。
系統(tǒng)主要包括數(shù)據(jù)庫(kù)管理子系統(tǒng)、三維可視化子系統(tǒng)和礦井三維虛擬環(huán)境子系統(tǒng)。數(shù)據(jù)庫(kù)管理子系統(tǒng)主要實(shí)現(xiàn)基礎(chǔ)數(shù)據(jù)庫(kù)的維護(hù)與管理,能夠?qū)?shù)據(jù)庫(kù)的記錄進(jìn)行添加、刪除、修改、查詢及表格顯示。三維可視化子系統(tǒng)主要對(duì)礦井實(shí)物采用三維的數(shù)據(jù)模型和數(shù)據(jù)結(jié)構(gòu)表示。礦井虛擬環(huán)境模塊采用一系列的虛擬現(xiàn)實(shí)技術(shù)構(gòu)建虛擬的礦井環(huán)境,使用戶產(chǎn)生身臨其境的感覺(jué),并能與虛擬環(huán)境進(jìn)行交互。礦井下漫游主要包括:
1)巷道漫游模塊
用戶在巷道里進(jìn)行自由漫游,并且把控制權(quán)交到用戶手中,使其具有很強(qiáng)的漫游感,了解主要巷道的情況,在不下井的情況下清楚地了解到井下巷道的布置狀況,為以后的工作生產(chǎn)以及安全培訓(xùn)提供了優(yōu)越的條件。
2)開采工作面模塊
動(dòng)態(tài)模擬出開采工作面的工作情況,使用戶了解礦山穿孔、爆破等階段的情況,起到教學(xué)培訓(xùn)的作用
3)運(yùn)輸作業(yè)模塊
動(dòng)態(tài)模擬出電機(jī)車運(yùn)輸?shù)教嵘藁\,以及提升的過(guò)程。在這個(gè)過(guò)程中,用戶可以從各種角度觀察整個(gè)過(guò)程,并且通過(guò)鍵盤來(lái)控制各個(gè)設(shè)備的運(yùn)動(dòng)。
Vega是Multigen-Paradigm公司推出的應(yīng)用于虛擬現(xiàn)實(shí)、實(shí)時(shí)仿真及其它可視化領(lǐng)域的高性能軟件環(huán)境。它能夠?yàn)橛脩籼峁┨幚韽?fù)雜仿真事件的便捷手段,用戶可以簡(jiǎn)單迅速地創(chuàng)建、編輯、運(yùn)行復(fù)雜的仿真應(yīng)用。Vega主要包括2個(gè)部分:其一是被稱為L(zhǎng)ynx的圖形用戶界面工具箱;另外一個(gè)是基于C語(yǔ)言的函數(shù)庫(kù)。
本系統(tǒng)在Vega體系結(jié)構(gòu)的基礎(chǔ)上采用2層軟件結(jié)構(gòu)設(shè)計(jì)模式,底層為Vega/OpenGL Performer虛擬現(xiàn)實(shí)功能的實(shí)現(xiàn),上層為程序界面和數(shù)據(jù)庫(kù)查詢。這兩層通過(guò)公共結(jié)構(gòu)g_pVrInterface實(shí)現(xiàn)信息交換,軟件結(jié)構(gòu)清晰明了,增強(qiáng)了程序的健壯性。
井下巷道繪制的實(shí)現(xiàn)步驟是:①首先從數(shù)據(jù)庫(kù)中讀取繪制井下巷道的控制數(shù)據(jù)(如控制巷道斷面形狀的參數(shù)、巷道中心線等);②根據(jù)讀取的巷道控制數(shù)據(jù),利用OpenGL語(yǔ)言繪制出井下巷道(其中包括巷道法向量的計(jì)算、巷道紋理坐標(biāo)的計(jì)算等)。
根據(jù)淮南礦業(yè)集團(tuán)某礦井下巷道拓?fù)浣Y(jié)構(gòu),依據(jù)上述煤礦井下三維幾何模型構(gòu)建方法,繪制出了該礦井下巷道的三維視圖,如圖3所示,圖4是模擬井下瓦斯抽放的三維圖。由其三維幾何模型數(shù)據(jù)庫(kù),采用成熟的Vega虛擬現(xiàn)實(shí)軟件利用VC調(diào)用函數(shù)庫(kù)對(duì)Lynx生成的ADF文件進(jìn)行編程構(gòu)建了煤礦井下虛擬現(xiàn)實(shí)情景的漫游畫面和煤礦井下虛擬工作面,分別如圖5和圖6所示。
本文將三維可視化技術(shù)和虛擬現(xiàn)實(shí)技術(shù)應(yīng)用在復(fù)雜的煤礦井下環(huán)境中,對(duì)煤礦三維建模方法進(jìn)行了研究,采用OpenGL對(duì)煤礦井下情景進(jìn)行三維建模,并設(shè)計(jì)了煤礦井下三維漫游系統(tǒng),對(duì)煤礦安全生產(chǎn)、有效管理、高效運(yùn)行等提供了一種新的思路。
[1]段瑩,管濤,盧金婷.OpenGL在虛擬現(xiàn)實(shí)技術(shù)中的應(yīng)用研究[J].軟件導(dǎo)刊,2012(6).
[2]馮芬君,劉靜宇,王維.虛擬現(xiàn)實(shí)技術(shù)在環(huán)藝測(cè)繪課程中的應(yīng)用[J].科技信息,2012(18).
[3]莊惠陽(yáng),陳能,朱寧.虛擬現(xiàn)實(shí)導(dǎo)游系統(tǒng)的開發(fā)與應(yīng)用[J].中國(guó)教育信息化,2012(7).
[4]http://www.longruan.com/htmls/cpjs/mzgl_3.asp.
[5]劉永先,侯先敏.礦井三維虛擬現(xiàn)實(shí)系統(tǒng)研究及應(yīng)用[J].煤炭科技,2010,(4).
[6]武亞峰,林在康,楊曉威,程海星,顧洪江.基于虛擬現(xiàn)實(shí)技術(shù)的數(shù)字化礦井系統(tǒng)[J].煤炭科技,2009(1).
[7]曾偉,姜本琦,鄭確.基于虛擬現(xiàn)實(shí)技術(shù)的礦井人員培訓(xùn)系統(tǒng)[J].煤礦安全,2008(5).
[8]王德永,仵自連,杜衛(wèi)新.虛擬現(xiàn)實(shí)技術(shù)在礦井生產(chǎn)仿真系統(tǒng)中的應(yīng)用[J].煤礦機(jī)械,2006(10).
[9]韓文驥,王文平,韓可琦,萇道方.基于虛擬現(xiàn)實(shí)技術(shù)的礦井生產(chǎn)系統(tǒng)可控可視化研究[J].能源技術(shù)與 管理,2005(6).
[10]程結(jié)海,張震宇,萬(wàn)剛.基于虛擬現(xiàn)實(shí)技術(shù)的三維礦井漫游系統(tǒng)研究[J].礦業(yè)研究與開發(fā),2005(4).