国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

三維場(chǎng)景中虛擬漫游路徑的優(yōu)化設(shè)計(jì)方法

2015-05-05 09:48:11修春華孫秀娟車德福高廣亮
金屬礦山 2015年4期
關(guān)鍵詞:碰撞檢測(cè)視點(diǎn)漫游

修春華 孫秀娟 車德福 高廣亮

(1.東北大學(xué)資源與土木工程學(xué)院,遼寧 沈陽(yáng) 110819;2.山東省地質(zhì)測(cè)繪院,山東 濟(jì)南 250003)

·數(shù)字礦山·

三維場(chǎng)景中虛擬漫游路徑的優(yōu)化設(shè)計(jì)方法

修春華1孫秀娟2車德福1高廣亮1

(1.東北大學(xué)資源與土木工程學(xué)院,遼寧 沈陽(yáng) 110819;2.山東省地質(zhì)測(cè)繪院,山東 濟(jì)南 250003)

場(chǎng)景漫游路徑的優(yōu)化設(shè)計(jì)是三維場(chǎng)景流暢性的關(guān)鍵。首先,根據(jù)OpenGL相機(jī)控制原理,定義了路徑數(shù)據(jù)格式,包括路徑點(diǎn)坐標(biāo)等基本屬性。然后基于三維模型的特點(diǎn),提出了用路徑點(diǎn)交互拾取、手動(dòng)漫游和地下巷道中心線轉(zhuǎn)換方法獲取路徑,并通過(guò)路徑拼接、路徑擬合和碰撞檢測(cè)方法對(duì)獲取的路徑進(jìn)行優(yōu)化。最后實(shí)現(xiàn)了手動(dòng)和自動(dòng)2種方式控制漫游。實(shí)驗(yàn)結(jié)果表明,這種方法簡(jiǎn)化了路徑的創(chuàng)建步驟,達(dá)到了理想的漫游效果。

漫游路徑 三維模型 三維場(chǎng)景 優(yōu)化設(shè)計(jì)

虛擬現(xiàn)實(shí)(virtual reality VR)技術(shù)是20世紀(jì)末發(fā)展起來(lái)的,它是一項(xiàng)集計(jì)算機(jī)、傳感與測(cè)量、仿真技術(shù)于一體,利用計(jì)算機(jī)生成的一種虛擬環(huán)境,通過(guò)多種感覺(jué),使用戶身臨其境,并能夠與之發(fā)生交互作用[1]。虛擬漫游是虛擬現(xiàn)實(shí)技術(shù)的重要應(yīng)用,它將真實(shí)的場(chǎng)景在屏幕上顯示出來(lái),實(shí)現(xiàn)了對(duì)三維景觀的數(shù)字化和虛擬化。礦山企業(yè)具有生產(chǎn)系統(tǒng)復(fù)雜、設(shè)備設(shè)施多、生產(chǎn)作業(yè)環(huán)境惡劣等特點(diǎn),自然災(zāi)害和生產(chǎn)事故的危險(xiǎn)因素始終影響和制約著礦山的安全生產(chǎn)。作為數(shù)字礦山的一部分,對(duì)模型進(jìn)行三維建模仿真并提供相應(yīng)的虛擬漫游平臺(tái),對(duì)礦山的安全生產(chǎn)和現(xiàn)代化發(fā)展具有十分重要的意義[2-4]。

在增強(qiáng)交互功能,提高三維地理場(chǎng)景的逼真與精細(xì)程度的同時(shí),漫游路徑的設(shè)計(jì)成為了虛擬漫游最重要的內(nèi)容。如何有效提高交互式三維地理場(chǎng)景中的漫游速度,給用戶以高速、流暢的操作感受,成為了虛擬漫游技術(shù)發(fā)展中的關(guān)鍵問(wèn)題之一。優(yōu)化漫游路徑是有效解決以上問(wèn)題的一個(gè)突破口。本研究著重研究路徑的數(shù)據(jù)格式及其在此基礎(chǔ)上的獲取方式和優(yōu)化設(shè)計(jì)方法,實(shí)現(xiàn)上下自動(dòng)和手動(dòng)2種方式控制漫游。并通過(guò)具體應(yīng)用,展示了不同場(chǎng)景的漫游效果。

