亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Unity3D 的地鐵線路三維模型自動生成的研究

        2022-06-08 09:20:38周徐熠郎誠廉
        鐵路計算機應(yīng)用 2022年5期
        關(guān)鍵詞:視景道岔線路

        周徐熠,郎誠廉

        (同濟大學(xué) 電子與信息工程學(xué)院,上海 200331)

        目前,三維視景技術(shù)在我國軌道交通領(lǐng)域的應(yīng)用愈加廣泛,列車運行控制、人員培訓(xùn)等都結(jié)合該技術(shù)開發(fā)了新型仿真系統(tǒng)[1-3]。但構(gòu)建三維視景,通常需要利用建模軟件搭建出線路的三維模型,再導(dǎo)入至Unity3D 等場景驅(qū)動引擎中進行操作,其過程復(fù)雜、耗時較長。

        為滿足快速構(gòu)建地鐵線路三維視景的需求,本文研究了地鐵線路三維模型的自動生成方法,并利用基于Unity3D 和 C#開發(fā)的程序?qū)崿F(xiàn)線路生成與場景驅(qū)動,可有效簡化人工建模過程,降低三維視景搭建難度,縮減工作量。

        1 路徑生成

        線路路徑是生成地鐵線路三維模型的基礎(chǔ),為將線路盡可能完整地還原至三維視景當中,本文結(jié)合線路平面和縱斷面數(shù)據(jù),計算獲得平面路徑并將其映射為空間路徑。

        1.1 線路數(shù)據(jù)結(jié)構(gòu)定義

        線路平面由直線、圓曲線和緩和曲線組成,縱斷面設(shè)計線由直線和豎曲線組成[4]。由于線路參數(shù)較多,為便于讀取數(shù)據(jù),本文利用數(shù)據(jù)庫對各類線路數(shù)據(jù)進行存儲和管理,并運用面向?qū)ο蠓椒ㄟM行路徑坐標計算。為此,定義了直線類、曲線類和坡道類,它們具有部分相同字段,可繼承自同一基類,如圖1 所示。同時,采用路徑點列表描述路徑定義了路徑點類,其字段包括Vector 3 類型的空間坐標和double 類型的里程信息,相應(yīng)的路徑點對象存入泛型列表中,由此構(gòu)成線路路徑。此外,還定義了道岔類、信號機類和車站類,便于生成和定位相應(yīng)的模型。

        圖1 線路數(shù)據(jù)類示意

        1.2 路徑點平面坐標計算

        (1)直線部分:根據(jù)始端坐標、長度和方位角數(shù)據(jù),可計算出直線段末端的路徑點坐標。(2)曲線部分:可按照第一緩和曲線、圓曲線、第二緩和曲線的順序計算路徑點。由于緩和曲線的曲率是變化的,而圓曲線的曲率固定,為使得路徑平滑和計算簡便,本文采用按長度分段計算的方法得到緩和曲線上的路徑點坐標,間隔取1 m,采用按圓心角分段計算的方法得到圓曲線上的路徑點坐標,間隔取0.01 rad,相比其他間隔取值,該取值可得到精度較高且視覺效果良好的平曲線。

        1.2.1 緩和曲線路徑點坐標計算

        在如圖2 所示的對稱基本型平曲線中,J點為兩側(cè)緩和曲線切線交點,ZH點為直緩點,HY點為緩圓點,YH點為圓緩點,HZ點為緩直點,O點為圓曲線圓心,線段OM垂直于左側(cè)緩和曲線的切線。圓曲線半徑R、緩和曲線長LS和路線偏轉(zhuǎn)角α通常由線路平面圖給出,ZH點到J點之間的緩和曲線切線長T、內(nèi)移距p、切垂距q和緩和曲線角β0的求解過程涉及到曲線要素計算,本文不再贅述。

        圖2 對稱基本型平曲線示意

        計算緩和曲線上的路徑點坐標時,以ZH點(或HZ點)為原點,以曲線切線里程增加方向為x軸正方向,建立局部平面直角坐標系,將待求路徑點到原點的里程長度l代入三次拋物線型緩和曲線的參數(shù)方程,求得路徑點在該坐標系下的坐標(x,y),再通過坐標系變換,得到路徑點在全局坐標系下的坐標(X,Y)。

        1.2.2 圓曲線路徑點坐標計算

        計算J點至ZH點的單位向量,將該向量逆時針旋轉(zhuǎn)γ并乘以J點至O點的距離,得到,進而求出O點的坐標。將從O點指向HY點的向量繞O點旋轉(zhuǎn)至YH點,計算并記錄圓曲線上的一組路徑點坐標。

        緩和曲線對稱時,計算較為簡單,但在非對稱基本型平曲線中,兩側(cè)緩和曲線的長度LS不同,需分別計算第一、第二緩和曲線的內(nèi)移距p1、p2和切垂距q1、q2,并按公式(2)[5]計算第一緩和曲線切線長T1,為

        非對稱情況下圓心坐標 (XO,YO)的求解表達式為

        式中

        最后將所有直線、緩和曲線和圓曲線上的路徑點按里程遞增的順序依次存入列表,構(gòu)成線路的平面路徑。

        1.3 路徑點空間坐標計算

        本文結(jié)合縱斷面數(shù)據(jù),計算各變坡點的平面坐標,并更新平面路徑上各路徑點的高度值,為提高豎曲線的平滑度,在變坡點的兩側(cè)通過線性插值增補多個路徑點,并進行縱距修正,獲得線路的空間路徑。

        1.3.1 路徑點高度值計算

        根據(jù)變坡點里程,查找平面路徑中與變坡點里程最接近的前后兩點,并通過線性插值確定變坡點的平面坐標。如圖3 所示,點P、B'為兩個變坡點,其中,B'的高度值尚未得出,點B為B'在水平面上的投影,根據(jù)P至B的里程長度 Δm和坡度i,計算出B'相對于B的高度 Δh,進而得到B'的高度值。采用同樣的方法計算并更新該坡段上的所有路徑點的高度值,可得到P、B'間的空間路徑。將B之后所有路徑點的高度值增加 Δh,使之與B'處于同一水平面上,以便后續(xù)坡段上各路徑點高度值的計算。遍歷各坡段,重復(fù)上述過程,可得到不帶有豎曲線的線路空間路徑。

        圖3 路徑點高度計算示意

        1.3.2 路徑點增補

        在如圖4 所示的半徑為RS的凹形豎曲線中,前后兩坡段的坡度分別為i1和i2,點P為變坡點,點A、B分別為豎曲線的起點和終點,豎曲線切線長TS[6]的計算公式為

        圖4 豎曲線示意

        根據(jù)TS在水平面上的投影長度可以確定A、B的里程,并進一步得到A、B的空間坐標。當A、P間路徑點較少時,經(jīng)縱距修正后無法得到平滑的豎曲線,因此,需在A、P間通過線性插值增補n個等距的路徑點,并分別進行修正,以獲得平滑豎曲線。B、P之間同理,n的大小取決于線性插值的間隔步長,考慮精度和視覺效果,本文中該間隔取1 m。

        1.3.3 縱距修正

        圖4 中,根據(jù)點A、P間各路徑點至A的距離f計算縱距z,并對高度值進行修正。在P、B間進行相同操作,可得到較為平滑的完整豎曲線路徑。各點處縱距z的近似公式為

        2 模型創(chuàng)建與簡化

        Unity3D 集成了DirectX 和OpenGL,可快速創(chuàng)建模型并進行圖形渲染。本文利用Unity3D 完成線路模型的創(chuàng)建,采用Douglas–Peucker 算法對模型進行簡化,減少了模型的三角面數(shù)。

        2.1 模型創(chuàng)建

        2.1.1 軌道模型創(chuàng)建

        本文通過Unity3D 中的線渲染器(Line Renderer)組件實現(xiàn)路徑的可視化,并調(diào)用該組件的BakeMesh方法,得到帶有網(wǎng)格碰撞體的路徑實體模型。為提高三維視景的真實感,需給線渲染器添加PNG 格式的枕木貼圖,紋理模式為Tile,可達到根據(jù)線路長度自適應(yīng)重復(fù)貼圖的效果,將路徑實體模型作為簡易道床面,添加道砟貼圖。若不將枕木與道砟進行圖層分離,則道岔處會發(fā)生貼圖重疊,顯示效果不好,分離圖層后,可有效改善顯示效果。

        本文采用生成Mesh 網(wǎng)格的方法對鋼軌進行建模。選取60 kg/m 鋼軌截面上的部分關(guān)鍵點作為模型的輪廓節(jié)點,計算各路徑點處的輪廓節(jié)點坐標并存入Vector 3 類型的頂點數(shù)組vertexes 中,計算出每個三角面各頂點在頂點數(shù)組vertexes 中的索引,并存入int 類型數(shù)組indices 中,將這兩個數(shù)組賦值給Mesh網(wǎng)格對象的相應(yīng)字段“vertices”“triangles”,完成生成鋼軌的三維網(wǎng)格輪廓,配合相應(yīng)的材質(zhì)即可渲染出鋼軌模型,如圖5 所示。

        圖5 鋼軌模型

        2.1.2 站臺模型生成

        考慮到線路中的部分站臺可能位于曲線上,因此需要沿著線路路徑來生成站臺模型。在確定了車站中心里程并設(shè)計站臺部分的線路路徑后,創(chuàng)建站臺的Mesh 網(wǎng)格并進行渲染。根據(jù)屏蔽門平面布置圖,結(jié)合站臺形式,將各類屏蔽門的預(yù)制體定位至具體位置,如圖6 所示。

        圖6 站臺模型

        2.1.3 道岔模型創(chuàng)建

        本文根據(jù)道岔的型號和參數(shù)計算各關(guān)鍵節(jié)點坐標,并以岔心坐標為基準,對尖軌和非尖軌部分采用生成Mesh 網(wǎng)格的方法分段建模,構(gòu)造出道岔模型。尖軌單獨建模,通過模型旋轉(zhuǎn)動畫可模擬道岔開通位置的切換。本文以上海地鐵14 號線正線采用的60 kg/m 鋼軌9 號道岔[7]為例實現(xiàn)了道岔建模,如圖7 所示。此外,在生成模型前將道岔前后路徑進行了分段,有效避免了轍叉部分與前后鋼軌重疊。

        圖7 道岔模型

        2.1.4 信號機模型定位

        本文將信號機模型作為預(yù)制體,根據(jù)里程位置確定坐標并實時加載、定位模型。預(yù)制體帶有燈光控制腳本,可根據(jù)仿真信號切換燈光顯示。

        2.2 模型簡化

        當線路較長時,計算得出的路徑點數(shù)量龐大,用于列車運行模擬或路徑漫游時效果較好,但如果采用未簡化的路徑點來生成鋼軌、道床面等整體長度較大的模型,得到的模型里將包含大量冗余的三角面,增加了內(nèi)存消耗,同時,在進行視野縮放后,若視野內(nèi)模型面數(shù)過多,會導(dǎo)致GPU 渲染速度下降和畫面幀率降低。減少部分路徑點后再生成軌道模型,對視覺效果的影響較小,且能夠降低模型三角面數(shù),提高渲染速度和幀率。

        本文采用Douglas–Peucker 算法對路徑點的數(shù)量進行適當壓縮。該算法的優(yōu)點是具有平移和旋轉(zhuǎn)不變性,基本思路為:對路徑的起點和終點虛連一條直線,求各點至該直線的距離,找出最大距離值dmax,給定誤差上限ε,若dmax<ε,則該段路徑上的中間點全部舍去;若dmax≥ε,則保留dmax對應(yīng)的點,并以該點為界,把路徑分為兩部分,分別遞歸調(diào)用該方法,最終保留下來的點即為簡化結(jié)果[8]。

        以上海地鐵14 號線上行線作為算例,線路長度為39.1 km,緩和曲線路徑點間隔取1 m,圓曲線路徑點間隔取0.01 rad,對簡化前的路徑應(yīng)用Douglas–Peucker 算法,得出不同ε取值時道床面模型參數(shù),如表1 所示。ε取0.05 時,原始路徑點至簡化路徑的垂直距離不超過5 cm,模型簡化后可以保持原有路徑形狀,視覺效果與簡化前差距較小,且模型的點、面數(shù)和內(nèi)存占用得到顯著降低,簡化效果較好。

        表1 ε 不同取值對應(yīng)的道床面模型參數(shù)

        此外,本文對各類三角面數(shù)量較多的模型采用多層次細節(jié)(LOD,Levels of Detail)技術(shù)提高了渲染速度,采用Mip 映射(Mip-mapping)技術(shù)降低了遠距離情況下的貼圖失真程度,改善了視覺效果,提升了渲染速度。

        3 虛擬場景驅(qū)動

        Unity3D 作為一款場景驅(qū)動引擎,還包括了三維視景所需要的其他元素,如物理引擎、網(wǎng)絡(luò)通信、輸入輸出模塊等。本文采用Unity3D 開發(fā)的三維視景軟件實現(xiàn)了對線路數(shù)據(jù)庫的訪問,并在生成線路三維模型的基礎(chǔ)上,實現(xiàn)了虛擬場景漫游和列車運行模擬。

        3.1 線路數(shù)據(jù)獲取

        本文采用MySQL 數(shù)據(jù)庫對線路數(shù)據(jù)進行管理,采用客戶端—服務(wù)器架構(gòu)實現(xiàn)三維視景軟件對線路數(shù)據(jù)的獲取。三維視景軟件客戶端采用Unity3D 結(jié)合C#程序進行開發(fā),通過Unity3D 內(nèi)置的UGUI 系統(tǒng)完成人機交互界面設(shè)計,通過C#程序響應(yīng)UI 事件,完成模型生成與場景驅(qū)動。服務(wù)器主要負責(zé)數(shù)據(jù)管理,客戶端向服務(wù)器發(fā)送數(shù)據(jù)請求后,服務(wù)器通過SQL 語句獲取數(shù)據(jù)庫內(nèi)線路數(shù)據(jù),通過JSON 格式數(shù)據(jù)返回給客戶端,客戶端接收并處理數(shù)據(jù)后生成對應(yīng)的模型。

        3.2 虛擬場景漫游

        虛擬場景漫游可通過角色控制器(Character Controller)組件和攝像機(Camera)來實現(xiàn)。采用膠囊體充當角色模型,綁定角色控制器組件,并將攝像機置于角色父物體下,用于獲得角色前方視野。通過監(jiān)聽輸入設(shè)備事件,借助鍵盤按鍵獲取角色移動方向向量,由角色控制器的Move 函數(shù)更新角色位置;角色模型和攝像機帶有Transform 組件,該組件包含了用于模型旋轉(zhuǎn)的Rotate 函數(shù),程序在每一幀內(nèi)獲取鼠標移動方向,并調(diào)用Rotate 函數(shù)調(diào)整角色朝向和視野范圍。

        3.3 列車運行模擬

        3.3.1 車輛模型控制

        本文以8 編組列車為例,通過C#程序控制列車每節(jié)車輛模型的運行路徑、位置和朝向,以路徑點列表作為各節(jié)車輛的運行路徑,控制車輛朝著當前追蹤的路徑點行駛,各節(jié)車輛速度保持一致,實現(xiàn)了列車在軌道上的運行。

        在畫面的每一幀內(nèi),計算出車輛當前位置到下一路徑點的距離a,同時根據(jù)運行速度計算該幀內(nèi)車輛的行駛距離b。根據(jù)a和b的大小關(guān)系判斷車輛是否會到達或超越當前正在追蹤的路徑點,若不能到達,即b

        3.3.2 道岔功能實現(xiàn)

        在創(chuàng)建道岔模型時,根據(jù)數(shù)據(jù)庫提供的道岔鏈路信息,將道岔各開通方向與相應(yīng)的路徑點列表進行綁定,道岔的開通狀態(tài)決定了車輛通過岔心后的運行路徑。在岔心處設(shè)有虛擬球體作為車輛通過時的觸發(fā)器(Trigger),該球體位于道岔父物體下,且對攝像機不可見。車輛經(jīng)過道岔時會穿過該球體,通過碰撞檢測技術(shù)結(jié)合觸發(fā)器的OnTriggerEnter 函數(shù),獲取道岔的實際開通方向,根據(jù)開通方向所對應(yīng)的路徑點列表對車輛運行路徑進行調(diào)整。

        3.3.3 車門、屏蔽門模型控制

        列車到站停車后,利用“消息廣播”機制結(jié)合模型動畫實現(xiàn)了圖8 所示的車門和屏蔽門的開閉。模型動畫可通過Unity3D 的Animation 制作并綁定在模型預(yù)制體上,也可以通過導(dǎo)入iTween 插件編寫代碼實現(xiàn)平移動畫,并通過BroadcastMessage 函數(shù)對多個門體對象進行消息廣播,觸發(fā)模型動畫。

        圖8 車門與屏蔽門控制

        4 結(jié)束語

        本文對地鐵線路的三維模型自動生成方法進行了研究,采用數(shù)據(jù)庫存儲線路數(shù)據(jù),利用Unity3D和C#完成對線路數(shù)據(jù)的讀取,實現(xiàn)了路徑生成、模型創(chuàng)建與簡化,在此基礎(chǔ)上通過角色控制器、碰撞檢測等技術(shù)實現(xiàn)了虛擬場景漫游和列車運行模擬。研究得出的方法具有通用性和拓展性,可應(yīng)用于地鐵三維視景仿真,以較高的精度還原地鐵線路場景,簡化建模過程,加快虛擬場景搭建進度。

        猜你喜歡
        視景道岔線路
        中低速磁浮道岔與輪軌道岔的差異
        輸電線路工程造價控制
        場間銜接道岔的應(yīng)用探討
        既有線站改插鋪臨時道岔電路修改
        10kV線路保護定值修改后存在安全隱患
        電子制作(2018年12期)2018-08-01 00:48:08
        vega及其在戰(zhàn)場環(huán)境視景仿真系統(tǒng)中的應(yīng)用
        電子測試(2018年4期)2018-05-09 07:28:19
        基于Hilbert-Huang變換的HVDC線路保護
        電測與儀表(2015年2期)2015-04-09 11:29:24
        全回轉(zhuǎn)拖輪運動建模與視景仿真
        KJH101-127型氣動司控道岔的改造
        基于Vortex與Vega Prime的車輛模擬器動力學(xué)與視景仿真
        日韩激情av不卡在线| 9lporm自拍视频区| 国产极品美女高潮无套在线观看| 亚洲日本国产乱码va在线观看| 国产另类人妖在线观看| 亚洲国产精品无码aaa片| 日韩免费无码一区二区三区| 亚洲日韩精品A∨片无码加勒比| 蜜桃视频网站在线免费观看| 伊人久久这里只有精品 | 白又丰满大屁股bbbbb| 国产亚洲精品A在线无码| 日韩精品综合在线视频| 日本三级香港三级人妇99| 国产精品嫩草影院av| 国产欧美日韩不卡一区二区三区| 久久91精品国产91久久跳舞| 亚洲gay片在线gv网站| 国产av无码专区亚洲av琪琪| 99久久精品一区二区三区蜜臀| 性感熟妇被我玩弄到高潮| 大ji巴好深好爽又大又粗视频| 老少交欧美另类| 青青草极品视频在线播放| 91偷拍与自偷拍亚洲精品86| 97久久超碰国产精品旧版| 欧美二区视频| 麻豆三级视频网站在线观看| 亚洲色大成网站www永久| 午夜福利视频合集1000| 亚洲欧美v国产蜜芽tv| 国产免费观看久久黄av麻豆| 天堂а√在线最新版中文在线| 亚洲免费天堂| 日本免费三片在线视频| 人人妻人人澡人人爽国产一区| 亚洲乱妇老熟女爽到高潮的片| 新久久久高清黄色国产| 国产精品国产高清国产专区| 免费精品一区二区三区第35| 国产丝袜免费精品一区二区|