修春華 孫秀娟 車德福 高廣亮
(1.東北大學(xué)資源與土木工程學(xué)院,遼寧 沈陽 110819;2.山東省地質(zhì)測繪院,山東 濟南 250003)
·數(shù)字礦山·
三維場景中虛擬漫游路徑的優(yōu)化設(shè)計方法
修春華1孫秀娟2車德福1高廣亮1
(1.東北大學(xué)資源與土木工程學(xué)院,遼寧 沈陽 110819;2.山東省地質(zhì)測繪院,山東 濟南 250003)
場景漫游路徑的優(yōu)化設(shè)計是三維場景流暢性的關(guān)鍵。首先,根據(jù)OpenGL相機控制原理,定義了路徑數(shù)據(jù)格式,包括路徑點坐標(biāo)等基本屬性。然后基于三維模型的特點,提出了用路徑點交互拾取、手動漫游和地下巷道中心線轉(zhuǎn)換方法獲取路徑,并通過路徑拼接、路徑擬合和碰撞檢測方法對獲取的路徑進行優(yōu)化。最后實現(xiàn)了手動和自動2種方式控制漫游。實驗結(jié)果表明,這種方法簡化了路徑的創(chuàng)建步驟,達到了理想的漫游效果。
漫游路徑 三維模型 三維場景 優(yōu)化設(shè)計
虛擬現(xiàn)實(virtual reality VR)技術(shù)是20世紀(jì)末發(fā)展起來的,它是一項集計算機、傳感與測量、仿真技術(shù)于一體,利用計算機生成的一種虛擬環(huán)境,通過多種感覺,使用戶身臨其境,并能夠與之發(fā)生交互作用[1]。虛擬漫游是虛擬現(xiàn)實技術(shù)的重要應(yīng)用,它將真實的場景在屏幕上顯示出來,實現(xiàn)了對三維景觀的數(shù)字化和虛擬化。礦山企業(yè)具有生產(chǎn)系統(tǒng)復(fù)雜、設(shè)備設(shè)施多、生產(chǎn)作業(yè)環(huán)境惡劣等特點,自然災(zāi)害和生產(chǎn)事故的危險因素始終影響和制約著礦山的安全生產(chǎn)。作為數(shù)字礦山的一部分,對模型進行三維建模仿真并提供相應(yīng)的虛擬漫游平臺,對礦山的安全生產(chǎn)和現(xiàn)代化發(fā)展具有十分重要的意義[2-4]。
在增強交互功能,提高三維地理場景的逼真與精細(xì)程度的同時,漫游路徑的設(shè)計成為了虛擬漫游最重要的內(nèi)容。如何有效提高交互式三維地理場景中的漫游速度,給用戶以高速、流暢的操作感受,成為了虛擬漫游技術(shù)發(fā)展中的關(guān)鍵問題之一。優(yōu)化漫游路徑是有效解決以上問題的一個突破口。本研究著重研究路徑的數(shù)據(jù)格式及其在此基礎(chǔ)上的獲取方式和優(yōu)化設(shè)計方法,實現(xiàn)上下自動和手動2種方式控制漫游。并通過具體應(yīng)用,展示了不同場景的漫游效果。
漫游路徑即三維漫游過程中所遵循的路線,是由用戶指定的一系列采樣點按照地形的起伏依次連接構(gòu)成的控制曲線,為一系列三維空間坐標(biāo)點的集合,可以把這些點稱為漫游路徑點,簡稱為路徑點。在OpenGL中,漫游過程是對相機和視角不斷移動和變化的過程,相機位置即是路徑點所在空間位置,對視角的控制還需要另外一些參數(shù),包括相機的旋轉(zhuǎn)和俯仰角度。根據(jù)以上分析,本研究對路徑點的數(shù)據(jù)格式定義如表1。
表1 路徑點信息表
當(dāng)前后2個路徑點之間的距離大于視野步長時,沿著俯仰和旋轉(zhuǎn)角度、距離視野步長之外的點即為視線的另一端。根據(jù)用戶要求,靈活改變?nèi)烁撸褂^察者的視野高度不斷發(fā)生變化。當(dāng)一條漫游路徑在設(shè)計好后,可以保存在數(shù)據(jù)庫中,為漫游路徑的讀取、優(yōu)化、拼接等操作提供后臺支持。
本研究中漫游路徑除了可以直接從數(shù)據(jù)庫中讀取外,還有以下3種獲取方式:
(1)交互拾取路徑點(如圖1)。以三維場景中的模型為參照物,通過三維空間交互技術(shù),利用鼠標(biāo)點選可以在屏幕上獲取一系列三維空間點,連接這些點,形成1條空間曲線即為1條漫游路徑。鼠標(biāo)點選獲取1個路徑點的同時,可以為其添加旋轉(zhuǎn)角、俯仰角和漫游速度屬性。
圖1 交互拾取路徑點
(2)手動漫游生成。手動漫游即通過鼠標(biāo)和鍵盤控制視點的行走,其軌跡即是1條路徑。如果想要記錄下此條路徑,需要分別對漫游的開始和結(jié)束做標(biāo)記,并根據(jù)用戶需要對當(dāng)前位置進行路徑點采樣。手動漫游的過程是一個沒有規(guī)律的過程,特別是在空曠地帶沒參照物或者參照物距離較遠的情況下,采樣點很有可能會有重疊或者前后距離十分不均勻且生成的路徑比較曲折,所以需要對手動生成的路徑進行編輯和修改。手動漫游獲取路徑方便快捷,但是在盤旋重疊比較多的區(qū)域后期修改會比較繁瑣。但就總體而言,在漫游路徑較短、路況較為簡單的情況下,手動漫游獲取路徑不失為最好的一種方法。
(3)地下巷道中心線轉(zhuǎn)換。在進行地下巷道漫游時,因為地下巷道數(shù)量比較多且在地下,再用單純的路徑點拾取和手動漫游獲取路徑就會變得很繁瑣和艱難。充分利用各地下巷道的中心線信息,且將其轉(zhuǎn)換為路徑成為一個較為簡便的方法。通過空間三維交互,對單個地下巷道或多個地下巷道(必須相連)的選取,然后對選取的地下巷道進行漫游,大大節(jié)省了漫游路徑的創(chuàng)建時間,同時增加了路徑漫游的靈活性。通過最短路徑搜索,還可以實現(xiàn)地下巷道網(wǎng)絡(luò)中的點對點最近漫游。
在對路徑進行編輯和修改時,應(yīng)盡量遵循以下原則:①在直線漫游階段,路徑點應(yīng)盡量稀疏,而在彎道處應(yīng)盡量密集;②旋轉(zhuǎn)角度值應(yīng)盡可能等于當(dāng)前路徑點和下一個路徑點所組成線段的方位角;③在彎道處,每個路徑點的旋轉(zhuǎn)角度值應(yīng)均勻過渡(增加或者減少);④在上坡(上樓梯)或者下坡(下樓梯)時,俯仰角度值要相應(yīng)地增加或者減少;⑤在彎道處或者某些重點展示區(qū)域,漫游速度可以適當(dāng)放緩。采用路徑點拾取獲得整個漫游路徑的方法,局限于三維模型參照物清晰且路徑點能夠在某一角度不被模型遮擋的情況,所以適用于室外空曠地帶,比如廣場、室外道路等場地。
在漫游路徑實現(xiàn)的過程中,可能存在一些過渡不平滑,會產(chǎn)生突跳感覺的地方,特別是在彎道處。在室內(nèi)或者地下巷道漫游時,手動操作往往會跑出墻外或者掉到地下,這嚴(yán)重影響了路徑漫游的逼真和自然。這里從路徑的自由拼接、路徑的擬合和碰撞檢測幾個方面著手,對漫游路徑的優(yōu)化方法進行了研究。
(1)路徑拼接。漫游路徑的拼接技術(shù)可以快速地提高路徑設(shè)計效率,包括路徑的打斷、連接、插入等操作,其基本原理是利用路徑中路徑點的索引對多條路徑的路徑點進行組合,并對交叉點或者連接點的旋轉(zhuǎn)和俯仰角度進行重新計算。如圖2所示,路徑1和路徑2經(jīng)過打斷和組合形成一條新路徑3。
圖2 路徑組合1
針對盤旋路徑,可以將第一層上的所有路徑點直接復(fù)制到其他層,為每個路徑點的高程值加上層高,然后組合起來就是一整條上下樓梯的路徑,如圖3所示。
圖3 路徑組合2
(2)路徑擬合。當(dāng)漫游過程中彎道較多,修改起來又比較麻煩時,采用二次B樣條曲線對等值線進行光滑處理,使路徑漫游更加平滑自然。B樣條曲線定義為給定m+n+1個平面或空間頂點Pi(i=0,1,…,m+n),稱n次參數(shù)曲線段
(1)
為第k段n次B樣條曲線段,k=0,1,…,m;這些曲線段的全體稱為n次B樣條曲線,其頂點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)碰撞檢測。在虛擬環(huán)境中,由于用戶的交互和物體的運動,物體間經(jīng)??赡馨l(fā)生碰撞,此時為保持環(huán)境的真實性,需要及時檢測到這些碰撞,并計算相應(yīng)的碰撞反應(yīng),對繪制結(jié)果進行更新,否則物體間會發(fā)生穿透現(xiàn)象,破壞虛擬環(huán)境的真實感和用戶的沉浸感。如圖4,本研究采用基于視線的碰撞檢測算法,實現(xiàn)快速有效的碰撞檢測及其處理。在對模型表面細(xì)致歸納分類的基礎(chǔ)上,系統(tǒng)以巷道(建筑物)頂面、側(cè)面和底面為碰撞檢測對象的碰撞檢測算法,如果在空曠地帶則只需以路面為檢測對象,而當(dāng)上樓梯時需要將建筑物底面替換為樓梯斜面。因為所有模型表面都是有三角面組成的,所以碰撞檢測算法的基本原理就是基于視線(視點與目標(biāo)點間的連線)的碰撞檢測算法,實現(xiàn)快速有效的碰撞檢測及其處理,當(dāng)視線與障礙物(地面或者墻面)發(fā)生碰撞時,視點位置不變,目標(biāo)點移動到滑動點位置。
圖4 碰撞檢測原理
路徑漫游的控制與操作是通過OpenGL實用庫函數(shù)gluLookAt (Position.x,Position.y,Position.z,View.x,View.y,View.z,Up.x,Up.y,Up.z)設(shè)置視點投影變換來實現(xiàn)的,其中Position是視點位置,View是目標(biāo)點位置,Up為視點向上的方向。
4.1 手動漫游
手動漫游主要是通過鍵盤控制,鍵盤輸入與視點控制對應(yīng)如表2所示。
表2 鍵盤輸入與視點控制對應(yīng)表
俯/仰視的原理是通過改變視線與水平面的夾角,重新計算View的大小,左/右轉(zhuǎn)的原理是通過改變視線方位角,重新計算View的大小,以上2個過程中視點位置不變,視線方向發(fā)生變化。剩余操作都是通過改變Position,從而改變View,而視線方向不發(fā)生變化。前進的原理是Position加上沿視線方向的x、y坐標(biāo)增量;后退的原理是Position加上沿視線反方向的x、y坐標(biāo)增量;向左移動的原理是Position加上沿視線垂直左方向的x、y坐標(biāo)增量;向右移動的原理是Position加上沿視線垂直右方向的x、y坐標(biāo)增量;上升原理是直接增大Position的z坐標(biāo)大??;下降原理是直接減小Position的z坐標(biāo)大小。所有過程,都可以通過+Shift加速,通過+Alt減速。
4.2 自動漫游
自動漫游的算法原理如圖5所示,其總體思想是不斷計算下一個視點的位置并判斷它和下一個路徑點的前后關(guān)系。
圖5 自動漫游算法原理
假設(shè)視野步長d,自動漫游的具體算法步驟如下:
Step1,從第一個路徑點開始漫游,作為第一個視點位置;
Step2,計算沿視線方向距離當(dāng)前視點d的點坐標(biāo),作為下一次視點的位置,其中這個視點的俯仰角度、旋轉(zhuǎn)角度以及漫游速度都等于上一個視點的對應(yīng)值;
Step3,搜索下一個路徑點,計算當(dāng)前視點與下一個路徑點的距離,如果此距離小于d,則下一個視點直接跳到下一個路徑點,否則繼續(xù)Step2;
Step4,循環(huán)Step3,直到下一個路徑點為最后一個路徑點,此路徑漫游結(jié)束。
根據(jù)以上算法步驟,路徑漫游加速的原理就是增大漫游速度從而加大d的大小,相反,減速則是減小d的大?。缓笸说脑硎窃谟嬎阆乱粋€視點(或者搜索下一個路徑點)時是沿著視線的反方向,而暫停的原理則是通過一個全局變量記錄當(dāng)前視點的位置,在開始的時候再以此視點作為出發(fā)點開始漫游。
在Windows環(huán)境下,以VC++和OpenGL為開發(fā)工具,創(chuàng)建了一個基于三維模型的漫游路徑優(yōu)化設(shè)計模塊。利用該模塊,實現(xiàn)了地下巷道、工業(yè)廣場室內(nèi)與室外的手動和自動漫游,驗證了上述方法的便捷性和可靠性。圖6為漫游控制工具條按鈕;圖7為創(chuàng)建路徑和打開碰撞檢測按鈕;圖8(a)為井下避災(zāi)硐室漫游效果;圖8(b)為井下采場漫游效果;圖8(c)為工業(yè)廣場室外漫游效果;圖8(d)為工業(yè)廣場室內(nèi)漫游效果。
圖6 漫游控制
圖7 路徑創(chuàng)建
圖8 井上下漫游效果
研究了基于三維模型的漫游路徑優(yōu)化設(shè)計方法。實驗結(jié)果表明,基于文中設(shè)計的漫游路徑數(shù)據(jù)格式,利用路徑點交互拾取、手動漫游和地下巷道中心線轉(zhuǎn)換方法獲取路徑,并通過路徑拼接、路徑擬合和碰撞檢測方法對獲取的路徑進行優(yōu)化,然后實現(xiàn)手動和自動2種方式控制漫游,這種方法在數(shù)據(jù)組織、優(yōu)化算法及流程上都能適應(yīng)地下巷道、工業(yè)廣場建筑物內(nèi)和室外的漫游,可很好地滿足礦山信息化發(fā)展需要。
[1] 李湘德,彭 斌.虛擬現(xiàn)實技術(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é)報,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] 車德福,殷作如,張瑞璽,等.井巷工程三維建模及無縫開挖模擬技術(shù)[J].煤炭學(xué)報,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—) ,女,實驗師。通訊作者 車德福( 1970—) ,男,教授,博士。
TD178
A
1001-1250(2015)-04-242-04