1 漫游路徑數(shù)據(jù)格式設(shè)計(jì)

漫游路徑即三維漫游過(guò)程中所遵循的路線,是由用戶指定的一系列采樣點(diǎn)按照地形的起伏依次連接構(gòu)成的控制曲線,為一系列三維空間坐標(biāo)點(diǎn)的集合,可以把這些點(diǎn)稱為漫游路徑點(diǎn),簡(jiǎn)稱為路徑點(diǎn)。在OpenGL中,漫游過(guò)程是對(duì)相機(jī)和視角不斷移動(dòng)和變化的過(guò)程,相機(jī)位置即是路徑點(diǎn)所在空間位置,對(duì)視角的控制還需要另外一些參數(shù),包括相機(jī)的旋轉(zhuǎn)和俯仰角度。根據(jù)以上分析,本研究對(duì)路徑點(diǎn)的數(shù)據(jù)格式定義如表1。

表1 路徑點(diǎn)信息表

當(dāng)前后2個(gè)路徑點(diǎn)之間的距離大于視野步長(zhǎng)時(shí),沿著俯仰和旋轉(zhuǎn)角度、距離視野步長(zhǎng)之外的點(diǎn)即為視線的另一端。根據(jù)用戶要求,靈活改變?nèi)烁?,使觀察者的視野高度不斷發(fā)生變化。當(dāng)一條漫游路徑在設(shè)計(jì)好后,可以保存在數(shù)據(jù)庫(kù)中,為漫游路徑的讀取、優(yōu)化、拼接等操作提供后臺(tái)支持。

2 路徑獲取

本研究中漫游路徑除了可以直接從數(shù)據(jù)庫(kù)中讀取外,還有以下3種獲取方式:

(1)交互拾取路徑點(diǎn)(如圖1)。以三維場(chǎng)景中的模型為參照物,通過(guò)三維空間交互技術(shù),利用鼠標(biāo)點(diǎn)選可以在屏幕上獲取一系列三維空間點(diǎn),連接這些點(diǎn),形成1條空間曲線即為1條漫游路徑。鼠標(biāo)點(diǎn)選獲取1個(gè)路徑點(diǎn)的同時(shí),可以為其添加旋轉(zhuǎn)角、俯仰角和漫游速度屬性。

圖1 交互拾取路徑點(diǎn)

(2)手動(dòng)漫游生成。手動(dòng)漫游即通過(guò)鼠標(biāo)和鍵盤控制視點(diǎn)的行走,其軌跡即是1條路徑。如果想要記錄下此條路徑,需要分別對(duì)漫游的開(kāi)始和結(jié)束做標(biāo)記,并根據(jù)用戶需要對(duì)當(dāng)前位置進(jìn)行路徑點(diǎn)采樣。手動(dòng)漫游的過(guò)程是一個(gè)沒(méi)有規(guī)律的過(guò)程,特別是在空曠地帶沒(méi)參照物或者參照物距離較遠(yuǎn)的情況下,采樣點(diǎn)很有可能會(huì)有重疊或者前后距離十分不均勻且生成的路徑比較曲折,所以需要對(duì)手動(dòng)生成的路徑進(jìn)行編輯和修改。手動(dòng)漫游獲取路徑方便快捷,但是在盤旋重疊比較多的區(qū)域后期修改會(huì)比較繁瑣。但就總體而言,在漫游路徑較短、路況較為簡(jiǎn)單的情況下,手動(dòng)漫游獲取路徑不失為最好的一種方法。

