肖 聰,唐毓?jié)?/p>
(西南交通大學(xué) 電氣工程學(xué)院,四川 成都 611756)
虛擬交通仿真系統(tǒng)可用于系統(tǒng)設(shè)計(jì)、人員培訓(xùn)、預(yù)案演練等領(lǐng)域,促進(jìn)了交通系統(tǒng)的快速發(fā)展[1]。在虛擬交通環(huán)境仿真系統(tǒng)中,視景仿真是構(gòu)建其場景模型以及動(dòng)畫效果的關(guān)鍵技術(shù)[2-4]。而虛擬環(huán)境仿真系統(tǒng)中的樹木植被是視景仿真場景中的重要組成部分,渲染出具有高真實(shí)感的樹木植被決定著整個(gè)場景的沉浸感[5]。目前,針對城市軌道交通的虛擬仿真系統(tǒng)通常采用開放場景圖(Open Scene Graph,OSG)對其真實(shí)環(huán)境進(jìn)行視景仿真,OSG作為三維圖形庫在道路、建筑物等方面都有較高程度的還原效果。但在植被建模方面,由于其采用十字交叉面法,使得仿真模型僅在遠(yuǎn)處的效果較好,而近處的植被模型會有一定程度上的失真[6]。SpeedTree,Xfrog等植物建模方面專業(yè)的仿真軟件可以設(shè)計(jì)出真實(shí)感較強(qiáng)的植被模型。但是,單獨(dú)軟件設(shè)計(jì)出的還原度較高的植被模型在導(dǎo)入到虛擬交通環(huán)境仿真系統(tǒng)之后,其風(fēng)動(dòng)效果因兼容性等問題而無法加載,致使植被的沉浸感較差。
本研究選用植物模型專業(yè)仿真軟件SpeedTree對虛擬交通環(huán)境仿真系統(tǒng)中的樹木植被進(jìn)行仿真建模,高度還原軌道交通環(huán)境中真實(shí)存在的樹木植被。同時(shí),將所生成的高還原度的植物模型導(dǎo)入到基于OSG平臺的虛擬交通仿真系統(tǒng)中后,通過加載相關(guān)風(fēng)場模型以及樹木枝條的形變計(jì)算和樹葉的旋轉(zhuǎn)計(jì)算,模擬出風(fēng)場中樹木隨風(fēng)飄搖的效果。從而達(dá)到真實(shí)體現(xiàn)樹木的風(fēng)動(dòng)效果并進(jìn)一步加強(qiáng)整個(gè)仿真系統(tǒng)沉浸感的目的。
高真實(shí)樹木模型建立可通過多種專業(yè)軟件實(shí)現(xiàn),包括定性可視化軟件和定量可視化軟件。其中,SpeedTree,Xfrog等定性可視化軟件側(cè)重于植物建模的美觀程度。而L-studio/Vlab,Virtual Plants等定量可視化軟件的特點(diǎn)是結(jié)合植物復(fù)雜的幾何結(jié)構(gòu),根據(jù)植物生長變化規(guī)律,定量地模擬植物的生長過程。針對虛擬交通環(huán)境系統(tǒng)中的樹木仿真要求以及本實(shí)驗(yàn)室的實(shí)際情況,通過對比研究,論文選用能夠較好地滿足實(shí)驗(yàn)需求的植物建模專用軟件SpeedTree來完成高逼真樹木模型的建立。
目前被廣泛應(yīng)用于游戲開發(fā)以及影視制作等虛擬場景中的植物模型有相當(dāng)一部分是利用SpeedTree軟件構(gòu)建[7-8]。相比于其他專業(yè)植物建模軟件,SpeedTree能夠在極大地還原真實(shí)場景中樹木植被的同時(shí)減少多邊形的使用量,這樣可以大幅度減少內(nèi)存,進(jìn)而提高實(shí)時(shí)渲染的速率。該軟件之所以會有這樣的優(yōu)勢,是因?yàn)槠洳粌H使用基于多邊形的繪制技術(shù),而是將基于圖像的技術(shù)與之結(jié)合形成混合繪制技術(shù)。同時(shí),分為以下3個(gè)部分對樹木植被進(jìn)行仿真建模:樹干和大樹枝的繪制,小樹枝模型建立以及樹葉的生成。采用貝塞爾曲線來繪制樹干和大樹枝。貝塞爾曲線是用來繪制曲線的一種常用方法,通過貝塞爾曲線可以較好地模擬樹木枝條無規(guī)律生長的特點(diǎn),同時(shí)可以快速地獲得枝條上頂點(diǎn)的坐標(biāo),為之后的渲染提供了便利[9];采用兩個(gè)互相垂直的面貼上樹枝紋理來完成對小樹枝的模擬繪制;樹葉則通過布告板技術(shù)來實(shí)現(xiàn)繪制,布告板技術(shù)的主要原理是利用一個(gè)面貼上樹葉模型紋理來實(shí)現(xiàn)繪制。在紋理細(xì)節(jié)方面,Speed Tree在建模過程中將其紋理分為基本貼圖、光照貼圖和法線貼圖3級,從而達(dá)到加強(qiáng)植物模型紋理細(xì)節(jié)的呈現(xiàn),使得植物模型更加真實(shí)。Speed Tree通過使用以上混合繪制技術(shù)構(gòu)建的模型既可以保證樹木的高逼真度,又能達(dá)到減少三角形面的目的。圖1是通過SpeedTree生成的植物模型。
本實(shí)驗(yàn)室建立的虛擬交通仿真系統(tǒng)是利用OSG開發(fā)的開放式可視化框架。使用OSG可以提高場景的渲染效率,進(jìn)而提升整個(gè)仿真系統(tǒng)的性能[10]。OSG支持.ive,.3ds,.obj,.fbx等多種格式,但使用SpeedTree生成的植物模型為.spm格式,該格式與OSG三維引擎不兼容。因此,需要將SpeedTree生成的樹木模型轉(zhuǎn)換到能夠滿足OSG兼容性要求的格式,同時(shí),能較好地保存植物模型中原有的復(fù)雜幾何模型、紋理貼圖、光照等特性。針對上述要求,選擇將.spm格式轉(zhuǎn)換成.fbx格式并將格式轉(zhuǎn)換后的樹木模型導(dǎo)入到虛擬交通仿真系統(tǒng)中,通過相關(guān)裁剪優(yōu)化技術(shù)對植物模型進(jìn)行進(jìn)一步優(yōu)化,并通過實(shí)例化渲染以及多細(xì)節(jié)層次(Levels of Detail,LOD)等技術(shù)對其進(jìn)行大面積渲染,最終生成的效果如圖2所示。
圖1 SpeedTree植物模型
圖2 虛擬交通環(huán)境中樹木模型效果
在真實(shí)自然環(huán)境中,樹木植被并不能始終保持靜止不動(dòng),而是會由于風(fēng)力、阻力等外力對其的影響和作用產(chǎn)生無規(guī)律的動(dòng)態(tài)搖擺。為虛擬交通環(huán)境中的樹木模型添加風(fēng)動(dòng)效果能夠進(jìn)一步增強(qiáng)整個(gè)場景的真實(shí)感。因此,要在仿真系統(tǒng)中進(jìn)行風(fēng)場的構(gòu)建。目前,國內(nèi)外針對風(fēng)所具有的易變性和不可控性的特征已經(jīng)建立了諸如基于噪聲函數(shù)、高斯隨機(jī)過程、組合風(fēng)速模型、指數(shù)分布、偏正態(tài)分布等多種風(fēng)力模型[11]。其中,基于噪聲函數(shù)和正態(tài)分布概率密度函數(shù)模型以及組合風(fēng)速模型常被用于構(gòu)建樹木植被仿真中的風(fēng)力模型[12-13]。
噪聲函數(shù)是通過一系列正余弦波的疊加而形成的種子隨機(jī)發(fā)生器。利用噪聲函數(shù)公式(1)來表示風(fēng)力Fw的變化。
其中a,b,c,d表示波形的變化,F(xiàn)w表示風(fēng)力。波形額變化意味著風(fēng)速模型的變化,風(fēng)的強(qiáng)弱由通過a,b,c,d參數(shù)的值來決定。
自然界的風(fēng)是從零開始慢慢增大,最終又慢慢減小到零的過程,為了模擬出更接近于自然環(huán)境中真實(shí)的風(fēng)力效果。將高斯隨機(jī)過程公式引入到公式(1)中,對其做進(jìn)一步修正。
其中F表示加入高斯隨機(jī)過程后的風(fēng)力,f(t)表示正態(tài)分布的概率密度函數(shù),u值是風(fēng)力變化的半個(gè)周期。σ的值決定風(fēng)力變化的波形,σ值增大表示曲線的峰值降低,反之則升高。
由基本風(fēng)Va、陣風(fēng)Vb、漸變風(fēng)Vc和噪聲風(fēng)Vd4個(gè)部分所構(gòu)成的組合風(fēng)速模型能夠把風(fēng)速的隨機(jī)性、間歇性進(jìn)行精確描述。同時(shí),將自然風(fēng)分為4個(gè)部分分別計(jì)算也降低了仿真計(jì)算的難度。
4.2.1 基本風(fēng)Va
基本風(fēng)可以看作是風(fēng)場形成中一直存在的并且一般不隨時(shí)間變化而改變的風(fēng),因而可以取常數(shù)Kb表示。
4.2.2 陣風(fēng)Vb
自然風(fēng)的風(fēng)速有時(shí)會突然產(chǎn)生變化,利用具有余弦特性的陣風(fēng)可以描述該特點(diǎn)。
其中,Gmax表示陣風(fēng)形成中的最大值,Tg,T1和t分別表示陣風(fēng)的周期、起始時(shí)間和持續(xù)時(shí)間。
4.2.3 漸變風(fēng)Vc
自然風(fēng)中風(fēng)速有時(shí)是逐漸增大或減小的,通過漸變風(fēng)可以模擬自然風(fēng)中風(fēng)速逐漸變化的特點(diǎn)。
其中,Rmax為漸變風(fēng)周期的峰值,T3,T4和Tr分別為風(fēng)場中漸變風(fēng)開始的時(shí)間、結(jié)束漸變的時(shí)間,以及漸變風(fēng)的持續(xù)時(shí)間。
4.2.4 隨機(jī)風(fēng)Vd
風(fēng)速的變化在指定相對高度上具有不確定性,該特點(diǎn)可以用隨機(jī)風(fēng)來描述
其中,Vdmax為隨機(jī)風(fēng)的最大值;Ra(-1,1)為-1和1之間均勻分布的隨機(jī)數(shù);ωv取值一般在0.5π~2π之間用來表示風(fēng)速波動(dòng)的平均距離;θ為0~2π間均勻分布的隨機(jī)量。
綜合上述對四種風(fēng)速的描述,可得到組合風(fēng)速Vs的數(shù)學(xué)模型為
本文結(jié)合實(shí)驗(yàn)室實(shí)際情況選用組合風(fēng)速模型對風(fēng)速進(jìn)行模擬,通過分別對4部分進(jìn)行計(jì)算來求得風(fēng)速。
仿真環(huán)境中的樹木要達(dá)到隨風(fēng)飄搖的效果,除了需要對風(fēng)場進(jìn)行上述模擬,還需對樹木形變進(jìn)行物理計(jì)算[14]。場景中搖曳、飄蕩的樹枝、樹干和樹葉是單棵樹木受到風(fēng)影響下的具體表現(xiàn)。因此,可以對這3大部分進(jìn)行相應(yīng)的動(dòng)態(tài)變化來體現(xiàn)整顆樹木的風(fēng)效。
樹枝的彎曲形變可以通過改變由經(jīng)驗(yàn)公式直接生成的枝條隨時(shí)間變化的夾角來模擬。樹枝在風(fēng)場作用下具有不規(guī)律的特點(diǎn),因此,引入慣性因子對其幅度和擺動(dòng)角度進(jìn)行插值,使各枝條的運(yùn)動(dòng)更符合自然規(guī)律。
樹干的運(yùn)動(dòng)主要是由連接在其上的各分枝的曳力引起的。為了計(jì)算樹干的形變,對每根枝條先分別進(jìn)行變形計(jì)算再將它們組合以獲得樹干以及樹木的整體形變[15]。同時(shí)根據(jù)各分支的索引列表,確定分枝之間的邏輯連接關(guān)系,基于此連接關(guān)系從根開始逐步傳遞地進(jìn)行頂點(diǎn)的變換來得到樹干的振蕩效果。其樹木分枝信息 Branch Info 和頂點(diǎn)信息Branch Vertex 的數(shù)據(jù)結(jié)構(gòu)如下所示:
為了使樹木在受到場景中的風(fēng)場的作用時(shí)達(dá)到近似真實(shí)的彎曲效果,可以根據(jù)風(fēng)速的大小以及方向?qū)渲M(jìn)行形變計(jì)算并通過旋轉(zhuǎn)矩陣計(jì)算得到偏移位置。
植物模型中的樹葉是通過布告板技術(shù)繪制的,因此可以通過平移帶紋理的布告板來模擬其位置的改變,通過其本身繞坐標(biāo)軸的旋轉(zhuǎn)來模擬樹葉角度的變化[16]。通過上述兩種方法來近似模擬樹葉在風(fēng)中的動(dòng)態(tài)效果。
虛擬交通環(huán)境仿真場景中的樹木由于分布位置不同,導(dǎo)致其在受到風(fēng)的影響時(shí)振動(dòng)步調(diào)不一致。因此,引入物理量相位來反應(yīng)樹木的振動(dòng)狀態(tài)。不同位置的樹初相位不同,初始時(shí)樹的傾斜狀態(tài)就不一樣,因此樹木在風(fēng)的影響下擺動(dòng)步調(diào)不一致。
樹木在加載風(fēng)場下的模擬流程如圖3所示。
圖3 樹木的動(dòng)態(tài)模擬流程
將組合風(fēng)速模型加載到虛擬交通環(huán)境仿真場景中,設(shè)定20 s 為一個(gè)周期;Va=6 m/s,Gmax=3 m/s,T1=0,Tg=20 s,Rmax=1 m/s,T3=0,T4=10 s,Tr=10 s,Vdmax=2 m/s,ωv=2π,其組合風(fēng)速波形如圖4所示,在加載風(fēng)效模型后,取兩個(gè)不同時(shí)間點(diǎn)進(jìn)行觀察,效果如圖5所示。
圖4 組合風(fēng)速仿真波形
通過仿真波形可以看出,該組合風(fēng)速模型通過4部分的計(jì)算可以較好地模擬自然風(fēng)突變、漸變、隨機(jī)等特性。在將風(fēng)場模型加入到仿真系統(tǒng)中,并通過后期一系列的測試優(yōu)化調(diào)整后,系統(tǒng)運(yùn)行流暢,同時(shí)整個(gè)仿真系統(tǒng)幀速率基本維持在30~55之間,基本符合系統(tǒng)正常運(yùn)行的要求。
本文使用SpeedTree三維建模軟件構(gòu)建高真實(shí)感的植物模型,研究了樹木仿真過程中常見的風(fēng)場模型。同時(shí),通過樹木枝條的形變計(jì)算以及樹葉的旋轉(zhuǎn)計(jì)算模擬了樹木在組合風(fēng)速模型下的動(dòng)態(tài)變化。最后將其順利的導(dǎo)入在基于OSG平臺的虛擬交通環(huán)境仿真系統(tǒng)中。較好地體現(xiàn)了仿真場景中樹木再風(fēng)場中的動(dòng)態(tài)效果,增強(qiáng)了虛擬交通環(huán)境場景沉浸感。
圖5 風(fēng)力作用下樹木的動(dòng)態(tài)效果
[參考文獻(xiàn)]
[1]葉華平,姚軍,錢雪軍.城市軌道交通列車虛擬駕駛仿真系統(tǒng)[J].城市軌道交通研究,2015(11):124-126.
[2]ZHU L,YU F R,NING B,et al.Design and performance enhancements in communication-based train control systems with coordinated multipoint transmission and reception[J].IEEE Transactions on Intelligent Transportation Systems,2014(3):1258-1272.
[3]曾林森.基于Unity3D的跨平臺虛擬駕駛視景仿真研究[D].長沙:中南大學(xué),2013.
[4]王懷松,陳榮武.基于三維視景的列車運(yùn)行仿真平臺的研究與實(shí)現(xiàn)[J].系統(tǒng)仿真技術(shù),2016(4):275-279.
[5]湯穎,嵇海鋒,盛風(fēng)帆,等.大規(guī)模森林多精度生長仿真模型及其計(jì)算加速算法[J].小型微型計(jì)算機(jī)系統(tǒng),2016(5):1033-1038.
[6]張海建,李紅,孫丹.基于OSG的漫游仿真系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].自動(dòng)化應(yīng)用,2017(8):6-8.
[7]張婷.基于SPEEDTREE軟件虛擬園林植物的建造研究[J].安徽農(nóng)學(xué)通報(bào),2016(16):123-127.
[8]夏紅梅,張欣景,胡訓(xùn)強(qiáng).基于SpeedTree工具的三維真實(shí)感樹木建模研究[J].艦船電子工程,2015(1):99-101.
[9]楊薇,李怡宏.基于VC實(shí)現(xiàn)的貝塞爾曲線初探[J].科技經(jīng)濟(jì)導(dǎo)刊,2015(8):26,210.
[10]孫倩,劉晶晶.OSG視景仿真技術(shù)應(yīng)用[J].中國科技信息,2017(Z1):18-20.
[11]劉文洋,張文福.三維空間相關(guān)風(fēng)場的計(jì)算機(jī)模擬及Matlab程序?qū)崿F(xiàn)[J].空間結(jié)構(gòu),2008(2):17-20.
[12]吳曉暉,黃心淵.基于Virtools平臺的森林仿真風(fēng)效技術(shù)研究[J].計(jì)算機(jī)應(yīng)用與軟件,2013(5):108-111.
[13]張興,司媛媛,張強(qiáng),等.基于Labview的虛擬風(fēng)場算法的研究[J].合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2005(9):1062-1064.
[14]淮永建,王梅峰,左正興,等.虛擬環(huán)境中森林植被的實(shí)時(shí)可視化技術(shù)研究[J].計(jì)算機(jī)工程與應(yīng)用,2004(35):33-36.
[15]于亞莉.大規(guī)模場景中真實(shí)感風(fēng)場作用的實(shí)時(shí)模擬研究[D].成都:電子科技大學(xué),2011.
[16]熊壯,王潤杰,陳蕾,等.動(dòng)態(tài)三維樹實(shí)時(shí)仿真設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2009(8):2004-2007.