摘 要: 根據(jù)視景仿真" title="視景仿真">視景仿真對建模的要求和特點,,論述了如何利用專業(yè)實時三維建模軟件MultiGen Creator構(gòu)建大規(guī)模地形和對象模型,,以及使用MultiGen Creator提供的OpenFlight API進行輔助建模的方法。
關(guān)鍵詞: 建模 視景仿真 MultiGen Creator軟件 三維地形 OpenFlight API接口
近年來,,隨著計算機圖形學(xué),、計算機網(wǎng)絡(luò)技術(shù)、仿真技術(shù)以及相關(guān)硬件技術(shù)的迅速發(fā)展,,視景仿真及建模技術(shù)已經(jīng)在軍事模擬訓(xùn)練,、工程建筑、影視娛樂,、醫(yī)療和教育培訓(xùn)等諸多領(lǐng)域得到了廣泛應(yīng)用,。虛擬環(huán)境中仿真對象及其場景建模是整個視景仿真系統(tǒng)建立的基礎(chǔ)。參與仿真系統(tǒng)的模型不僅需要能夠逼真地再現(xiàn)真實場景和對象,,而且必須滿足實時渲染與交互性的要求,,這樣才能使參與者在虛擬現(xiàn)實系統(tǒng)中產(chǎn)生沉浸感。因此,,針對虛擬環(huán)境建模技術(shù)的研究對于視景仿真系統(tǒng)的實現(xiàn)具有重要意義,。
在虛擬現(xiàn)實環(huán)境中,常用的建模技術(shù)主要包括幾何建模" title="幾何建模">幾何建模,、物理建模,、行為建模、模型分割以及音頻建模等,。其中,,幾何建模是虛擬環(huán)境建模的基礎(chǔ),行為建模,、物理建模等則體現(xiàn)了虛擬環(huán)境中模型的特征,。幾何建模處理物體的幾何和形狀的表示,研究圖形數(shù)據(jù)結(jié)構(gòu)與算法等問題,。行為建模,、物理建模主要處理物體的運動和行為等內(nèi)在屬性的描述。只有將現(xiàn)實環(huán)境中對象的幾何外形和行為規(guī)則與其物理屬性有機結(jié)合,,才能構(gòu)造出符合仿真應(yīng)用要求的三維對象模型,。同時,所構(gòu)建的模型還需滿足虛擬建模技術(shù)的常用指標(biāo)———交互顯示能力,、交互式操縱能力,、易于構(gòu)造能力的要求。
本文根據(jù)視景仿真對建模的要求和特點,,論述了如何利用專業(yè)實時三維建模軟件MultiGen Creator構(gòu)建大規(guī)模地形和對象模型,,以及使用MultiGen Creator提供的OpenFlight API進行輔助建模的方法,。
1 MultiGen Creator簡介
MultiGen Creator是美國MULTIGEN-PARADIGM公司推出的專業(yè)實時仿真三維建模軟件,它較好地解決了實時運行中真實感與實時渲染的關(guān)系,,是惟一將多邊形建模,、矢量建模和地形生成集成在一個軟件包中的手動建模工具,。由于其具備強大便捷的矢量編輯,、交互式建模與裝配以及地形地貌生成功能,所以已成為視景仿真領(lǐng)域應(yīng)用最廣的建模工具,。
MultiGen Creator軟件主要由基本建模環(huán)境模塊,、地形建模" title="地形建模">地形建模模塊和特殊用途模塊組成。其中基本建模環(huán)境模塊給建模人員提供一個交互的,、可視化建模環(huán)境,,用戶可以便捷地進行仿真對象建模。地形建模模塊提供了強大的批處理三維地形,、地貌生成工具,。特殊用途模塊主要包括公路、儀表構(gòu)建模塊等,。
2 基于MultiGen Creator的三維地形建模
三維地形建模是指將一定范圍內(nèi)適當(dāng)比例尺的真實地形高程數(shù)據(jù),、地貌特征數(shù)據(jù),根據(jù)不同的地形轉(zhuǎn)換算法" title="轉(zhuǎn)換算法">轉(zhuǎn)換算法,,結(jié)合包含真實地形表面細節(jié)的紋理,,生成具有一定組織序列、能夠近似表示部分地球表面狀況的多邊形集合,。地形建模的整體流程如圖1所示,。
2.1 三維地形建模過程
2.1.1 規(guī)劃地形數(shù)據(jù)庫
根據(jù)仿真目的和對場景的要求,結(jié)合現(xiàn)有實時系統(tǒng)" title="實時系統(tǒng)">實時系統(tǒng)的硬件和軟件平臺性能,,在滿足實時性要求的前提下,,對應(yīng)用于仿真系統(tǒng)的整個模型數(shù)據(jù)庫的多邊形預(yù)估。最簡單的多邊形估算方法是:實時系統(tǒng)硬件每秒鐘處理多邊形數(shù)量除以幀頻,。對于所創(chuàng)建的地形模型而言,,通用的規(guī)則是將多邊形預(yù)算的1/3用于地形模型,1/3用于地物模型(如房屋,、樹木等),,其余1/3用于場景中的運動物體模型。
2.1.2 地形數(shù)據(jù)的預(yù)處理
目前常用的地形高程數(shù)據(jù)有美國地質(zhì)測量局(USGS)的DEM數(shù)據(jù),、美國圖像地圖局(NIMA)的DTED數(shù)據(jù)和一些其他來源的數(shù)據(jù),。這些格式的地形數(shù)據(jù)不能直接在MultiGen Creator軟件中使用,必須進行處理,,轉(zhuǎn)換成Creator的DED專用數(shù)據(jù)格式,。為此MultiGen Creator提供了相應(yīng)的轉(zhuǎn)換工具,如readusgs、image2ded,、float2ded,、image2ded以及catdma等。
2.1.3 創(chuàng)建地形參數(shù)設(shè)置
(1)導(dǎo)入DED格式地形高程數(shù)據(jù),,在相應(yīng)的高程比例尺上設(shè)置顏色,、紋理和材質(zhì)。這些屬性將應(yīng)用于生成的地形模型,。
(2)選擇要創(chuàng)建地形的目標(biāo)區(qū)域,,建模人員可以通過鼠標(biāo)或指定經(jīng)緯度的方式進行確認。同時,,根據(jù)仿真的應(yīng)用類型,,確定生成地形的LOD細節(jié)層次數(shù)目。
(3)設(shè)置地圖投影類型,。MultiGen Creator提供了五種地圖投影類型:Flat Earth,、UTM、Geocentric,、Lambert Conic Conformal以及Trapezoidal,。用戶可以根據(jù)仿真要求和即將創(chuàng)建地形的真實地球區(qū)域,選擇最適合的投影方式以減少投影誤差,。
2.1.4 地形轉(zhuǎn)換算法選擇
對地形模型有不同需要的仿真類型,,選擇不同的轉(zhuǎn)換算法和參數(shù),生成地形的多邊形數(shù)量和場景外觀也會有很大差異,,進而最終影響仿真系統(tǒng)的性能和顯示效果,。因此必須根據(jù)具體情況選擇最適合的地形轉(zhuǎn)換算法。MultiGen Creator提供了Polymesh,、Delaunay,、TCT以及CAT四種三角形化算法將高程數(shù)據(jù)轉(zhuǎn)換為地形模型。
(1)Polymesh算法
Polymesh轉(zhuǎn)換算法根據(jù)設(shè)定的高程信息采樣率在原始DED文件中進行有規(guī)律采樣,,以獲得地形多邊形頂點坐標(biāo),,進而創(chuàng)建矩形網(wǎng)格面的地形模型。一個地形模型的組節(jié)點是由X方向乘以Y方向的2×2個地形組節(jié)點構(gòu)成,,每四個低級的LOD地形組節(jié)點構(gòu)成更高級的地形組節(jié)點,,不同的LOD模型組節(jié)點包含的地形節(jié)點數(shù)量保持不變。生成地形的頂點高度根據(jù)Z Scale參數(shù)對原始的采樣高程數(shù)據(jù)縮放得到,。Polymesh算法提供了四種地形三角形化的方法,。Best Fit根據(jù)三個相鄰頂點高程相同則生成一個三角形的規(guī)則創(chuàng)建地形,生成的地形模型用于地形與海岸線連接的平坦區(qū)域,。BottomRight/UpperLeft根據(jù)SGI Performer中三角形化規(guī)則生成地形三角形模型,。BottomLeft/UpperRight則按照普通圖形硬件的三角形化規(guī)則生成地形三角形模型,。QuadsinFlatArea通過四個高程相同頂點形成一個四邊形來代替兩個三角形的規(guī)則創(chuàng)建地形。用戶可以根據(jù)High LOD Polygon Count參數(shù)提示,,調(diào)整高程采樣率,,以控制最高級LOD模型多邊形數(shù)量,從而滿足實時系統(tǒng)多邊形預(yù)算的要求,。
(2)Delaunay算法
Delaunay轉(zhuǎn)換算法是基于Delaunay三角網(wǎng)的地形生成算法,。與Polymesh算法不同,它對原始數(shù)據(jù)中的每個高程點都進行處理,,從最低分辨率的LOD開始生成地形,。較低LOD地形模型的頂點被結(jié)合到更高級的LOD中,,以保持每一個LOD的頂點與更高級分辨率LOD的頂點相符,,使不同LOD地形模型之間平滑過渡。通常情況下,,生成同樣精度的地形模型,,Delaunay算法比Polymesh算法使用多邊形的數(shù)量少。
如果需要對山脊和山谷檢測,,則構(gòu)成山脊和山谷的高程點將被加入到三角化處理中,。如要保護海岸線,Creator將生成的地形多邊形與海岸線進行相交測試,,并將沿海的高程點加入三角化計算中,。這一過程重復(fù)執(zhí)行,直到數(shù)據(jù)中未使用的高程點與相鄰高程點的平均高程的差值小于Terrain Accuracy Tolerance的公差,或者地形多邊形數(shù)量達到最大面與組的限制,。
(3)CAT算法
CAT轉(zhuǎn)換算法對Delaunay算法進行了改進,。它改變了地形的分塊模式,采用相鄰LOD間的三維變形(Morphing)技術(shù)來平滑過渡層次間的切換,,可消除瓷片邊界現(xiàn)象,。但是只有SGI Performer2.0以上版本才支持此算法。與其他算法不同,,CAT算法創(chuàng)建的LOD模型不使用分塊地形,,LOD間的切換是在面到面級別的替換,它隨著視點在地形數(shù)據(jù)庫上的靠近,,動態(tài)使用較高級LOD的多邊形代替低級的LOD中相應(yīng)的多邊形,,從而保證地形LOD轉(zhuǎn)換的平滑過渡效果,而不會出現(xiàn)“突躍”現(xiàn)象,。
(4)TCT算法
TCT轉(zhuǎn)換算法實際是一種限制性的Delaunay算法,。使用TCT算法創(chuàng)建的地形模型只有一個LOD,因此只能用于批處理地形轉(zhuǎn)換,。與其他算法不同,,它可以將地貌矢量特征數(shù)據(jù)DFD與地形高程數(shù)據(jù)一起處理,,生成包含地貌特征(如道路、河流以及湖泊等)的完整地形模型,。地貌特征不是簡單地投影到地形表面,,而是成為地表上的一部分。用戶可以選擇隨地形一起生成的地貌特征種類,。與其他算法相比,,TCT算法所生成地形模型的多邊形數(shù)量將顯著增加。
2.1.5 地形模型的生成與測試發(fā)布
設(shè)置完成創(chuàng)建地形所需的參數(shù)和規(guī)則后,,生成地形模型的工作就由MultiGen Creator自動完成了,。生成地形數(shù)據(jù)庫后,應(yīng)首先在MultiGen Creator中瀏覽,,仔細檢查可能出現(xiàn)的如細長三角形(Edge Slivers),、切換LOD時出現(xiàn)的垂直邊界(Wall/Gaps)等異常現(xiàn)象,。對于檢查通過的地形模型還應(yīng)在實時系統(tǒng)中加載測試,,查看系統(tǒng)運行時幀頻是否滿足要求、切換LOD時是否平滑過渡以及地形紋理和地貌特征數(shù)據(jù)是否符合要求等,。如果出現(xiàn)問題,,應(yīng)該調(diào)整參數(shù),重新生成地形數(shù)據(jù)庫,,直至滿足系統(tǒng)運行要求,。
對于沒有大瑕疵的地形模型,最后仍需對部分地形紋理以及地貌模型進行修正調(diào)整,,經(jīng)過反復(fù)測試,,才能投入使用。圖2為一塊映射地形紋理和地貌數(shù)據(jù)(公路)的地形模型,。
2.2 地形紋理的應(yīng)用
地形紋理貼圖是增強三維地形模型真實感的一個重要途徑,。對于細節(jié)層次較低的模型,甚至可以直接使用紋理代替地形多邊形,,從而提高地形模型的多邊形使用效率,。
滿足MultiGen Creator要求的地形紋理可由衛(wèi)星、航拍及其他來源的影像資料經(jīng)過優(yōu)化處理得到,。建模人員可以在地形高程比例尺指定不同高程顏色的同時,,進行相應(yīng)的紋理設(shè)置,包含真實地理坐標(biāo)信息的地形紋理可以采用同樣方式進行映射,。另一種方式是使用間接紋理映射,,即將地形多邊形的顏色、紋理以及材質(zhì)等屬性對應(yīng)到一個特殊圖像文件上,,再將圖像文件映射到地形模型,。圖像像素顏色與地形多邊形屬性之間的對應(yīng)關(guān)系保存在后綴為.indrect的文件中,。在地形轉(zhuǎn)換過程中,當(dāng)?shù)匦味噙呅蔚捻旤c與相應(yīng)的間接紋理控制文件信息匹配時,,對應(yīng)的多邊形屬性會被自動應(yīng)用到相應(yīng)的地形多邊形上,。
同時,MultiGen Creator提供了多分辨率紋理(mipmap)和索引分塊(clip texture)技術(shù),,用來解決因大量應(yīng)用紋理而消耗內(nèi)存,、影響系統(tǒng)性能的問題。多分辨率紋理是指將對應(yīng)相同地區(qū)的地形紋理分成一組不同分辨率的紋理組,。在實時運行中,,隨著視點變化,選用相應(yīng)分辨率的紋理,,減少內(nèi)存使用,。紋理分塊技術(shù)指將較大的地形紋理進行分塊索引,在應(yīng)用中根據(jù)需要將分塊紋理根據(jù)一定算法調(diào)入調(diào)出內(nèi)存,,從而實現(xiàn)通過紋理的分塊調(diào)度來提高系統(tǒng)的運行效率,。
2.3 地貌特征的應(yīng)用
地貌特征主要指存在于真實地形之上的河流,、湖泊,、森林等自然景觀以及公路、橋梁,、建筑等人文景觀,。在地形數(shù)據(jù)庫中添加這些地貌特征,對于增強地形模型的真實性具有重要意義,。
目前常見的原始地貌特征數(shù)據(jù)格式有DFAD,、DLG和其他矢量數(shù)據(jù)。用戶可以使用MultiGen Creator提供的工具,,根據(jù)需要方便地將所需特征轉(zhuǎn)換為MultiGen的DFD格式,,在地形建模過程中使用。DFD數(shù)據(jù)格式使用特征類型碼(FID)對地形特征進行分類,,每個特征類型碼對應(yīng)一組定義特征表面材質(zhì)屬性的代碼(SMC),。兩者結(jié)合決定特征數(shù)據(jù)映射到地形模型上時的紋理、材質(zhì)以及顏色等屬性,。
將地貌特征數(shù)據(jù)映射到地形模型上的方法主要分為預(yù)先映射和事后映射,。預(yù)先映射主要指在地形模型生成之前設(shè)置需要映射的地貌特征。地形的多邊形將圍繞地貌特征生成,,例如將河流選擇為預(yù)先映射方式處理,,則河流會成為地形多邊形的組成部分。這對于地面仿真應(yīng)用具有更加真實的視覺效果,,但是會大量增加地形多邊形的數(shù)量,。事后映射方式指在地形模型生成之后,,再投影所需地貌數(shù)據(jù)。
3 基于MultiGen Creator的三維對象建模
在計算機輔助設(shè)計(CAD),、三維動畫和其他領(lǐng)域,,通常使用大量的曲線曲面以及復(fù)雜的紋理構(gòu)建三維模型。但從視景仿真領(lǐng)域的觀點看來,,這種基于工程設(shè)計或動畫的建模思路,,由于沒有考慮渲染效率,根本不能滿足實時系統(tǒng)的要求,。使用3DMAX,、MAYA等建模工具創(chuàng)建的三維模型,必須進行精簡優(yōu)化,,才能在實時系統(tǒng)中使用,。雖然建模人員可以使用MultiGen Creator提供的Vsimplify工具對引入模型簡化,但仍然需要大量繁瑣的手工工作,,例如構(gòu)建適當(dāng)?shù)腖OD,、面缺失等問題。因此,,多數(shù)情況下更多使用MultiGen Creator重新建模,。
與MultiGen Creator所提供的三維地形建模中強大的批處理功能相比,在三維實體建模方面MultiGen Creator略顯簡單,,看起來不如3DMAX等建模軟件便捷,。但建模目的不同,建模思路也不盡相同,。MultiGen Creator主要針對實時系統(tǒng)設(shè)計,,通過高效的層次數(shù)據(jù)結(jié)構(gòu)、LOD技術(shù)以及紋理技術(shù)等方面的設(shè)計優(yōu)化,,在協(xié)調(diào)處理模型真實感與實時渲染之間具有其他建模軟件無法比擬的優(yōu)勢,。
使用MultiGen Creator進行對象建模,應(yīng)在首先滿足實時渲染的基礎(chǔ)上,,盡可能地提高模型的逼真度,。建模人員綜合運用好MultiGen Creator提供的建模功能,同樣可以構(gòu)建具有高度真實感的實體模型,。
(1)邏輯化層次結(jié)構(gòu),。MultiGen Creator采用的openflight格式是一種高效的邏輯化層次數(shù)據(jù)結(jié)構(gòu)。因此,,建模人員必須針對對象模型的特點,,采用模塊化設(shè)計方法,合理細分層次節(jié)點,。這種做法不僅有助于模型的編輯,、LOD設(shè)置,、外部引用以及數(shù)據(jù)庫的重組和優(yōu)化,同時也為提高實時系統(tǒng)效率構(gòu)建了良好的基礎(chǔ),。
(2)LOD技術(shù),。LOD是一組代表同一物體不同分辨率的模型組。實時系統(tǒng)在處理模型時,,會根據(jù)設(shè)定的LOD距離切換不同細節(jié)層次的模型,,從而有效地提高系統(tǒng)多邊形利用效率。因此,,在建模過程中合理地設(shè)置LOD層次顯得尤為重要,。通常的做法是首先構(gòu)建細節(jié)層次最高的模型,然后通過自動(Vsimplify工具)和手工(如構(gòu)建包圍盒)結(jié)合的方式,,自高而低地構(gòu)造不同細節(jié)層次模型,。
(3)紋理映射技術(shù)。使用紋理貼圖代替物體建模過程中可模擬或難以模擬的細節(jié),,可以有效地提高模型的逼真度和渲染速度,。例如使用透明紋理模擬門窗和欄桿,可以有效地降低模型的復(fù)雜度,。而利用各向同性構(gòu)建樹木,、標(biāo)牌等的BillBoard技術(shù),創(chuàng)建的模型僅是單個平面,。紋理圖片的來源大多是拍攝實物對象的三維正投影照片,,經(jīng)修正處理得到。需要注意的是,,紋理大小應(yīng)是2的冪次,否則在Vega驅(qū)動時無法正常顯示,。
在MultiGen Creator環(huán)境下也可以進行構(gòu)建和連接物體的運動建模,。Creator提供了DOF技術(shù),DOF節(jié)點可以控制其子節(jié)點按照設(shè)置的自由度范圍進行移動和轉(zhuǎn)動,,使物體表現(xiàn)出合乎邏輯的運動方式,。聲音節(jié)點也可以在物體建模的過程中加入,從而豐富視聽內(nèi)容,,增強視景仿真的綜合效果,。
4 OpenFlight API輔助建模
OpenFlightAPI是MultiGen Creator提供的用于操作Creator和OpenFlight(flt)格式文件的編程接口,它由一系列C語言的頭文件和相應(yīng)函數(shù)庫組成,。OpenFlight API提供讀,、寫和建立flt格式文件的功能,用戶也可以利用它自定義數(shù)據(jù)格式及創(chuàng)建插件,。在輔助建模方面,,使用OpenFlight API可以幫助建模人員以編程的形式方便,、準確地完成手工難以完成的建模任務(wù),例如規(guī)定弧度的彎曲物體等一些真實尺寸要求較高情況,。使用編程方式讀取數(shù)據(jù)創(chuàng)建控制線,、放樣面,再結(jié)合手工處理,,可以極大地加速建模過程,。甚至對于地形模型,也可以使用OpenFlight API進行編程處理,。
下面是利用OpenFlight API創(chuàng)建flt文件的部分偽代碼,。利用從CAD中導(dǎo)出的數(shù)據(jù),在flt文件中創(chuàng)建放樣面,,再結(jié)合手工處理放樣(Loft),,生成精確的機翼模型。圖3為部分放樣和完全放樣的模型圖,。
#include ″mgapiall.h″//必須包括此頭文件
mgrec *dbroot,,*AerofoilNode,*AFPart1,,*pNode,,*vNode;
mgInit(&argc,,argv),;//初始化OpenFlight API runtime
if(!(dbroot=mgNewDb(″XXX.flt″))) {//創(chuàng)建數(shù)據(jù)庫
mgExit();
}
//創(chuàng)建一組具有層次關(guān)系的數(shù)據(jù)庫節(jié)點
AerofoilNode=mgNewRec(fltGroup),;
mgAttach(dbroot,,AerofoilNode);
AFPart1=mgNewRec(fltGroup),;
mgAttach(AerofoilNode,,AFPart1);
for(index1<NUMPOLY創(chuàng)建多邊形數(shù)量)
{ //創(chuàng)建多邊形節(jié)點
polynode=mgNewRec(fltPolygon),;
mgAppend(dbroot,,polynode);
for(index2<NUMVEX該多邊形頂點數(shù)量)
{//創(chuàng)建Vertex節(jié)點
vNode=mgNewRec(fltVertex),;
mgAppend(prec,,vNode);
mgSetCoord3d(vrec,,fltCoord3d,,x,y,z),;
}
……
mgWriteDb(dbroot),;//關(guān)閉數(shù)據(jù)庫
mgCloseDb(dbroot);
mgExit(),;
……
視景仿真已經(jīng)成為現(xiàn)代仿真技術(shù)的一個新的研究領(lǐng)域,,在軍事模擬訓(xùn)練、影視娛樂等諸多領(lǐng)域得到了廣泛應(yīng)用,。虛擬環(huán)境中仿真對象及其場景建模是整個視景仿真系統(tǒng)建立的基礎(chǔ),。如何有效地協(xié)調(diào)實時運行中真實感與實時渲染的關(guān)系,是虛擬環(huán)境建模的重點,。本文就如何使用MultiGen Creator創(chuàng)建高效的三維地形,、對象模型進行了討論,同時介紹了利用MultiGen的Openflight API進行編程輔助建模的方法,。希望能對業(yè)界的同行提供一定的借鑒,。
參考文獻
1 王 乘,周均清,,李立軍.Creator可視化仿真建模技術(shù)[M].武漢:華中科技大學(xué)出版社,,2005
2 甚 蔚,夏立文.虛擬現(xiàn)實技術(shù)[M].北京:北京希望電子出版社,,2002
3 MultiGenUser′s Guide[M].Multigen-Paradigm Inc,,U.S.A,2002
4 萬 剛.虛擬地景仿真中地物的幾何建模技術(shù)[J].系統(tǒng)仿真學(xué)報,,2001,;13(增刊)
5 李 穎,薛海斌,,朱伯立等.OpenGL技術(shù)應(yīng)用實例精粹[M].北京:國防工業(yè)出版社,,2001,45~70
6 曾芬芳.虛擬現(xiàn)實技術(shù)[M].上海:上海交通大學(xué)出版社,,1997