(3)地下巷道中心線轉(zhuǎn)換。在進(jìn)行地下巷道漫游時(shí),因?yàn)榈叵孪锏罃?shù)量比較多且在地下,再用單純的路徑點(diǎn)拾取和手動(dòng)漫游獲取路徑就會(huì)變得很繁瑣和艱難。充分利用各地下巷道的中心線信息,且將其轉(zhuǎn)換為路徑成為一個(gè)較為簡(jiǎn)便的方法。通過(guò)空間三維交互,對(duì)單個(gè)地下巷道或多個(gè)地下巷道(必須相連)的選取,然后對(duì)選取的地下巷道進(jìn)行漫游,大大節(jié)省了漫游路徑的創(chuàng)建時(shí)間,同時(shí)增加了路徑漫游的靈活性。通過(guò)最短路徑搜索,還可以實(shí)現(xiàn)地下巷道網(wǎng)絡(luò)中的點(diǎn)對(duì)點(diǎn)最近漫游。

在對(duì)路徑進(jìn)行編輯和修改時(shí),應(yīng)盡量遵循以下原則:①在直線漫游階段,路徑點(diǎn)應(yīng)盡量稀疏,而在彎道處應(yīng)盡量密集;②旋轉(zhuǎn)角度值應(yīng)盡可能等于當(dāng)前路徑點(diǎn)和下一個(gè)路徑點(diǎn)所組成線段的方位角;③在彎道處,每個(gè)路徑點(diǎn)的旋轉(zhuǎn)角度值應(yīng)均勻過(guò)渡(增加或者減少);④在上坡(上樓梯)或者下坡(下樓梯)時(shí),俯仰角度值要相應(yīng)地增加或者減少;⑤在彎道處或者某些重點(diǎn)展示區(qū)域,漫游速度可以適當(dāng)放緩。采用路徑點(diǎn)拾取獲得整個(gè)漫游路徑的方法,局限于三維模型參照物清晰且路徑點(diǎn)能夠在某一角度不被模型遮擋的情況,所以適用于室外空曠地帶,比如廣場(chǎng)、室外道路等場(chǎng)地。

3 路徑優(yōu)化

在漫游路徑實(shí)現(xiàn)的過(guò)程中,可能存在一些過(guò)渡不平滑,會(huì)產(chǎn)生突跳感覺(jué)的地方,特別是在彎道處。在室內(nèi)或者地下巷道漫游時(shí),手動(dòng)操作往往會(huì)跑出墻外或者掉到地下,這嚴(yán)重影響了路徑漫游的逼真和自然。這里從路徑的自由拼接、路徑的擬合和碰撞檢測(cè)幾個(gè)方面著手,對(duì)漫游路徑的優(yōu)化方法進(jìn)行了研究。

(1)路徑拼接。漫游路徑的拼接技術(shù)可以快速地提高路徑設(shè)計(jì)效率,包括路徑的打斷、連接、插入等操作,其基本原理是利用路徑中路徑點(diǎn)的索引對(duì)多條路徑的路徑點(diǎn)進(jìn)行組合,并對(duì)交叉點(diǎn)或者連接點(diǎn)的旋轉(zhuǎn)和俯仰角度進(jìn)行重新計(jì)算。如圖2所示,路徑1和路徑2經(jīng)過(guò)打斷和組合形成一條新路徑3。

圖2 路徑組合1

針對(duì)盤旋路徑,可以將第一層上的所有路徑點(diǎn)直接復(fù)制到其他層,為每個(gè)路徑點(diǎn)的高程值加上層高,然后組合起來(lái)就是一整條上下樓梯的路徑,如圖3所示。

圖3 路徑組合2

(2)路徑擬合。當(dāng)漫游過(guò)程中彎道較多,修改起來(lái)又比較麻煩時(shí),采用二次B樣條曲線對(duì)等值線進(jìn)行光滑處理,使路徑漫游更加平滑自然。B樣條曲線定義為給定m+n+1個(gè)平面或空間頂點(diǎn)Pi(i=0,1,…,m+n),稱n次參數(shù)曲線段

(1)

