林寶聚,馬思群,張偉龑,李健,陶然,李恩實(shí)
1.大連市科技館,遼寧大連 116011
2.大連交通大學(xué),交通運(yùn)輸學(xué)院,遼寧大連 116028
3.日本富朗巴有限公司,日本東京 1086021
4.大連中真智能科技開發(fā)有限公司,遼寧大連 116028
LOD技術(shù)在動(dòng)車組虛擬現(xiàn)實(shí)系統(tǒng)開發(fā)中的應(yīng)用
林寶聚1,馬思群2,4,張偉龑1,李健2,陶然2,李恩實(shí)3
1.大連市科技館,遼寧大連 116011
2.大連交通大學(xué),交通運(yùn)輸學(xué)院,遼寧大連 116028
3.日本富朗巴有限公司,日本東京 1086021
4.大連中真智能科技開發(fā)有限公司,遼寧大連 116028
多細(xì)節(jié)層次模型(LOD)技術(shù)已廣泛應(yīng)用于計(jì)算機(jī)仿真、虛擬現(xiàn)實(shí)等多個(gè)領(lǐng)域。動(dòng)車組虛擬現(xiàn)實(shí)系統(tǒng)中,由于復(fù)雜模型零件個(gè)數(shù)眾多,結(jié)構(gòu)復(fù)雜,為了盡可能展示逼真的虛擬場(chǎng)景,運(yùn)用LOD理念進(jìn)行模型簡(jiǎn)化具有重要意義?,F(xiàn)有的研究成果多著眼于模型網(wǎng)格和紋理結(jié)構(gòu)的簡(jiǎn)化,較少考慮模型本身所具有的外部形狀特征。本文提出了一種分步式模型簡(jiǎn)化算法,先通過簡(jiǎn)化的邊折疊方法進(jìn)行預(yù)處理,再運(yùn)用基于包圍盒的AABB算法進(jìn)一步簡(jiǎn)化,并且通過引入閾值來(lái)控制生成不同精度的模型。實(shí)驗(yàn)證明,處理后的模型不但達(dá)到了較高的簡(jiǎn)化率,而且具有較高的真實(shí)感。
動(dòng)車組;虛擬現(xiàn)實(shí);LOD技術(shù);邊折疊方法;AABB算法
高速動(dòng)車組虛擬現(xiàn)實(shí)系統(tǒng)是虛擬現(xiàn)實(shí)技術(shù)在鐵路機(jī)車車輛行業(yè)的工程應(yīng)用,以向公眾展示高新技術(shù)裝備的結(jié)構(gòu)組成及故障應(yīng)對(duì)的科學(xué)知識(shí)為目的。為了創(chuàng)建一個(gè)能使操作者感受到身臨其境的逼真環(huán)境,就需要?jiǎng)?chuàng)建盡可能逼真的模型和虛擬場(chǎng)景。但是,高速動(dòng)車組結(jié)構(gòu)與裝配關(guān)系復(fù)雜,以時(shí)速350 km的CRH3型高速動(dòng)車組轉(zhuǎn)向架為例,包括一系、二系、制動(dòng)、牽引電機(jī)、輪對(duì)組成、構(gòu)架、輔助裝置等子系統(tǒng),含零部件2 000多個(gè)。如果模型和場(chǎng)景過于精細(xì),數(shù)據(jù)量過于龐大,尤其是以攝像鏡頭的平移、旋轉(zhuǎn)、推拉、搖動(dòng)、變焦、及組合變換對(duì)場(chǎng)景和物體進(jìn)行不同方位的展示時(shí)[1-2],使所開發(fā)的系統(tǒng)極為復(fù)雜。所以在虛擬現(xiàn)實(shí)系統(tǒng)的建模中,有必要對(duì)同一個(gè)模型生成具有不同層次細(xì)節(jié)的多個(gè)版本,在圖形繪制中依據(jù)視點(diǎn)選擇合適的層次細(xì)節(jié)模型繪制,降低系統(tǒng)復(fù)雜度。
多細(xì)節(jié)層次模型,(levels of detail,LOD)技術(shù),指根據(jù)物體模型的節(jié)點(diǎn)在顯示環(huán)境中所處的位置和重要度,決定物體渲染的資源分配,降低非重要物體的面數(shù)和細(xì)節(jié)度,從而獲得高效率的渲染運(yùn)算[3]。
復(fù)雜幾何模型的實(shí)時(shí)繪制是虛擬場(chǎng)景繪制中的重要研究課題,將LOD技術(shù)引入到復(fù)雜幾何模型簡(jiǎn)化中來(lái)能夠大大提高用戶的實(shí)時(shí)交互性。LOD模型簡(jiǎn)化技術(shù)主要思想就是化繁為簡(jiǎn),將原始模型通過簡(jiǎn)化算法簡(jiǎn)化成新的近似模型,即LOD模型,然后根據(jù)模型的重要度用近似模型替換原始模型,從而使場(chǎng)景描繪的更加快速流暢。在實(shí)際繪制過程中,再依據(jù)不同選擇條件(視點(diǎn)、遠(yuǎn)近等條件),選擇合適的LOD近似模型進(jìn)行繪制。文獻(xiàn)[4]描述了利用該技術(shù)進(jìn)行場(chǎng)景繪制的方法,如圖1所示。
圖1 LOD基本概念圖示
1.1 LOD技術(shù)發(fā)展的3個(gè)階段
LOD技術(shù)的發(fā)展大致經(jīng)歷了離散LOD模型、連續(xù)LOD模型和多分辨率模型3個(gè)階段[5]。各階段的特點(diǎn)如表1。
1.2 LOD的生成方法
生成LOD模型的方法主要有:細(xì)分法、采樣法和刪減法。如表2所示。
表1 LOD模型發(fā)展階段及主要特點(diǎn)
表2 LOD生成方法概述
在虛擬現(xiàn)實(shí)中對(duì)三維實(shí)體模型的創(chuàng)建普遍被簡(jiǎn)化為三角形網(wǎng)格,以網(wǎng)格自身的特性為出發(fā)點(diǎn),存在著3種不同基本化簡(jiǎn)燥作,它們分別是頂點(diǎn)刪除操作、邊折疊操作和面刪除操作。其中頂點(diǎn)刪除操作是將網(wǎng)格上某一個(gè)頂點(diǎn)刪除,然后對(duì)此點(diǎn)相鄰處所形成的三角形空洞進(jìn)行三角剖分補(bǔ)全,使整個(gè)網(wǎng)格的拓?fù)湫员3忠恢拢贿呎郫B操作與刪除頂點(diǎn)操作類似,它只是把某一個(gè)三角形的邊進(jìn)行壓縮,換句話說(shuō),就是刪除此邊,然后將此邊兩端的頂點(diǎn)重合為1個(gè)新的點(diǎn);面刪除操作主要是把網(wǎng)格中某個(gè)三角形面壓縮為一個(gè)頂點(diǎn),即將某個(gè)三角形刪除,然后將此三角形3個(gè)點(diǎn)重合為1個(gè)新的點(diǎn)[6]。3種基本操作方法如圖2所示。
圖2 層次細(xì)節(jié)模型簡(jiǎn)化的基本操作
采用以上方法進(jìn)行操作時(shí),需要將每個(gè)步驟所造成的誤差記錄下來(lái),然后對(duì)原始模型采用誤差代價(jià)計(jì)算方法來(lái)計(jì)算每個(gè)步驟對(duì)每一個(gè)網(wǎng)格所造成的誤差,此誤差即為權(quán)值,最后將此數(shù)值按照一定的順序組成一個(gè)隊(duì)列,而后開始循環(huán)進(jìn)行網(wǎng)格基本化操作。每當(dāng)循環(huán)一次操作時(shí),都從中選取誤差權(quán)值最小的作為操作對(duì)象,然后更新整個(gè)網(wǎng)格,重新計(jì)算各個(gè)網(wǎng)格誤差權(quán)值,再進(jìn)行誤差權(quán)值的排序,這樣就完成一次循環(huán)。當(dāng)循環(huán)進(jìn)行到最小的誤差權(quán)值低于用戶設(shè)定的一個(gè)臨界值時(shí),此循環(huán)結(jié)束,這樣也就滿足了用戶的需求。按照此方法進(jìn)行循環(huán),當(dāng)我們根據(jù)原始模型建立的多個(gè)不同層次細(xì)節(jié)相似模型后,這些類似模型的誤差值是逐漸遞增的[7],為此這種具有層次化的模型能夠更好地應(yīng)用到虛擬現(xiàn)實(shí)系統(tǒng)中。
考慮到動(dòng)車組虛擬場(chǎng)景中所需模型量大、種類多、模型更新速度快等特點(diǎn),結(jié)合LOD模型的生成方法,本文選擇了基于邊折疊的網(wǎng)格簡(jiǎn)化算法。基于邊折疊的網(wǎng)格簡(jiǎn)化從多方面考慮模型,例如從模型紋理,模型色澤,模型光線和表面法向量等,此方法方便快捷,能夠更有效地實(shí)現(xiàn)不同LOD模型實(shí)時(shí)性轉(zhuǎn)換。
2.1 邊折疊算法的基本思想
邊折疊算法的基本思想是將一條邊的2個(gè)頂點(diǎn)折疊到邊的某一點(diǎn)上,然后刪去相鄰的三角形,邊折疊算法要解決的關(guān)鍵問題是如何判斷一條邊是否要?jiǎng)h去[8]。
本文介紹的是一種基于誤差分析的邊折疊算法[9],即分別計(jì)算刪除每條邊所對(duì)整體網(wǎng)格影響的誤差大小,然后從中選取誤差值最小的邊進(jìn)行刪除,以此類推;當(dāng)最小誤差的邊刪除后,重新對(duì)各個(gè)邊的誤差進(jìn)行分析,在從剩余的邊中選取誤差最小的邊再進(jìn)行刪除。整體思路如圖3所示。
圖3 邊折疊算法
邊折疊算法用公式表示為(s1,s2)→s,其步驟可以表示為:
1)將所有頂點(diǎn)s1、s2移到s;
2)把所有s2出現(xiàn)的地方都用s1替換;
3)刪去s2和相關(guān)的三角形。
2.2 邊折疊算法的誤差評(píng)估
誤差評(píng)估的主要目的是為了在LOD模型生成過程中(即采取折疊算法中),盡量將簡(jiǎn)化后的模型的誤差降到最低,在不改變?cè)寄P吞匦缘那疤嵯?,?shí)現(xiàn)圖像的實(shí)時(shí)性。此評(píng)估方法的主要思路為:分析整個(gè)模型的網(wǎng)格,將網(wǎng)格中的每個(gè)節(jié)點(diǎn)與其周圍的所有的平面作為研究對(duì)象,然后求出此節(jié)點(diǎn)到周圍各個(gè)平面的距離的平方值,最終累加在一起作為此節(jié)點(diǎn)的誤差值。當(dāng)進(jìn)行變折疊算法時(shí),某個(gè)邊被刪除后,此邊的2個(gè)節(jié)點(diǎn)會(huì)被重合于1個(gè)新的節(jié)點(diǎn),這個(gè)新的節(jié)點(diǎn)周圍形成新的平面組是原始2個(gè)節(jié)點(diǎn)平面組的合并。其中每個(gè)新形成的平面都可以用以下方程表示:
式中:n=[nx,ny,nz]T是平面的法向量,d為常量,s=[x,y,z]T是網(wǎng)格中的節(jié)點(diǎn)。
那么,點(diǎn)s到該平面距離的平方為
Q1(s)+Q2(s)=(Q1+Q2)(s)(1)
因此累加每個(gè)點(diǎn)到周圍各個(gè)平面的距離的平方,列出一個(gè)方程式。2個(gè)頂點(diǎn)壓縮為1個(gè)頂點(diǎn)后,相應(yīng)的二次式也是原來(lái)2個(gè)點(diǎn)的二次式的和。可以用
Q(s)=Q1(s)+Q2(s)=(Q1+Q2)(s)
來(lái)定義一次邊壓縮操作(s1,s2)→s的誤差。
2.3 壓縮后目標(biāo)點(diǎn)的位置
如果想將2個(gè)頂點(diǎn)壓縮為1個(gè)頂點(diǎn),則需要考慮壓縮后的目標(biāo)點(diǎn)將位于何處。這里有2個(gè)方法可以選擇:
1)一般的邊折疊算法。
此方法思路非常的簡(jiǎn)單,不用費(fèi)時(shí)費(fèi)力的選取新節(jié)點(diǎn)的具體位置,而是將此邊兩端的節(jié)點(diǎn)之一作為新的節(jié)點(diǎn),即將其中的一個(gè)節(jié)點(diǎn)挪到另一個(gè)節(jié)點(diǎn)上,使2個(gè)節(jié)點(diǎn)重合為新的節(jié)點(diǎn)。然而如何選取這2個(gè)節(jié)點(diǎn)哪個(gè)作為新的節(jié)點(diǎn)的方法,主要是分別計(jì)算出移動(dòng)2個(gè)節(jié)點(diǎn)的誤差值,即Q1(s)、Q2(s),選取誤差值最大的為新的節(jié)點(diǎn),即不被移動(dòng)的節(jié)點(diǎn)。
2)推廣的邊折疊算法。
為了獲得更好的效果,一般的邊折疊算法是不夠的,通過下面的計(jì)算可以找出最優(yōu)的位置。
計(jì)算Q(s)為最小值時(shí),s=-A-1B,因此所計(jì)算出來(lái)的誤差最小值為
Q(s)=-BTA-1B+C
然而一些情況下矩陣A是不可逆矩陣,即計(jì)算過程中無(wú)法求出A-1,在此情況下只能采取方法1)來(lái)判斷新節(jié)點(diǎn)s的位置,即一般的折疊算法。根據(jù)實(shí)際應(yīng)用采取不同的算法對(duì)模型進(jìn)行簡(jiǎn)化,推廣的邊折疊算法簡(jiǎn)化出的模型與原始模型更為接近,三角網(wǎng)格的大小和形狀也非常均勻平滑。但是對(duì)于一些對(duì)簡(jiǎn)單的模型,對(duì)虛擬環(huán)境要求不高的情況下,就沒有必要采用推廣的邊折疊算法,可以采取一般的邊折疊算法,這樣不僅能快速的完成建模,也不需要太高的硬件水平。
但是由于繪制原理的約束,即使應(yīng)用了LOD進(jìn)行模型簡(jiǎn)化,仍無(wú)法回避如下問題:
1)場(chǎng)景復(fù)雜的情況下,需要大量的時(shí)間建模,浪費(fèi)人力資源和計(jì)算機(jī)資源;
2)建模數(shù)量多引起計(jì)算量巨大,保障虛擬環(huán)境質(zhì)量下,影響系統(tǒng)實(shí)時(shí)響應(yīng)或需要龐大的硬件開銷;
3)虛擬場(chǎng)景是由三維模型創(chuàng)建的,虛擬場(chǎng)景的顏色是由軟件制作出來(lái)的,與現(xiàn)實(shí)場(chǎng)景一定會(huì)存在色差,因此在真實(shí)感方面會(huì)有欠缺。
綜上所述,論文提出了一種分步模式的模型簡(jiǎn)化算法:先通過簡(jiǎn)化的邊折疊方法進(jìn)行預(yù)處理,再運(yùn)用基于包圍盒的約束算法進(jìn)一步簡(jiǎn)化,并通過引入閾值來(lái)控制生成不同精度的模型[10]。具體實(shí)現(xiàn)步驟為:導(dǎo)入零件模型數(shù)據(jù)→對(duì)模型進(jìn)行邊折疊預(yù)處理→遍歷場(chǎng)景圖、進(jìn)行包圍盒計(jì)算→基于AABB盒的約束方法簡(jiǎn)化模型→導(dǎo)出簡(jiǎn)化后的模型數(shù)據(jù)到場(chǎng)景圖結(jié)構(gòu)文件。
本文以動(dòng)車組車體的簡(jiǎn)化為例,對(duì)所提出的算法進(jìn)行編程驗(yàn)證。距離用戶距離越近,視點(diǎn)越好,車體的細(xì)節(jié)顯示也越細(xì);反之,距離用戶距離遠(yuǎn)、視點(diǎn)不好的位置車體顯示粗略,甚至某些細(xì)節(jié)全部省略,例如車窗雨刷等[11]。圖4給出了三維模型在距離觀測(cè)者遠(yuǎn)近不同位置的簡(jiǎn)化結(jié)果(即圖4中Ⅰ、Ⅱ、Ⅲ、Ⅳ所示)。
圖4 動(dòng)車模型LOD簡(jiǎn)化效果
表3為同一模型以2種不同文件格式進(jìn)行簡(jiǎn)化時(shí)的文件大小變化(在進(jìn)行邊折疊時(shí),給定的代價(jià)值是E=4.0;在基于AABB盒的模型簡(jiǎn)化時(shí),閾值分別為M=0.01,H=10,N=0.1)。由表3可以看出,2種格式的文件經(jīng)過邊折疊后,簡(jiǎn)化率分別達(dá)到47.03%和48.45%。經(jīng)過邊折疊后的模型再經(jīng)過AABB盒的模型簡(jiǎn)化后,簡(jiǎn)化率分別達(dá)到了65.34%和66.68%。計(jì)算結(jié)果表明:文中提出的算法是可行的。根據(jù)圖4的模型簡(jiǎn)化效果可以看出:模型簡(jiǎn)化的結(jié)果能很好地保持原始模型的可視效果,而且具有較高的文件簡(jiǎn)化率。
表3 模型簡(jiǎn)化時(shí)文件大小的變化過程
由于動(dòng)車組零件眾多,造成虛擬現(xiàn)實(shí)系統(tǒng)模型在細(xì)節(jié)部分比較復(fù)雜,渲染過程會(huì)出現(xiàn)明顯遲緩的現(xiàn)象。研究者通過在軟件系統(tǒng)中引入LOD技術(shù)有效地解決了這一問題,同時(shí)得到下面的結(jié)論:
1)目前LOD的簡(jiǎn)化算法研究主要集中于低層次的網(wǎng)格簡(jiǎn)化(如地形信息,可視計(jì)算等),針對(duì)復(fù)雜產(chǎn)品的高層次的模型簡(jiǎn)化算法的研究相對(duì)匱乏。研究者結(jié)合所處理的模型結(jié)構(gòu)的特點(diǎn),在吸收了連續(xù)性LOD的部分思想,提出了一種基于AABB盒的模型簡(jiǎn)化算法,系統(tǒng)實(shí)踐證明了該算法有良好的簡(jiǎn)化效果。
2)為提高簡(jiǎn)化算法的適用性,研究者又根據(jù)視點(diǎn)到模型的距離,提出了使用AABB盒與邊折疊的分步的模型簡(jiǎn)化方法。經(jīng)過編程實(shí)踐,對(duì)動(dòng)車組模型的簡(jiǎn)化率達(dá)到了68.99%;該分步算法還可以通過相應(yīng)的閾值,動(dòng)態(tài)控制輸出模型的大小,生成不同精度的模型。
[1]郭陽(yáng)明,翟正軍,陸艷紅.虛擬場(chǎng)景生成中的LOD技術(shù)綜述[J].計(jì)算機(jī)仿真,2005,22(12):180-183.
[2]羅陸鋒,鄒湘軍,劉天湖,等.大數(shù)據(jù)量虛擬景觀的三維模型優(yōu)化與漫游[J].系統(tǒng)仿真學(xué)報(bào),2008,21(6):1655-1657.
[3]畢振波,鄭愛勤.當(dāng)前地下水流有限元系統(tǒng)關(guān)鍵問題的探討[J].浙江海洋學(xué)院學(xué)報(bào),2011,30(1):77-82.
[4]孫豪陽(yáng).動(dòng)車組檢修/維修虛擬裝配系統(tǒng)LOD技術(shù)研究[D].大連:大連交通大學(xué),2009:15-17.
[5]于一.虛擬場(chǎng)景實(shí)時(shí)真實(shí)繪制技術(shù)和分形理論的研究及其應(yīng)用[D].太原:中北大學(xué),2008:15-16.
[6]張昌明,張虹.一種基于邊折疊的LOD自動(dòng)生成算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2005,26(11):3109-3111.
[7]馮良波,羅大庸.3D多層次模型簡(jiǎn)化算法的研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2010,20(4):97-100.
[8]朱蕭峰.虛擬現(xiàn)實(shí)場(chǎng)景中多細(xì)節(jié)層次模型及其顯示的研究[D].上海:同濟(jì)大學(xué),2004:19-20.
[9]郝筱松.虛擬現(xiàn)實(shí)中的三維模型簡(jiǎn)化技術(shù)[D].西安:西安電子科技大學(xué),2007:22-23.
[10]呂廣憲,潘懋,吳煥萍,等.面向真三維地學(xué)建模的海量虛擬八叉樹模型研究[J].北京大學(xué)學(xué)報(bào):自然科學(xué)版,2007,2(1):1-6.
[11]趙爭(zhēng)鳴,顧耀林.基于三角形折疊的視相關(guān)多層次細(xì)節(jié)模型[J].計(jì)算機(jī)工程,2007,3(4):278-279.
App lication of level of detail technology in the virtual reality system of electric multip le units
LINBaoju1,MA Siqun2,4,ZHANGWeiyan1,LI Jian2,TAO Ran2,LIEnshi3
1.Dalian Science and Technology Museum,Dalian 116011,China
2.School of Traffic and Transportation Engineering,Dalian Jiao Tong University,Dalian 116028,China
3.FORUM8 Co.,Ltd.,Tokyo 1086021,Japan
4.Dalian Zhongzhen Artificial Intelligence Technology Development Co.,Ltd.,Dalian 116028,China
Level of detail(LOD)technology iswidely used in computer simulation,virtual reality and other fields.In the virtual reality system of electricmultiple units(EMUs),complexmodelswith complex structures havemany spare parts,so simplifying themodel by LOD technology is important in showing realistic virtual scenes.Mostof re-searches currently only focus on simplifying the grid and texture of the model while ignoring the characteristics of the external shape of the model.In this paper,a method to simplify models by fractional steps is proposed.This method contains two steps as follows:the first step is to preprocess themodel by the edge collapsemethod;the sec-ond step is to use the axis-aligned bounding box(AABB)algorithm based on bounding box to do further simplifica-tion.Different precision models are generated by the introduction of thresholds.The experiment results show that the modelwhich has been processed not only achieves a high simplification rate,but also has high fidelity.
electricmultiple units;virtual reality;LOD technology;edge collapsemethod;AABB algorithm
U271.91
A
1009-671X(2015)03-060-05
10.3969/j.issn.1009-671X.201412002
2014-12-01.
日期:2015-05-28.
國(guó)家自然科學(xué)基金資助項(xiàng)目(51220001);中國(guó)鐵道總公司科技研究開發(fā)計(jì)劃課題(2013J012-B);大連市科技計(jì)劃資助項(xiàng)目(2011D11ZC093);2013年大連小微科技企業(yè)扶持資金項(xiàng)目.
林寶聚(1956-),男,大連科技館館長(zhǎng),副研究員;馬思群(1969-),男,教授.
馬思群,E-mail:masiqun@djtu.edu.cn.
http://www.cnki.net/kcms/detail/23.1191.U.20150528.1010.001.html