郭彥宏 鄭杰良
(西南交通大學信息科學與技術學院,611756,成都//第一作者,碩士研究生)
三維視景建模所提供的視覺場景貼近現實場景,將三維視景建模用于相關的測試和研究可以極大地滿足研究人員對測試系統逼真度的要求。文獻[1]利用Vires對北京昌平線部分線路進行了相關建模和仿真,在一定程度上提高了建模效率;文獻[2]利用Creator/Vega Prime平臺實現了對三維虛擬環境的建模,闡述了建模的方法和步驟,滿足了一定的三維虛擬環境仿真的要求;文獻[3]介紹了基于Vega Prime的視景仿真技術的一些關鍵技術;文獻[4]闡述了3DS MAX和MultiGen Creator相結合的建模方法,考慮了兩者各自的優缺點,對兩者結合的一些關鍵技術進行了探討;文獻[5]提出利用基于3DMine軟件的三維地質建模方法來為井田采礦設計與規劃提供參考;文獻[6]介紹了三維FDTD(時域有限差分法)建模軟件的開發,并進行了簡單的建模和仿真;文獻[7]將三維建模軟件CINEMA 4D應用在風景園林設計中,對不同的場景進行了建模仿真,取得了良好的效果;文獻[8-9]利用Creator對列車運行視景進行了建模仿真,但是視景模型較為粗糙,與現實場景有較大差異。
本文根據鄭州地鐵1號線的實際線路情況,利用微軟提供的三維建模平臺MSTS(微軟列車模擬)實現了對鄭州地鐵1號線列車運行場景的仿真建模。MSTS具有良好的第三方擴展性,并且針對虛擬線路提供了地形編輯器、線路編輯器和任務編輯器等工具,通過對應的編輯器可以對虛擬線路進行編輯,包括地形的導入、線路的鋪設、行車任務的編輯和其他視景模型的鋪設等工作,極大地滿足了對地鐵列車進行真實仿真建模的要求。通過適用于Windows和Xbox的XNA技術實現了對MSTS底層模型的讀取、顯示及動作,并使MSTS底層模型的顯示效果和流暢度更加理想。
利用數字高層模型數據中的地形地貌因子可以實現對鄭州地鐵1號線列車運行所在區域地形地貌環境的復原[10]。MSTS平臺模型庫已經包含大量與鐵路相關的模型,合理充分地利用這些模型可以完成絕大多數城市軌道交通建模仿真;同時MSTS平臺還支持通過3DS MAX等三維建模軟件制作的模型,同時可以實現場景模型的按需制作和添加,所以其模型具有高度的可擴展性。
XNA程序是一個動作函數庫,它提供了一個基本的程序框架,可以降低游戲編程成本,縮短開發周期[11-12]。以MSTS平臺中的底層模型為基礎,在確認進入視景仿真系統之前需首先通過WINFORM窗體設置相應的參數,包括列車線路、列車編組、列車運行起始時間等;啟動視景仿真系統后,進入XNA主程序入口,利用XNA程序讀取MSTS平臺中的底層配置文件并對其底層模型進行分類加載并初始化,程序不斷刷新;XNA程序將攝像機視野作為視景顯示范圍,加載模型和貼圖等信息到顯卡,繪制攝像機視景范圍內的場景并向屏幕輸出。視景模型顯示流程如圖1所示。

圖1 三維視景模型顯示流程
在啟動視景系統時,首先需讀取MSTS平臺中的底層文件,同時XNA程序通過MSTS平臺中文件的存儲路徑將底層模型文件分類讀取并保存,同時確保每一種模型只被讀取一次;同時,程序還會加載MSTS平臺中的軌道模型和信號機模型中相關數據的配置文件,包含軌道的長度、坡度及曲線信息以及與信號機顯示和邏輯相關的配置文件信息等。
XNA程序對三維場景進行繪制后需要在顯示器上進行顯示。三維視景在顯示器上的顯示就像用1臺攝像機在拍攝視頻,屏幕上顯示的視景只能是攝像機拍攝范圍內的視景,有效地避免了繪制大量場景帶來的性能問題[13]。三維視景模型需要考慮三維空間的坐標,XNA技術中的坐標系統為右手坐標系統(見圖2),即取X軸向右為正向,Y軸向上為正向,Z軸朝向觀察者的方向為正向。

圖2 右手坐標系統
由兩個矩陣對象和兩個不同的靜態方法創建的視圖矩陣對象和投影矩陣對象,構成了XNA程序中的攝像機。視圖矩陣決定了攝像機的位置、指向和擺放方向等屬性,攝像機實際捕捉到的點是攝像機的位置向量CP、方向向量CD和目標向量CT(見圖3)。攝像機的視野(見圖4)實際上是一個立體的錐體,該錐體即是在屏幕上輸出的視景區域。投影矩陣決定了攝像機的最近視距和最遠視距(見圖4),只有最遠視距截面和最近視距截面之間的錐體內的視景會被繪制[13]。通過鍵盤按鍵事件和鼠標點擊事件可以實現對攝像機位置和擺放方向的調整,從而改變屏幕輸出場景。

圖3 攝像機實際拍攝點

圖4 攝像機視野
在得到所要復原地鐵線路準確的線路走向與線路所在區域較為真實的地理環境后,便可開始進行軌道線路及其周邊場景的復原工作[10]。
1.4.1 軌道的鋪設
通過谷歌地圖可對鄭州地鐵1號線的線路進行標記,參考鄭州地鐵1號線信號平面布置圖可對地鐵線路中的信號機和道岔等信號設備進行定位。將標記完成后生成的文件格式轉化成MSTS平臺線路編輯器可以使用的文件并存儲在相應子目錄。鋪設線路三維視景模型時,需要參考該文件所存儲對應場景模型的坐標信息,并在準確的位置對三維場景模型進行鋪設。
軌道區段分為有道岔區段和無道岔區段,其中各個區段均有不同的長度、坡度和曲率半徑等。在MSTS平臺的線路編輯器中,利用存儲的線路標記文件的坐標信息,結合鄭州地鐵1號線工程圖紙確定需要鋪設的軌道類型,在MSTS平臺提供的軌道模型中選擇最為合適的模型,并設置坡度等參數,從而完成該段軌道的鋪設工作(見圖5)。有岔區段的軌道鋪設還需考慮道岔模型的選擇,根據線路的具體鋪設情況,需要靈活合理地使用MSTS平臺提供的道岔模型,完成復雜線路的鋪設工作;同時在用于車輛折返或臨時停車的區域更需注意道岔模型和其它軌道模型的靈活配合使用(見圖6)。

圖6 鄭州地鐵1號線道岔鋪設仿真圖
軌道的鋪設工作完成之后,MSTS平臺會根據鋪設的軌道數據生成軌道的數據信息文件*.tdb,視景系統啟動時,XNA程序會讀取該文件,并對該文件中的軌道信息進行解析。在地鐵列車真實運行過程中,往往需要根據列車所處位置來確定列車的最佳行車策略,而行車策略則需要結合線路信息進行確定。XNA程序通過對*.tdb文件進行解析便可獲取視景系統中鋪設軌道區段的所需數據,為后續利用三維視景系統對地鐵列車進行相關研究提供了重要基礎。
1.4.2 信號機的鋪設
類似于軌道的鋪設,可根據工程圖紙中信號機的坐標在MSTS平臺線路編輯器中完成信號機的鋪設。通過信號機數據的配置文件*.dat可以對信號機的顯示狀態和對應狀態顯示的條件進行定義。
在實際地鐵線路中,信號機分為三顯示和四顯示,其中,三顯示信號機能預告列車前方2個閉塞分區狀態的自動閉塞;四顯示信號機可以預告列車前方3個閉塞分區狀態的自動閉塞[14]。以三顯示信號機為例,在三維視景平臺中通過貼圖的改變來控制信號機對應燈位的燈色顯示,即在信號機上實現紅、綠、黃3種不同燈色的顯示,以與ATS(列車自動監控)系統上的信號機一一對應。
考慮到后期需利用已建三維環境對列車的運行情況進行相關專業研究,故需屏蔽MSTS平臺生成的信號機配置文本中的燈光顯示邏輯,且信號機燈光的顯示只能與列車ATS系統中信號機的燈光顯示一致。鄭州地鐵1號線三維環境平臺和ATS系統接口實現對接后,在三維平臺地鐵客戶端的實時運行中,ATS系統對三維視景平臺列車客戶端的運行進行實時跟蹤,并根據聯鎖條件改變三維平臺中信號機的狀態來指示列車運行。
1.4.3 周邊場景的鋪設
考慮到線路的美觀與實際,在MSTS平臺線路編輯器中完成線路主體的鋪設后,可以選擇性地使用其他場景進行周邊環境的建模及鋪設。模型包括靜態的高樓模型、高架模型和廣告模型,以及動態的汽車模型和屏蔽門模型等,使得鄭州地鐵1號線地鐵運行三維場景更加生動形象。
完成上述線路的鋪設工作后,便可對鄭州地鐵1號線的三維視景仿真系統的演示效果進行測試。列車運行區段包括有道岔區段和無道岔區段。通過鍵盤按鍵事件和鼠標點擊事件可以改變攝像機的位置、拍攝方向,使得拍攝范圍改變,從而使視景在屏幕上的顯示效果得到改變。視景顯示分為駕駛員視角視景和列車外部視角視景(見圖7),即當列車運行時,攝像機可以實時跟隨列車,且顯示屏會對列車運行中的視景進行實時顯示。

a) 列車外部視角視景

b) 駕駛員視角視景
通過MSTS平臺對鄭州地鐵1號線進行建模,并根據實際線路數據對模型進行了還原。在整個三維視景環境中,可對列車模型的實際運行情況進行實時跟蹤與演示。整個列車三維運行視景平臺的成功搭建,具有豐富的現實意義,具體表現如下:
(1)對于某些未建地鐵線路,根據線路的實際數據對線路進行視景還原,通過三維視景平臺列車客戶端的實際運行情況來收集相關運行數據,以作為新線路建立的數據參考,如通過耗能指標計算可以得到最優節能坡設計方案。
(2)將各個地鐵列車控制子系統和三維列車運行平臺進行接口,來模擬并直觀展示整個列車運行控制系統的控制過程與效果。
(3)目前,國內外已有培訓列車駕駛人員的相關培訓系統。將三維平臺與列車運行控制相關的專業系統相結合,可作為相應的培訓系統或者教學演示系統,這樣可以有效降低成本。