為第k段n次B樣條曲線段,k=0,1,…,m;這些曲線段的全體稱為n次B樣條曲線,其頂點(diǎn)Pi(i=0,1,…,m+n)所組成的多邊形稱為B樣條曲線的特征多邊形。 其中,基函數(shù)Gi,n(t) 定義為

(2)

t∈[0,1],i=0,1,…,n,取n=2,得到二次B樣條曲線的基函數(shù)如下:

(3)

(3)碰撞檢測(cè)。在虛擬環(huán)境中,由于用戶的交互和物體的運(yùn)動(dòng),物體間經(jīng)常可能發(fā)生碰撞,此時(shí)為保持環(huán)境的真實(shí)性,需要及時(shí)檢測(cè)到這些碰撞,并計(jì)算相應(yīng)的碰撞反應(yīng),對(duì)繪制結(jié)果進(jìn)行更新,否則物體間會(huì)發(fā)生穿透現(xiàn)象,破壞虛擬環(huán)境的真實(shí)感和用戶的沉浸感。如圖4,本研究采用基于視線的碰撞檢測(cè)算法,實(shí)現(xiàn)快速有效的碰撞檢測(cè)及其處理。在對(duì)模型表面細(xì)致歸納分類的基礎(chǔ)上,系統(tǒng)以巷道(建筑物)頂面、側(cè)面和底面為碰撞檢測(cè)對(duì)象的碰撞檢測(cè)算法,如果在空曠地帶則只需以路面為檢測(cè)對(duì)象,而當(dāng)上樓梯時(shí)需要將建筑物底面替換為樓梯斜面。因?yàn)樗心P捅砻娑际怯腥敲娼M成的,所以碰撞檢測(cè)算法的基本原理就是基于視線(視點(diǎn)與目標(biāo)點(diǎn)間的連線)的碰撞檢測(cè)算法,實(shí)現(xiàn)快速有效的碰撞檢測(cè)及其處理,當(dāng)視線與障礙物(地面或者墻面)發(fā)生碰撞時(shí),視點(diǎn)位置不變,目標(biāo)點(diǎn)移動(dòng)到滑動(dòng)點(diǎn)位置。

圖4 碰撞檢測(cè)原理

4 路徑漫游實(shí)現(xiàn)與控制

路徑漫游的控制與操作是通過(guò)OpenGL實(shí)用庫(kù)函數(shù)gluLookAt (Position.x,Position.y,Position.z,View.x,View.y,View.z,Up.x,Up.y,Up.z)設(shè)置視點(diǎn)投影變換來(lái)實(shí)現(xiàn)的,其中Position是視點(diǎn)位置,View是目標(biāo)點(diǎn)位置,Up為視點(diǎn)向上的方向。

4.1 手動(dòng)漫游

手動(dòng)漫游主要是通過(guò)鍵盤控制,鍵盤輸入與視點(diǎn)控制對(duì)應(yīng)如表2所示。

表2 鍵盤輸入與視點(diǎn)控制對(duì)應(yīng)表

俯/仰視的原理是通過(guò)改變視線與水平面的夾角,重新計(jì)算View的大小,左/右轉(zhuǎn)的原理是通過(guò)改變視線方位角,重新計(jì)算View的大小,以上2個(gè)過(guò)程中視點(diǎn)位置不變,視線方向發(fā)生變化。剩余操作都是通過(guò)改變Position,從而改變View,而視線方向不發(fā)生變化。前進(jìn)的原理是Position加上沿視線方向的x、y坐標(biāo)增量;后退的原理是Position加上沿視線反方向的x、y坐標(biāo)增量;向左移動(dòng)的原理是Position加上沿視線垂直左方向的x、y坐標(biāo)增量;向右移動(dòng)的原理是Position加上沿視線垂直右方向的x、y坐標(biāo)增量;上升原理是直接增大Position的z坐標(biāo)大?。幌陆翟硎侵苯訙p小Position的z坐標(biāo)大小。所有過(guò)程,都可以通過(guò)+Shift加速,通過(guò)+Alt減速。

