郭彥宏 鄭杰良
(西南交通大學(xué)信息科學(xué)與技術(shù)學(xué)院,611756,成都//第一作者,碩士研究生)
三維視景建模所提供的視覺場(chǎng)景貼近現(xiàn)實(shí)場(chǎng)景,將三維視景建模用于相關(guān)的測(cè)試和研究可以極大地滿足研究人員對(duì)測(cè)試系統(tǒng)逼真度的要求。文獻(xiàn)[1]利用Vires對(duì)北京昌平線部分線路進(jìn)行了相關(guān)建模和仿真,在一定程度上提高了建模效率;文獻(xiàn)[2]利用Creator/Vega Prime平臺(tái)實(shí)現(xiàn)了對(duì)三維虛擬環(huán)境的建模,闡述了建模的方法和步驟,滿足了一定的三維虛擬環(huán)境仿真的要求;文獻(xiàn)[3]介紹了基于Vega Prime的視景仿真技術(shù)的一些關(guān)鍵技術(shù);文獻(xiàn)[4]闡述了3DS MAX和MultiGen Creator相結(jié)合的建模方法,考慮了兩者各自的優(yōu)缺點(diǎn),對(duì)兩者結(jié)合的一些關(guān)鍵技術(shù)進(jìn)行了探討;文獻(xiàn)[5]提出利用基于3DMine軟件的三維地質(zhì)建模方法來為井田采礦設(shè)計(jì)與規(guī)劃提供參考;文獻(xiàn)[6]介紹了三維FDTD(時(shí)域有限差分法)建模軟件的開發(fā),并進(jìn)行了簡(jiǎn)單的建模和仿真;文獻(xiàn)[7]將三維建模軟件CINEMA 4D應(yīng)用在風(fēng)景園林設(shè)計(jì)中,對(duì)不同的場(chǎng)景進(jìn)行了建模仿真,取得了良好的效果;文獻(xiàn)[8-9]利用Creator對(duì)列車運(yùn)行視景進(jìn)行了建模仿真,但是視景模型較為粗糙,與現(xiàn)實(shí)場(chǎng)景有較大差異。
本文根據(jù)鄭州地鐵1號(hào)線的實(shí)際線路情況,利用微軟提供的三維建模平臺(tái)MSTS(微軟列車模擬)實(shí)現(xiàn)了對(duì)鄭州地鐵1號(hào)線列車運(yùn)行場(chǎng)景的仿真建模。MSTS具有良好的第三方擴(kuò)展性,并且針對(duì)虛擬線路提供了地形編輯器、線路編輯器和任務(wù)編輯器等工具,通過對(duì)應(yīng)的編輯器可以對(duì)虛擬線路進(jìn)行編輯,包括地形的導(dǎo)入、線路的鋪設(shè)、行車任務(wù)的編輯和其他視景模型的鋪設(shè)等工作,極大地滿足了對(duì)地鐵列車進(jìn)行真實(shí)仿真建模的要求。通過適用于Windows和Xbox的XNA技術(shù)實(shí)現(xiàn)了對(duì)MSTS底層模型的讀取、顯示及動(dòng)作,并使MSTS底層模型的顯示效果和流暢度更加理想。
利用數(shù)字高層模型數(shù)據(jù)中的地形地貌因子可以實(shí)現(xiàn)對(duì)鄭州地鐵1號(hào)線列車運(yùn)行所在區(qū)域地形地貌環(huán)境的復(fù)原[10]。MSTS平臺(tái)模型庫(kù)已經(jīng)包含大量與鐵路相關(guān)的模型,合理充分地利用這些模型可以完成絕大多數(shù)城市軌道交通建模仿真;同時(shí)MSTS平臺(tái)還支持通過3DS MAX等三維建模軟件制作的模型,同時(shí)可以實(shí)現(xiàn)場(chǎng)景模型的按需制作和添加,所以其模型具有高度的可擴(kuò)展性。
XNA程序是一個(gè)動(dòng)作函數(shù)庫(kù),它提供了一個(gè)基本的程序框架,可以降低游戲編程成本,縮短開發(fā)周期[11-12]。以MSTS平臺(tái)中的底層模型為基礎(chǔ),在確認(rèn)進(jìn)入視景仿真系統(tǒng)之前需首先通過WINFORM窗體設(shè)置相應(yīng)的參數(shù),包括列車線路、列車編組、列車運(yùn)行起始時(shí)間等;啟動(dòng)視景仿真系統(tǒng)后,進(jìn)入XNA主程序入口,利用XNA程序讀取MSTS平臺(tái)中的底層配置文件并對(duì)其底層模型進(jìn)行分類加載并初始化,程序不斷刷新;XNA程序?qū)z像機(jī)視野作為視景顯示范圍,加載模型和貼圖等信息到顯卡,繪制攝像機(jī)視景范圍內(nèi)的場(chǎng)景并向屏幕輸出。視景模型顯示流程如圖1所示。
圖1 三維視景模型顯示流程
在啟動(dòng)視景系統(tǒng)時(shí),首先需讀取MSTS平臺(tái)中的底層文件,同時(shí)XNA程序通過MSTS平臺(tái)中文件的存儲(chǔ)路徑將底層模型文件分類讀取并保存,同時(shí)確保每一種模型只被讀取一次;同時(shí),程序還會(huì)加載MSTS平臺(tái)中的軌道模型和信號(hào)機(jī)模型中相關(guān)數(shù)據(jù)的配置文件,包含軌道的長(zhǎng)度、坡度及曲線信息以及與信號(hào)機(jī)顯示和邏輯相關(guān)的配置文件信息等。
XNA程序?qū)θS場(chǎng)景進(jìn)行繪制后需要在顯示器上進(jìn)行顯示。三維視景在顯示器上的顯示就像用1臺(tái)攝像機(jī)在拍攝視頻,屏幕上顯示的視景只能是攝像機(jī)拍攝范圍內(nèi)的視景,有效地避免了繪制大量場(chǎng)景帶來的性能問題[13]。三維視景模型需要考慮三維空間的坐標(biāo),XNA技術(shù)中的坐標(biāo)系統(tǒng)為右手坐標(biāo)系統(tǒng)(見圖2),即取X軸向右為正向,Y軸向上為正向,Z軸朝向觀察者的方向?yàn)檎颉?/p>
圖2 右手坐標(biāo)系統(tǒng)
由兩個(gè)矩陣對(duì)象和兩個(gè)不同的靜態(tài)方法創(chuàng)建的視圖矩陣對(duì)象和投影矩陣對(duì)象,構(gòu)成了XNA程序中的攝像機(jī)。視圖矩陣決定了攝像機(jī)的位置、指向和擺放方向等屬性,攝像機(jī)實(shí)際捕捉到的點(diǎn)是攝像機(jī)的位置向量CP、方向向量CD和目標(biāo)向量CT(見圖3)。攝像機(jī)的視野(見圖4)實(shí)際上是一個(gè)立體的錐體,該錐體即是在屏幕上輸出的視景區(qū)域。投影矩陣決定了攝像機(jī)的最近視距和最遠(yuǎn)視距(見圖4),只有最遠(yuǎn)視距截面和最近視距截面之間的錐體內(nèi)的視景會(huì)被繪制[13]。通過鍵盤按鍵事件和鼠標(biāo)點(diǎn)擊事件可以實(shí)現(xiàn)對(duì)攝像機(jī)位置和擺放方向的調(diào)整,從而改變屏幕輸出場(chǎng)景。
圖3 攝像機(jī)實(shí)際拍攝點(diǎn)
圖4 攝像機(jī)視野
在得到所要復(fù)原地鐵線路準(zhǔn)確的線路走向與線路所在區(qū)域較為真實(shí)的地理環(huán)境后,便可開始進(jìn)行軌道線路及其周邊場(chǎng)景的復(fù)原工作[10]。
1.4.1 軌道的鋪設(shè)
通過谷歌地圖可對(duì)鄭州地鐵1號(hào)線的線路進(jìn)行標(biāo)記,參考鄭州地鐵1號(hào)線信號(hào)平面布置圖可對(duì)地鐵線路中的信號(hào)機(jī)和道岔等信號(hào)設(shè)備進(jìn)行定位。將標(biāo)記完成后生成的文件格式轉(zhuǎn)化成MSTS平臺(tái)線路編輯器可以使用的文件并存儲(chǔ)在相應(yīng)子目錄。鋪設(shè)線路三維視景模型時(shí),需要參考該文件所存儲(chǔ)對(duì)應(yīng)場(chǎng)景模型的坐標(biāo)信息,并在準(zhǔn)確的位置對(duì)三維場(chǎng)景模型進(jìn)行鋪設(shè)。
軌道區(qū)段分為有道岔區(qū)段和無道岔區(qū)段,其中各個(gè)區(qū)段均有不同的長(zhǎng)度、坡度和曲率半徑等。在MSTS平臺(tái)的線路編輯器中,利用存儲(chǔ)的線路標(biāo)記文件的坐標(biāo)信息,結(jié)合鄭州地鐵1號(hào)線工程圖紙確定需要鋪設(shè)的軌道類型,在MSTS平臺(tái)提供的軌道模型中選擇最為合適的模型,并設(shè)置坡度等參數(shù),從而完成該段軌道的鋪設(shè)工作(見圖5)。有岔區(qū)段的軌道鋪設(shè)還需考慮道岔模型的選擇,根據(jù)線路的具體鋪設(shè)情況,需要靈活合理地使用MSTS平臺(tái)提供的道岔模型,完成復(fù)雜線路的鋪設(shè)工作;同時(shí)在用于車輛折返或臨時(shí)停車的區(qū)域更需注意道岔模型和其它軌道模型的靈活配合使用(見圖6)。
圖6 鄭州地鐵1號(hào)線道岔鋪設(shè)仿真圖
軌道的鋪設(shè)工作完成之后,MSTS平臺(tái)會(huì)根據(jù)鋪設(shè)的軌道數(shù)據(jù)生成軌道的數(shù)據(jù)信息文件*.tdb,視景系統(tǒng)啟動(dòng)時(shí),XNA程序會(huì)讀取該文件,并對(duì)該文件中的軌道信息進(jìn)行解析。在地鐵列車真實(shí)運(yùn)行過程中,往往需要根據(jù)列車所處位置來確定列車的最佳行車策略,而行車策略則需要結(jié)合線路信息進(jìn)行確定。XNA程序通過對(duì)*.tdb文件進(jìn)行解析便可獲取視景系統(tǒng)中鋪設(shè)軌道區(qū)段的所需數(shù)據(jù),為后續(xù)利用三維視景系統(tǒng)對(duì)地鐵列車進(jìn)行相關(guān)研究提供了重要基礎(chǔ)。
1.4.2 信號(hào)機(jī)的鋪設(shè)
類似于軌道的鋪設(shè),可根據(jù)工程圖紙中信號(hào)機(jī)的坐標(biāo)在MSTS平臺(tái)線路編輯器中完成信號(hào)機(jī)的鋪設(shè)。通過信號(hào)機(jī)數(shù)據(jù)的配置文件*.dat可以對(duì)信號(hào)機(jī)的顯示狀態(tài)和對(duì)應(yīng)狀態(tài)顯示的條件進(jìn)行定義。
在實(shí)際地鐵線路中,信號(hào)機(jī)分為三顯示和四顯示,其中,三顯示信號(hào)機(jī)能預(yù)告列車前方2個(gè)閉塞分區(qū)狀態(tài)的自動(dòng)閉塞;四顯示信號(hào)機(jī)可以預(yù)告列車前方3個(gè)閉塞分區(qū)狀態(tài)的自動(dòng)閉塞[14]。以三顯示信號(hào)機(jī)為例,在三維視景平臺(tái)中通過貼圖的改變來控制信號(hào)機(jī)對(duì)應(yīng)燈位的燈色顯示,即在信號(hào)機(jī)上實(shí)現(xiàn)紅、綠、黃3種不同燈色的顯示,以與ATS(列車自動(dòng)監(jiān)控)系統(tǒng)上的信號(hào)機(jī)一一對(duì)應(yīng)。
考慮到后期需利用已建三維環(huán)境對(duì)列車的運(yùn)行情況進(jìn)行相關(guān)專業(yè)研究,故需屏蔽MSTS平臺(tái)生成的信號(hào)機(jī)配置文本中的燈光顯示邏輯,且信號(hào)機(jī)燈光的顯示只能與列車ATS系統(tǒng)中信號(hào)機(jī)的燈光顯示一致。鄭州地鐵1號(hào)線三維環(huán)境平臺(tái)和ATS系統(tǒng)接口實(shí)現(xiàn)對(duì)接后,在三維平臺(tái)地鐵客戶端的實(shí)時(shí)運(yùn)行中,ATS系統(tǒng)對(duì)三維視景平臺(tái)列車客戶端的運(yùn)行進(jìn)行實(shí)時(shí)跟蹤,并根據(jù)聯(lián)鎖條件改變?nèi)S平臺(tái)中信號(hào)機(jī)的狀態(tài)來指示列車運(yùn)行。
1.4.3 周邊場(chǎng)景的鋪設(shè)
考慮到線路的美觀與實(shí)際,在MSTS平臺(tái)線路編輯器中完成線路主體的鋪設(shè)后,可以選擇性地使用其他場(chǎng)景進(jìn)行周邊環(huán)境的建模及鋪設(shè)。模型包括靜態(tài)的高樓模型、高架模型和廣告模型,以及動(dòng)態(tài)的汽車模型和屏蔽門模型等,使得鄭州地鐵1號(hào)線地鐵運(yùn)行三維場(chǎng)景更加生動(dòng)形象。
完成上述線路的鋪設(shè)工作后,便可對(duì)鄭州地鐵1號(hào)線的三維視景仿真系統(tǒng)的演示效果進(jìn)行測(cè)試。列車運(yùn)行區(qū)段包括有道岔區(qū)段和無道岔區(qū)段。通過鍵盤按鍵事件和鼠標(biāo)點(diǎn)擊事件可以改變攝像機(jī)的位置、拍攝方向,使得拍攝范圍改變,從而使視景在屏幕上的顯示效果得到改變。視景顯示分為駕駛員視角視景和列車外部視角視景(見圖7),即當(dāng)列車運(yùn)行時(shí),攝像機(jī)可以實(shí)時(shí)跟隨列車,且顯示屏?xí)?duì)列車運(yùn)行中的視景進(jìn)行實(shí)時(shí)顯示。
a) 列車外部視角視景
b) 駕駛員視角視景
通過MSTS平臺(tái)對(duì)鄭州地鐵1號(hào)線進(jìn)行建模,并根據(jù)實(shí)際線路數(shù)據(jù)對(duì)模型進(jìn)行了還原。在整個(gè)三維視景環(huán)境中,可對(duì)列車模型的實(shí)際運(yùn)行情況進(jìn)行實(shí)時(shí)跟蹤與演示。整個(gè)列車三維運(yùn)行視景平臺(tái)的成功搭建,具有豐富的現(xiàn)實(shí)意義,具體表現(xiàn)如下:
(1)對(duì)于某些未建地鐵線路,根據(jù)線路的實(shí)際數(shù)據(jù)對(duì)線路進(jìn)行視景還原,通過三維視景平臺(tái)列車客戶端的實(shí)際運(yùn)行情況來收集相關(guān)運(yùn)行數(shù)據(jù),以作為新線路建立的數(shù)據(jù)參考,如通過耗能指標(biāo)計(jì)算可以得到最優(yōu)節(jié)能坡設(shè)計(jì)方案。
(2)將各個(gè)地鐵列車控制子系統(tǒng)和三維列車運(yùn)行平臺(tái)進(jìn)行接口,來模擬并直觀展示整個(gè)列車運(yùn)行控制系統(tǒng)的控制過程與效果。
(3)目前,國(guó)內(nèi)外已有培訓(xùn)列車駕駛?cè)藛T的相關(guān)培訓(xùn)系統(tǒng)。將三維平臺(tái)與列車運(yùn)行控制相關(guān)的專業(yè)系統(tǒng)相結(jié)合,可作為相應(yīng)的培訓(xùn)系統(tǒng)或者教學(xué)演示系統(tǒng),這樣可以有效降低成本。