• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于OpenGL的虛擬礦山系統(tǒng)的研究

      2014-04-29 00:00:00董林辛全倉(cāng)劉玉霞

      摘 要:利用計(jì)算機(jī)虛擬現(xiàn)實(shí)技術(shù)實(shí)現(xiàn)礦井三維可視化是虛擬礦山系統(tǒng)的重點(diǎn),分析了基于OpenGL開發(fā)虛擬礦山系統(tǒng)的基本原理和關(guān)鍵技術(shù),通過(guò)改進(jìn)的OpenGL選擇算法,實(shí)現(xiàn)了選擇三維圖形對(duì)象,獲取屬性信息和進(jìn)行空間查詢分析,使用OpenGL紋理映射技術(shù),使巷道的顯示更有真實(shí)感,對(duì)礦山設(shè)備分類建立了三維模型,基于此技術(shù)研究,構(gòu)建了一個(gè)小型的虛擬礦山系統(tǒng)。

      關(guān)鍵詞:OpenGL;虛擬礦山;紋理映射;選擇

      中圖分類號(hào):TP311.1

      虛擬現(xiàn)實(shí)技術(shù)是指利用人工智能、計(jì)算機(jī)圖形學(xué)、人機(jī)接口、多媒體、計(jì)算機(jī)網(wǎng)絡(luò)及電子、機(jī)械、視聽等高新技術(shù),模擬人在特定環(huán)境中的視、聽、動(dòng)等行為的高級(jí)人機(jī)交互技術(shù)[1]。

      OpenGL是由SGI公司推出的獨(dú)立于操作系統(tǒng)和硬件環(huán)境的開放式三維圖形庫(kù),作為一種用于實(shí)時(shí)3D圖形的工業(yè)標(biāo)準(zhǔn),已經(jīng)得到廣泛的認(rèn)可和接受。OpenGL具有強(qiáng)大的圖形功能和良好的跨平臺(tái)移植能力,目前已被廣泛應(yīng)用于可視化技術(shù)、實(shí)體造型、模擬仿真等諸多領(lǐng)域[2]。

      利用計(jì)算機(jī)虛擬現(xiàn)實(shí)技術(shù)實(shí)現(xiàn)礦井三維可視化是虛擬礦山系統(tǒng)的重點(diǎn),本文研究分析了基于OpenGL開發(fā)虛擬礦山系統(tǒng)的基本原理和關(guān)鍵技術(shù)。

      1 三維圖形對(duì)象的選擇

      在基于OpenGL礦山三維可視化的基礎(chǔ)上,實(shí)現(xiàn)通過(guò)選擇三維圖形對(duì)象,獲取圖形對(duì)應(yīng)的屬性信息,進(jìn)行空間查詢和分析。

      根據(jù)虛擬礦山系統(tǒng)的需求分析,需要完成以下功能:在三維顯示圖形上,煤層或地表上任一點(diǎn)的三維坐標(biāo)的獲取,應(yīng)力云圖上任一點(diǎn)的應(yīng)力值的獲取,使用鼠標(biāo)點(diǎn)擊巷道、工作面、設(shè)備等三維模型,可以獲得其對(duì)應(yīng)的屬性信息。關(guān)鍵是解決在已經(jīng)渲染至窗口的三維場(chǎng)景中,使用鼠標(biāo)選擇三維對(duì)象的問(wèn)題。

      OpenGL提供了選擇與反饋機(jī)制來(lái)滿足用戶使用鼠標(biāo)交互操作三維圖形的需要。選擇與反饋機(jī)制有許多缺陷,難以滿足虛擬礦山系統(tǒng)中選擇三維對(duì)象的要求,因此采用改進(jìn)的OpenGl選擇算法,其主要思想如下:

      在OpenGL中,視野的邊界所圍成的幾何體是一個(gè)標(biāo)準(zhǔn)的平截頭體(Frustum),視錐的錐頂就是視點(diǎn),如圖1所示,遠(yuǎn)裁剪面ABCD和近裁剪面A1B1C1D1構(gòu)成了平截頭體,加上虛線部分就是視錐,頂點(diǎn)O就是攝像機(jī)所在的視點(diǎn)。我們點(diǎn)擊屏幕上的某一點(diǎn),也就確定了屏幕上從O點(diǎn)出發(fā)的射線OP,點(diǎn)P在遠(yuǎn)裁剪面ABCD,我們稱OP選擇射線,反映到視錐中,就是選中了所有的從點(diǎn)P到點(diǎn)P1的點(diǎn),點(diǎn)P1在近裁剪面A1B1C1D1上。

      因此根據(jù)窗口的XY坐標(biāo),只能獲得一條出發(fā)自O(shè)點(diǎn)的選擇射線,并不能得到用戶想要的點(diǎn)在這條射線上的確切位置。只有通過(guò)Z坐標(biāo),才能確定選擇的點(diǎn)在射線上的位置。假如用戶點(diǎn)擊了屏幕上的點(diǎn)(200,200),通過(guò)OpenGL相關(guān)的方法可求得P、P1點(diǎn),即可得到射線OP,然后遍歷場(chǎng)景中的所有三維對(duì)象(場(chǎng)景中三維對(duì)象的管理采用了八叉樹數(shù)據(jù)結(jié)構(gòu),提高了遍歷速度),與射線OP求交點(diǎn),如果找到一個(gè)相交的三維對(duì)象,就表示此三維對(duì)象是要選中的對(duì)象,選中點(diǎn)為交點(diǎn),如果找到多個(gè)相交的三維對(duì)象,比較交點(diǎn)的z坐標(biāo),即可確定與視點(diǎn)的遠(yuǎn)近,選擇符合條件的作為選擇的對(duì)象,例如,選離視點(diǎn)最近的三維對(duì)象作為選擇的對(duì)象。

      2 巷道三維渲染

      2.1 巷道屬性表達(dá)

      在構(gòu)建了巷道的三維模型之后,為了使巷道的漫游更真實(shí),還需考慮煤礦巷道的具有多種空間形態(tài)和功能,即有不同的屬性。常見(jiàn)的巷道斷面形狀主要有直壁拱形、梯形、矩形等。采用統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)和算法對(duì)直壁拱形、梯形、矩形斷面進(jìn)行建模,這三種斷面都統(tǒng)一看作是多邊形,這樣就簡(jiǎn)化了斷面的建模。巷道具有多種功能,例如采煤巷道、運(yùn)輸巷道、儲(chǔ)水巷道(水倉(cāng))等,有時(shí)一條巷道有多種用途,也就具有多重功能[3]。使用OpenGL三維可視化技術(shù),可以使用紋理、顏色、光照等可視化表達(dá)屬性來(lái)顯示巷道,將可視化表達(dá)屬性與巷道的功能、支護(hù)方式等巷道屬性關(guān)聯(lián)起來(lái)。例如,可使用紋理來(lái)表達(dá)錨網(wǎng)支護(hù)和U型鋼支護(hù)的不同外觀。

      2.2 巷道紋理映射

      在巷道的三維顯示中,使用紋理映射技術(shù),使巷道的顯示更有真實(shí)感,并能表示出巷道的屬性,例如要模擬巷道的混凝土內(nèi)壁表面,首先,做好混凝土位圖,然后通過(guò)紋理映射覆蓋到巷道的內(nèi)壁表面,這樣巷道內(nèi)壁就變成了混凝土材質(zhì);例如要模擬巷道的錨網(wǎng)支護(hù),可以將錨網(wǎng)照片做成位圖,使用紋理映射就可以將其覆蓋到巷道的內(nèi)壁表面,這樣就可以比較真實(shí)地模擬錨網(wǎng)支護(hù)的場(chǎng)景。

      概括地說(shuō),使用紋理映射的一般步驟為:定義紋理貼圖、控制紋理、說(shuō)明紋理貼圖方式,定義紋理坐標(biāo)等。下面以使用紋理映射實(shí)現(xiàn)巷道內(nèi)壁混凝土材質(zhì)為例,說(shuō)明定義紋理坐標(biāo)的過(guò)程:

      使用glTexCoord2f設(shè)置紋理坐標(biāo),glTexCoord2f的第一個(gè)參數(shù)是X坐標(biāo),0.0f是紋理的左側(cè),0.5f是紋理的中點(diǎn),1.0f是紋理的右側(cè)。glTexCoord2f的第二個(gè)參數(shù)是Y坐標(biāo),0.0f是紋理的底部。0.5f是紋理的中點(diǎn),1.0f是紋理的頂部。一段巷道的三維模型,是由多個(gè)四邊形組成,由于巷道長(zhǎng)度較長(zhǎng),紋理要沿巷道重復(fù)多次才能覆蓋組成巷道的四邊形,紋理坐標(biāo)必須根據(jù)巷道長(zhǎng)度計(jì)算,設(shè)拱形巷道長(zhǎng)度length,巷道側(cè)壁高度height,巷道寬度為width,設(shè)yy=1。

      巷道頂面紋理坐標(biāo)計(jì)算:巷道頂面有8個(gè)四邊形組成,假設(shè)巷道的長(zhǎng)度為設(shè)置第i(i從0到7)個(gè)四邊形4個(gè)頂點(diǎn)的紋理坐標(biāo)如下:

      3 礦山設(shè)備三維建模

      巷道內(nèi)部包含各種設(shè)備,要實(shí)現(xiàn)巷道內(nèi)漫游,必須對(duì)這些設(shè)備進(jìn)行三維建模。巷道內(nèi)設(shè)包備括軌道、傳送帶、電纜、管道、機(jī)車、采煤機(jī)等。根據(jù)巷道內(nèi)設(shè)備的位置確定和形狀,可以分為兩類:一種是線狀物,如軌道、管道、電纜等,另一類是點(diǎn)狀物,如機(jī)車、采煤機(jī)等。對(duì)于點(diǎn)狀物設(shè)備,可以先使用專門的三維建模工具軟件構(gòu)建模型,然后加載到漫游軟件中,放置到指定位置,并進(jìn)行適當(dāng)旋轉(zhuǎn),調(diào)整方位,對(duì)于線狀設(shè)備,可以類比繪制巷道體的算法進(jìn)行建模,直接使用OpenGL技術(shù)進(jìn)行繪制、渲染。如圖2所示,巷道中的管道、電纜都是線狀物,使用OpenGL直接建立三維模型。

      使用OpenGL技術(shù),可以繪制、渲染任何一個(gè)三維模型。但對(duì)應(yīng)巷道內(nèi)的點(diǎn)狀物設(shè)備,繪制十分復(fù)雜,對(duì)于這樣的情況,使用OpenGL代碼來(lái)創(chuàng)建模型顯得即復(fù)雜又不直觀,難以調(diào)試。因此,先使用專門的建模工具M(jìn)aya創(chuàng)建模型,再將模型導(dǎo)出為特定的格式,然后在系統(tǒng)中載入這個(gè)模型。過(guò)程如下:

      (1)使用建模工具M(jìn)aya創(chuàng)建模型;(2)將模型輸出為OBJ格式;(3)載入OBJ模型,在程序中放置到指定位置,并進(jìn)行適當(dāng)旋轉(zhuǎn),調(diào)整方位,渲染模型,確定模型的位置與方向是關(guān)鍵。

      4 結(jié)束語(yǔ)

      探討了基于OpenGL基于開發(fā)虛擬礦山系統(tǒng)的基本原理和一些關(guān)鍵技術(shù),如OpenGL選擇算法的改進(jìn),紋理映射技術(shù),載入Maya模型等,并基于這些技術(shù)研究,構(gòu)建了一個(gè)小型的虛擬礦山系統(tǒng),證明基于OpenGL開發(fā)虛擬礦山系統(tǒng)是可行的。

      參考文獻(xiàn):

      [1]吳立新.3維地學(xué)模擬與虛擬礦山系統(tǒng)[J].測(cè)繪學(xué)報(bào),2002(31).

      [2]湯彬.基于OpenGl的交互技術(shù)研究[J].上海工程技術(shù)大學(xué)學(xué)報(bào),2006(20).

      [3]王寶山,魏占營(yíng).煤礦虛擬環(huán)境的巷道3維建模研究[J].測(cè)繪學(xué)院學(xué)報(bào),2005(22).

      作者簡(jiǎn)介:董林(1971-),男,講師,研究方向:計(jì)算機(jī)應(yīng)用技術(shù)。

      作者單位:山東水利職業(yè)學(xué)院,山東日照 276826

      仁化县| 常熟市| 巴楚县| 上饶县| 平利县| 谢通门县| 麻阳| 固镇县| 织金县| 兴山县| 伊金霍洛旗| 吉木萨尔县| 德州市| 日土县| 六安市| 双柏县| 景洪市| 康马县| 台中市| 财经| 永德县| 桑植县| 石门县| 汶上县| 武邑县| 南和县| 建德市| 葫芦岛市| 漳州市| 多伦县| 孙吴县| 南川市| 平南县| 明水县| 达拉特旗| 镶黄旗| 托克逊县| 康平县| 巢湖市| 临夏县| 抚州市|