4.2 自動(dòng)漫游

自動(dòng)漫游的算法原理如圖5所示,其總體思想是不斷計(jì)算下一個(gè)視點(diǎn)的位置并判斷它和下一個(gè)路徑點(diǎn)的前后關(guān)系。

圖5 自動(dòng)漫游算法原理

假設(shè)視野步長(zhǎng)d,自動(dòng)漫游的具體算法步驟如下:

Step1,從第一個(gè)路徑點(diǎn)開(kāi)始漫游,作為第一個(gè)視點(diǎn)位置;

Step2,計(jì)算沿視線方向距離當(dāng)前視點(diǎn)d的點(diǎn)坐標(biāo),作為下一次視點(diǎn)的位置,其中這個(gè)視點(diǎn)的俯仰角度、旋轉(zhuǎn)角度以及漫游速度都等于上一個(gè)視點(diǎn)的對(duì)應(yīng)值;

Step3,搜索下一個(gè)路徑點(diǎn),計(jì)算當(dāng)前視點(diǎn)與下一個(gè)路徑點(diǎn)的距離,如果此距離小于d,則下一個(gè)視點(diǎn)直接跳到下一個(gè)路徑點(diǎn),否則繼續(xù)Step2;

Step4,循環(huán)Step3,直到下一個(gè)路徑點(diǎn)為最后一個(gè)路徑點(diǎn),此路徑漫游結(jié)束。

根據(jù)以上算法步驟,路徑漫游加速的原理就是增大漫游速度從而加大d的大小,相反,減速則是減小d的大??;后退的原理是在計(jì)算下一個(gè)視點(diǎn)(或者搜索下一個(gè)路徑點(diǎn))時(shí)是沿著視線的反方向,而暫停的原理則是通過(guò)一個(gè)全局變量記錄當(dāng)前視點(diǎn)的位置,在開(kāi)始的時(shí)候再以此視點(diǎn)作為出發(fā)點(diǎn)開(kāi)始漫游。

5 實(shí)驗(yàn)結(jié)果

在Windows環(huán)境下,以VC++和OpenGL為開(kāi)發(fā)工具,創(chuàng)建了一個(gè)基于三維模型的漫游路徑優(yōu)化設(shè)計(jì)模塊。利用該模塊,實(shí)現(xiàn)了地下巷道、工業(yè)廣場(chǎng)室內(nèi)與室外的手動(dòng)和自動(dòng)漫游,驗(yàn)證了上述方法的便捷性和可靠性。圖6為漫游控制工具條按鈕;圖7為創(chuàng)建路徑和打開(kāi)碰撞檢測(cè)按鈕;圖8(a)為井下避災(zāi)硐室漫游效果;圖8(b)為井下采場(chǎng)漫游效果;圖8(c)為工業(yè)廣場(chǎng)室外漫游效果;圖8(d)為工業(yè)廣場(chǎng)室內(nèi)漫游效果。

圖6 漫游控制

圖7 路徑創(chuàng)建

圖8 井上下漫游效果

6 結(jié) 論

研究了基于三維模型的漫游路徑優(yōu)化設(shè)計(jì)方法。實(shí)驗(yàn)結(jié)果表明,基于文中設(shè)計(jì)的漫游路徑數(shù)據(jù)格式,利用路徑點(diǎn)交互拾取、手動(dòng)漫游和地下巷道中心線轉(zhuǎn)換方法獲取路徑,并通過(guò)路徑拼接、路徑擬合和碰撞檢測(cè)方法對(duì)獲取的路徑進(jìn)行優(yōu)化,然后實(shí)現(xiàn)手動(dòng)和自動(dòng)2種方式控制漫游,這種方法在數(shù)據(jù)組織、優(yōu)化算法及流程上都能適應(yīng)地下巷道、工業(yè)廣場(chǎng)建筑物內(nèi)和室外的漫游,可很好地滿足礦山信息化發(fā)展需要。

