林寶聚,馬思群,張偉龑,李健,陶然,李恩實
1.大連市科技館,遼寧大連 116011
2.大連交通大學,交通運輸學院,遼寧大連 116028
3.日本富朗巴有限公司,日本東京 1086021
4.大連中真智能科技開發(fā)有限公司,遼寧大連 116028
LOD技術在動車組虛擬現(xiàn)實系統(tǒng)開發(fā)中的應用
林寶聚1,馬思群2,4,張偉龑1,李健2,陶然2,李恩實3
1.大連市科技館,遼寧大連 116011
2.大連交通大學,交通運輸學院,遼寧大連 116028
3.日本富朗巴有限公司,日本東京 1086021
4.大連中真智能科技開發(fā)有限公司,遼寧大連 116028
多細節(jié)層次模型(LOD)技術已廣泛應用于計算機仿真、虛擬現(xiàn)實等多個領域。動車組虛擬現(xiàn)實系統(tǒng)中,由于復雜模型零件個數(shù)眾多,結構復雜,為了盡可能展示逼真的虛擬場景,運用LOD理念進行模型簡化具有重要意義?,F(xiàn)有的研究成果多著眼于模型網(wǎng)格和紋理結構的簡化,較少考慮模型本身所具有的外部形狀特征。本文提出了一種分步式模型簡化算法,先通過簡化的邊折疊方法進行預處理,再運用基于包圍盒的AABB算法進一步簡化,并且通過引入閾值來控制生成不同精度的模型。實驗證明,處理后的模型不但達到了較高的簡化率,而且具有較高的真實感。
動車組;虛擬現(xiàn)實;LOD技術;邊折疊方法;AABB算法
高速動車組虛擬現(xiàn)實系統(tǒng)是虛擬現(xiàn)實技術在鐵路機車車輛行業(yè)的工程應用,以向公眾展示高新技術裝備的結構組成及故障應對的科學知識為目的。為了創(chuàng)建一個能使操作者感受到身臨其境的逼真環(huán)境,就需要創(chuàng)建盡可能逼真的模型和虛擬場景。但是,高速動車組結構與裝配關系復雜,以時速350 km的CRH3型高速動車組轉向架為例,包括一系、二系、制動、牽引電機、輪對組成、構架、輔助裝置等子系統(tǒng),含零部件2 000多個。如果模型和場景過于精細,數(shù)據(jù)量過于龐大,尤其是以攝像鏡頭的平移、旋轉、推拉、搖動、變焦、及組合變換對場景和物體進行不同方位的展示時[1-2],使所開發(fā)的系統(tǒng)極為復雜。所以在虛擬現(xiàn)實系統(tǒng)的建模中,有必要對同一個模型生成具有不同層次細節(jié)的多個版本,在圖形繪制中依據(jù)視點選擇合適的層次細節(jié)模型繪制,降低系統(tǒng)復雜度。
多細節(jié)層次模型,(levels of detail,LOD)技術,指根據(jù)物體模型的節(jié)點在顯示環(huán)境中所處的位置和重要度,決定物體渲染的資源分配,降低非重要物體的面數(shù)和細節(jié)度,從而獲得高效率的渲染運算[3]。
復雜幾何模型的實時繪制是虛擬場景繪制中的重要研究課題,將LOD技術引入到復雜幾何模型簡化中來能夠大大提高用戶的實時交互性。LOD模型簡化技術主要思想就是化繁為簡,將原始模型通過簡化算法簡化成新的近似模型,即LOD模型,然后根據(jù)模型的重要度用近似模型替換原始模型,從而使場景描繪的更加快速流暢。在實際繪制過程中,再依據(jù)不同選擇條件(視點、遠近等條件),選擇合適的LOD近似模型進行繪制。文獻[4]描述了利用該技術進行場景繪制的方法,如圖1所示。
圖1 LOD基本概念圖示
1.1 LOD技術發(fā)展的3個階段
LOD技術的發(fā)展大致經(jīng)歷了離散LOD模型、連續(xù)LOD模型和多分辨率模型3個階段[5]。各階段的特點如表1。
1.2 LOD的生成方法
生成LOD模型的方法主要有:細分法、采樣法和刪減法。如表2所示。
表1 LOD模型發(fā)展階段及主要特點
表2 LOD生成方法概述
在虛擬現(xiàn)實中對三維實體模型的創(chuàng)建普遍被簡化為三角形網(wǎng)格,以網(wǎng)格自身的特性為出發(fā)點,存在著3種不同基本化簡燥作,它們分別是頂點刪除操作、邊折疊操作和面刪除操作。其中頂點刪除操作是將網(wǎng)格上某一個頂點刪除,然后對此點相鄰處所形成的三角形空洞進行三角剖分補全,使整個網(wǎng)格的拓撲性保持一致;邊折疊操作與刪除頂點操作類似,它只是把某一個三角形的邊進行壓縮,換句話說,就是刪除此邊,然后將此邊兩端的頂點重合為1個新的點;面刪除操作主要是把網(wǎng)格中某個三角形面壓縮為一個頂點,即將某個三角形刪除,然后將此三角形3個點重合為1個新的點[6]。3種基本操作方法如圖2所示。
圖2 層次細節(jié)模型簡化的基本操作
采用以上方法進行操作時,需要將每個步驟所造成的誤差記錄下來,然后對原始模型采用誤差代價計算方法來計算每個步驟對每一個網(wǎng)格所造成的誤差,此誤差即為權值,最后將此數(shù)值按照一定的順序組成一個隊列,而后開始循環(huán)進行網(wǎng)格基本化操作。每當循環(huán)一次操作時,都從中選取誤差權值最小的作為操作對象,然后更新整個網(wǎng)格,重新計算各個網(wǎng)格誤差權值,再進行誤差權值的排序,這樣就完成一次循環(huán)。當循環(huán)進行到最小的誤差權值低于用戶設定的一個臨界值時,此循環(huán)結束,這樣也就滿足了用戶的需求。按照此方法進行循環(huán),當我們根據(jù)原始模型建立的多個不同層次細節(jié)相似模型后,這些類似模型的誤差值是逐漸遞增的[7],為此這種具有層次化的模型能夠更好地應用到虛擬現(xiàn)實系統(tǒng)中。
考慮到動車組虛擬場景中所需模型量大、種類多、模型更新速度快等特點,結合LOD模型的生成方法,本文選擇了基于邊折疊的網(wǎng)格簡化算法?;谶呎郫B的網(wǎng)格簡化從多方面考慮模型,例如從模型紋理,模型色澤,模型光線和表面法向量等,此方法方便快捷,能夠更有效地實現(xiàn)不同LOD模型實時性轉換。
2.1 邊折疊算法的基本思想
邊折疊算法的基本思想是將一條邊的2個頂點折疊到邊的某一點上,然后刪去相鄰的三角形,邊折疊算法要解決的關鍵問題是如何判斷一條邊是否要刪去[8]。
本文介紹的是一種基于誤差分析的邊折疊算法[9],即分別計算刪除每條邊所對整體網(wǎng)格影響的誤差大小,然后從中選取誤差值最小的邊進行刪除,以此類推;當最小誤差的邊刪除后,重新對各個邊的誤差進行分析,在從剩余的邊中選取誤差最小的邊再進行刪除。整體思路如圖3所示。
圖3 邊折疊算法
邊折疊算法用公式表示為(s1,s2)→s,其步驟可以表示為:
1)將所有頂點s1、s2移到s;
2)把所有s2出現(xiàn)的地方都用s1替換;
3)刪去s2和相關的三角形。
2.2 邊折疊算法的誤差評估
誤差評估的主要目的是為了在LOD模型生成過程中(即采取折疊算法中),盡量將簡化后的模型的誤差降到最低,在不改變原始模型特性的前提下,實現(xiàn)圖像的實時性。此評估方法的主要思路為:分析整個模型的網(wǎng)格,將網(wǎng)格中的每個節(jié)點與其周圍的所有的平面作為研究對象,然后求出此節(jié)點到周圍各個平面的距離的平方值,最終累加在一起作為此節(jié)點的誤差值。當進行變折疊算法時,某個邊被刪除后,此邊的2個節(jié)點會被重合于1個新的節(jié)點,這個新的節(jié)點周圍形成新的平面組是原始2個節(jié)點平面組的合并。其中每個新形成的平面都可以用以下方程表示:
式中:n=[nx,ny,nz]T是平面的法向量,d為常量,s=[x,y,z]T是網(wǎng)格中的節(jié)點。
那么,點s到該平面距離的平方為
Q1(s)+Q2(s)=(Q1+Q2)(s)(1)
因此累加每個點到周圍各個平面的距離的平方,列出一個方程式。2個頂點壓縮為1個頂點后,相應的二次式也是原來2個點的二次式的和??梢杂?/p>
Q(s)=Q1(s)+Q2(s)=(Q1+Q2)(s)
來定義一次邊壓縮操作(s1,s2)→s的誤差。
2.3 壓縮后目標點的位置
如果想將2個頂點壓縮為1個頂點,則需要考慮壓縮后的目標點將位于何處。這里有2個方法可以選擇:
1)一般的邊折疊算法。
此方法思路非常的簡單,不用費時費力的選取新節(jié)點的具體位置,而是將此邊兩端的節(jié)點之一作為新的節(jié)點,即將其中的一個節(jié)點挪到另一個節(jié)點上,使2個節(jié)點重合為新的節(jié)點。然而如何選取這2個節(jié)點哪個作為新的節(jié)點的方法,主要是分別計算出移動2個節(jié)點的誤差值,即Q1(s)、Q2(s),選取誤差值最大的為新的節(jié)點,即不被移動的節(jié)點。
2)推廣的邊折疊算法。
為了獲得更好的效果,一般的邊折疊算法是不夠的,通過下面的計算可以找出最優(yōu)的位置。
計算Q(s)為最小值時,s=-A-1B,因此所計算出來的誤差最小值為
Q(s)=-BTA-1B+C
然而一些情況下矩陣A是不可逆矩陣,即計算過程中無法求出A-1,在此情況下只能采取方法1)來判斷新節(jié)點s的位置,即一般的折疊算法。根據(jù)實際應用采取不同的算法對模型進行簡化,推廣的邊折疊算法簡化出的模型與原始模型更為接近,三角網(wǎng)格的大小和形狀也非常均勻平滑。但是對于一些對簡單的模型,對虛擬環(huán)境要求不高的情況下,就沒有必要采用推廣的邊折疊算法,可以采取一般的邊折疊算法,這樣不僅能快速的完成建模,也不需要太高的硬件水平。
但是由于繪制原理的約束,即使應用了LOD進行模型簡化,仍無法回避如下問題:
1)場景復雜的情況下,需要大量的時間建模,浪費人力資源和計算機資源;
2)建模數(shù)量多引起計算量巨大,保障虛擬環(huán)境質量下,影響系統(tǒng)實時響應或需要龐大的硬件開銷;
3)虛擬場景是由三維模型創(chuàng)建的,虛擬場景的顏色是由軟件制作出來的,與現(xiàn)實場景一定會存在色差,因此在真實感方面會有欠缺。
綜上所述,論文提出了一種分步模式的模型簡化算法:先通過簡化的邊折疊方法進行預處理,再運用基于包圍盒的約束算法進一步簡化,并通過引入閾值來控制生成不同精度的模型[10]。具體實現(xiàn)步驟為:導入零件模型數(shù)據(jù)→對模型進行邊折疊預處理→遍歷場景圖、進行包圍盒計算→基于AABB盒的約束方法簡化模型→導出簡化后的模型數(shù)據(jù)到場景圖結構文件。
本文以動車組車體的簡化為例,對所提出的算法進行編程驗證。距離用戶距離越近,視點越好,車體的細節(jié)顯示也越細;反之,距離用戶距離遠、視點不好的位置車體顯示粗略,甚至某些細節(jié)全部省略,例如車窗雨刷等[11]。圖4給出了三維模型在距離觀測者遠近不同位置的簡化結果(即圖4中Ⅰ、Ⅱ、Ⅲ、Ⅳ所示)。
圖4 動車模型LOD簡化效果
表3為同一模型以2種不同文件格式進行簡化時的文件大小變化(在進行邊折疊時,給定的代價值是E=4.0;在基于AABB盒的模型簡化時,閾值分別為M=0.01,H=10,N=0.1)。由表3可以看出,2種格式的文件經(jīng)過邊折疊后,簡化率分別達到47.03%和48.45%。經(jīng)過邊折疊后的模型再經(jīng)過AABB盒的模型簡化后,簡化率分別達到了65.34%和66.68%。計算結果表明:文中提出的算法是可行的。根據(jù)圖4的模型簡化效果可以看出:模型簡化的結果能很好地保持原始模型的可視效果,而且具有較高的文件簡化率。
表3 模型簡化時文件大小的變化過程
由于動車組零件眾多,造成虛擬現(xiàn)實系統(tǒng)模型在細節(jié)部分比較復雜,渲染過程會出現(xiàn)明顯遲緩的現(xiàn)象。研究者通過在軟件系統(tǒng)中引入LOD技術有效地解決了這一問題,同時得到下面的結論:
1)目前LOD的簡化算法研究主要集中于低層次的網(wǎng)格簡化(如地形信息,可視計算等),針對復雜產(chǎn)品的高層次的模型簡化算法的研究相對匱乏。研究者結合所處理的模型結構的特點,在吸收了連續(xù)性LOD的部分思想,提出了一種基于AABB盒的模型簡化算法,系統(tǒng)實踐證明了該算法有良好的簡化效果。
2)為提高簡化算法的適用性,研究者又根據(jù)視點到模型的距離,提出了使用AABB盒與邊折疊的分步的模型簡化方法。經(jīng)過編程實踐,對動車組模型的簡化率達到了68.99%;該分步算法還可以通過相應的閾值,動態(tài)控制輸出模型的大小,生成不同精度的模型。
[1]郭陽明,翟正軍,陸艷紅.虛擬場景生成中的LOD技術綜述[J].計算機仿真,2005,22(12):180-183.
[2]羅陸鋒,鄒湘軍,劉天湖,等.大數(shù)據(jù)量虛擬景觀的三維模型優(yōu)化與漫游[J].系統(tǒng)仿真學報,2008,21(6):1655-1657.
[3]畢振波,鄭愛勤.當前地下水流有限元系統(tǒng)關鍵問題的探討[J].浙江海洋學院學報,2011,30(1):77-82.
[4]孫豪陽.動車組檢修/維修虛擬裝配系統(tǒng)LOD技術研究[D].大連:大連交通大學,2009:15-17.
[5]于一.虛擬場景實時真實繪制技術和分形理論的研究及其應用[D].太原:中北大學,2008:15-16.
[6]張昌明,張虹.一種基于邊折疊的LOD自動生成算法[J].計算機工程與設計,2005,26(11):3109-3111.
[7]馮良波,羅大庸.3D多層次模型簡化算法的研究[J].計算機技術與發(fā)展,2010,20(4):97-100.
[8]朱蕭峰.虛擬現(xiàn)實場景中多細節(jié)層次模型及其顯示的研究[D].上海:同濟大學,2004:19-20.
[9]郝筱松.虛擬現(xiàn)實中的三維模型簡化技術[D].西安:西安電子科技大學,2007:22-23.
[10]呂廣憲,潘懋,吳煥萍,等.面向真三維地學建模的海量虛擬八叉樹模型研究[J].北京大學學報:自然科學版,2007,2(1):1-6.
[11]趙爭鳴,顧耀林.基于三角形折疊的視相關多層次細節(jié)模型[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.
國家自然科學基金資助項目(51220001);中國鐵道總公司科技研究開發(fā)計劃課題(2013J012-B);大連市科技計劃資助項目(2011D11ZC093);2013年大連小微科技企業(yè)扶持資金項目.
林寶聚(1956-),男,大連科技館館長,副研究員;馬思群(1969-),男,教授.
馬思群,E-mail:masiqun@djtu.edu.cn.
http://www.cnki.net/kcms/detail/23.1191.U.20150528.1010.001.html