[1] 李湘德,彭 斌.虛擬現(xiàn)實(shí)技術(shù)發(fā)展綜述[J].技術(shù)與創(chuàng)新管理,2004,25(6):10-14. Li Xiangde,Peng Bin.Analysis on virtual reality[J].Technology and Innovation Management,2004,25(6):10-14.

[2] 吳立新,汪云甲,丁恩杰,等.三論數(shù)字礦山——借力物聯(lián)網(wǎng)保障礦山安全與智能采礦[J].煤炭學(xué)報(bào),2012,37(3):357-365. Wu Lixin,Wang Yunjia,Ding Enjie,et al.Thirdly study on digital mine:serve for mine safety and intellimine with support from IoT[J].Journal of China Coal Society,2012,37(3):357-365.

[3] Zhang Xialin,Wu Chonglong,Weng Zhengping,et al.Research and application of the digital mine software QuantyMine[J].Earth Science-Journal of China University of Geosciences,2010,35(2):302-311.

[4] 車德福,殷作如,張瑞璽,等.井巷工程三維建模及無(wú)縫開(kāi)挖模擬技術(shù)[J].煤炭學(xué)報(bào),2012,37(4):548-552. Che Defu,Yin Zuoru,Zhang Ruixi,et al.The method of 3D modeling for tunnel engineering and the simulation technology of its seamless excavating[J].Journal of China Coal Society,2012,37(4):548-552.

(責(zé)任編輯 石海林)

Optimal Design Method for Virtual Roam Route In 3D Scenes

Xiu Chunhua1Sun Xiujuan2Che Defu1Gao Guangliang1

(1.CollegeofResourcesandCivilEngineering,NortheasternUniversity,Shenyang110819,China;2.GeoogicalSurveying&MappingInstituteofShandongProvince,Jinan250003,China)

The optimization design of scene roaming route is the key to get fluency of 3D scenes.First,according to the OpenGL camera control principle,the path data formats are defined,including the waypoint coordinates and other basic attributes.Then,based on 3D model of coal mine,some wags that waypoint interactive pickup,manual roaming and roadway centerline conversion method are proposed to get route,and optimize the route through the path splicing,path fitting and collision detection method.Finally,roaming control is realized in manual and automatic ways.The experimental results show that this method simplifies the path creation steps and achieves good roaming results.

Roaming route,3D model,3D scene,Optimization

2015-02-04

修春華( 1972—) ,女,實(shí)驗(yàn)師。通訊作者 車德福( 1970—) ,男,教授,博士。

TD178

A

1001-1250(2015)-04-242-04

猜你喜歡
碰撞檢測(cè)視點(diǎn)漫游
全新預(yù)測(cè)碰撞檢測(cè)系統(tǒng)
基于BIM的鐵路信號(hào)室外設(shè)備布置與碰撞檢測(cè)方法
霹靂漫游堂
Unity3D中碰撞檢測(cè)問(wèn)題的研究
NASA漫游記
視點(diǎn)
河南電力(2016年5期)2016-02-06 02:11:24
BIM技術(shù)下的某辦公樓項(xiàng)目管線碰撞檢測(cè)
讓你每天一元錢,物超所值——《今日視點(diǎn)—2014精萃》序
新聞前哨(2015年2期)2015-03-11 19:29:22
兩會(huì)視點(diǎn)
邊走邊看:漫游海底 夢(mèng)想成真
丰城市| 汶川县| 陈巴尔虎旗| 武冈市| 灵宝市| 文登市| 南开区| 太白县| 宿迁市| 珲春市| 化德县| 洛扎县| 迁西县| 无锡市| 彰武县| 深泽县| 乐亭县| 饶阳县| 金山区| 卫辉市| 田阳县| 郓城县| 蕉岭县| 云南省| 新宁县| 洮南市| 耿马| 丰顺县| 绥芬河市| 射阳县| 浪卡子县| 上蔡县| 兴安盟| 凤山县| 清原| 象山县| 洱源县| 阳原县| 和平区| 夏河县| 尼勒克县|