李海勝,王 清
(鄭州鐵路職業(yè)技術學院 軟件學院,河南 鄭州 450052)
2008年,Esperient公司推出了實時(real time)三維視景仿真軟件Esperient Creator3.0(EspCreator).EspCreator以其強大的交互功能廣泛應用于產(chǎn)品展示、培訓、教育與娛樂等領域.目前,EspCreator已被波音、洛克希德·馬丁公司和聯(lián)邦技術等全球排名前十的航空與防御公司采用.而在國內(nèi),使用EspCreator進行三維視景仿真系統(tǒng)的開發(fā)幾乎是一項空白.文章介紹了EspCreator,提出了基于EspCreator開發(fā)三維視景仿真系統(tǒng)的技術路線,該路線對使用EspCreator進行三維視景仿真系統(tǒng)的開發(fā)具有一定的參考意義.
基于EspCreator進行三維視景仿真系統(tǒng)的開發(fā),與基于其他開發(fā)平臺(如Cult3D,Virtools,Vega/Prime)類似,其流程如圖1所示.
圖1 開發(fā)流程圖
三維模型的本質(zhì)是點、線、面的集合;集合的不同組合構成各種三維模型.在建模過程中,須在保證精度的基礎上減少模型包含的點、線、面的數(shù)量,防止場景運行畫面不連貫、停滯的現(xiàn)象發(fā)生.這種現(xiàn)象本質(zhì)上是幀率Frames Per Second(FPS)過低產(chǎn)生的,F(xiàn)PS反映了系統(tǒng)實時渲染所需的時間.FPS<30,畫面會顯得不連續(xù);FPS>60,則可以顯著提高交互感與逼真感.
此外,使用紋理映射將多邊形(墻面、地板、細小復雜物體等)以貼圖的形式展現(xiàn).這種方式能夠有效減少多邊形個數(shù)(特別是細碎多邊形),模型真實感、質(zhì)感更強,能夠得到逼真的顯示效果.要注意的是,多邊形個數(shù)不是影響幀率的唯一因素.MultiGen Creator提供了三種模型優(yōu)化策略:Level Of Detail(LOD)技術、紋理技術與實例化技術,能在保證精度的同時有效地優(yōu)化場景模型[1]208.
模型導入EspCreator過程中,如需保持模型貼圖,則需將模型使用Deep Exploration保存為Right Hemisphere Binary(.rh)格式.但是,.rh格式似乎不能產(chǎn)生最佳的圖形顯示效果[2]792.
EspCreator為場景中的三維模型提供了物理屬性設置選項,用于描述模型的物理特性.EspCreator提供的物理屬性有Object is wall(設置物體為墻,常用于碰撞檢測)、Object is floor or ground(設置物體為地面)、Object is Liquid(設置物體為液體)等;此外,EspCreator還提供了碰撞形狀、靜摩擦力、彈性系數(shù)、液體密度等參數(shù)精細描述物體的物理特征.剛體的運動受上述參數(shù)、環(huán)境、重力、場景中其他剛體的影響.
1.3.1 菜單設置交互
國內(nèi)目前較流行的仿真平臺Cult3D提供了Event Map 窗口進行交互控制設置.通過設置相應的觸發(fā)器、對象和動作及其相關參數(shù),建立事件、動作和場景的相互關系,從而進行交互[3]251.同Cult3D的交互模式類似,EspCreator的交互控制主要通過“Object(對象)+ Animation(動畫)”的方式完成.首先選擇對象,為對象添加動畫,設置動畫激活模式、動畫參數(shù)即可完成對象的交互控制.
EspCreator中每一個對象均有Properties、Alterations、Overrides、UV Wraps、Animations與Physical六種屬性.而交互控制主要使用Animations屬性.EspCreator為Animations屬性提供了60余種動畫,有Object Transforms(平移,旋轉,縮放)、Color Changes(顏色變化)、real time physics(實時物理)、keyboard and joystick controls等.綜合使用這些動畫可輕松實現(xiàn)背景變換、材質(zhì)變換、紋理變換、聲音播放、操作提示等功能.對象的Animations屬性可添加不同種類的多個動畫,動畫之間相互獨立或互為激活條件.
EspCreator中動畫的Active(激活模式)有多種,有Immediate(立即)、Triggered(觸發(fā))、Collision(碰撞)、User Pick(拾取)、Pick/Rev Re-Pick(拾取/重置未拾取)Trigger/Reset UnTrig(觸發(fā)/重置未觸發(fā))等.根據(jù)不同的交互要求,為動畫選擇相應的激活模式.Triggered觸發(fā)是某一對象的動畫以其自身或其他對象的Trigger動畫為激活條件,是交互控制的難點.
例如,給對象B(場景對象)添加“Move01”動畫,使其沿X方向移動,而動畫的Active(激活模式)是Trigger/Reset UnTrig即觸發(fā)激活;給對象A(按鈕、場景對象等)添加“Trigger Animation01”動畫,激活模式為“User Pick”,Trigger屬性為對象B的“Move01”動畫.運行該場景,鼠標單擊拾取對象A,對象B開始移動,實現(xiàn)交互控制.Trigger觸發(fā)的流程,如圖2所示.
圖2 Trigger觸發(fā)流程圖
EspCreator提供了一系列標準GUI組件(標簽、按鈕、滾動條等),使用標準GUI組件可以快速創(chuàng)建交互式界面.設置GUI組件與場景對象動畫的控制關系,實現(xiàn)系統(tǒng)界面與對象的交互控制.
1.3.2 腳本控制交互
EspCreator提供了兩種內(nèi)置腳本語言Lisp與CScript.文章采用Lisp腳本控制實現(xiàn)了軸承拆裝虛擬實驗系統(tǒng),如圖3所示.
圖3 軸承拆裝虛擬實驗系統(tǒng)
實驗過程中,須按照提示逐步完成零件的拆卸,才能最終完成實驗;否則,系統(tǒng)提示錯誤對錯誤操作不反應.系統(tǒng)中控制16mm螺釘拆卸的Lisp代碼如下所示:
(if (= luodingPickable 1)
(Progn
(TriggerAnimation "luoding" "Move")
(TriggerAnimation "luoding" "showhide")
(SetObjectOnOff "tipSec" 1)
)
)
.esp是Right Hemisphere交互格式,該格式文件體積小,便于桌面、網(wǎng)絡發(fā)布,可通過Esperient Creator Viewer(EspViewer)查看.Esperient Creator Viewer是用于播放.esp文件的獨立程序(EspViewer.exe),能夠與工程一起發(fā)布..exe可脫離EspCreator環(huán)境獨立運行,常用于桌面發(fā)布,是最常見的發(fā)布方式.其實質(zhì)是將.esp與EspViewer.exe打包一起發(fā)布.
.esp文件不僅能由EspViewer播放,還能通過EspViewer的ActiveX控件播放,由此可將場景嵌入到網(wǎng)頁中,實現(xiàn)網(wǎng)絡發(fā)布.EspCreator作品網(wǎng)絡發(fā)布需.esp文件與HTML代碼.將EspCreator“Create HTML Code for ActiveX”菜單生成的HTML代碼嵌入到.htm文件中即可將場景嵌入到網(wǎng)頁內(nèi)(.esp文件與.htm文件需位于同一目錄下);并且可通過JavaScript實現(xiàn)頁面與EspViewer ActiveX控件之間的通信(鼠標在頁面上單擊、釋放時,JavaScript通過SendAPICommand函數(shù)向EspViewer ActiveX控件傳遞Lisp/CScript命令,EspViewer ActiveX控件接收命令,執(zhí)行相關動作).
按上述流程設計實現(xiàn)了虛擬車間三維視景仿真系統(tǒng),如圖4所示.通過鼠標拖拽(左鍵旋轉,右鍵縮放,中鍵平移)或鍵盤控制第一人稱視角從任意角度觀察模型;單擊菜單按鈕,鏡頭聚焦場景中對象(設定好觀察角度,添加相機,給相應菜單添加“View Camera Match”動畫即可實現(xiàn)視點切換,無需編程);單擊機床操作開關,模擬機床操作(伴有操作提示、機器運行音效、語音提示);從而達到學員訓練目的.該系統(tǒng)交互控制主要通過為對象Animations屬性添加動畫實現(xiàn).
(a)虛擬車間三維全景
(b)模擬機車
文章詳細說明了采用EspCreator創(chuàng)建三維視景仿真系統(tǒng)的技術路線即“建模+模型優(yōu)化+交互控制”,介紹了建模過程、模型優(yōu)化策略、模型導入技巧,對交互控制的實現(xiàn)原理、難點進行了詳細分析,最終實現(xiàn)了虛擬車間三維視景仿真系統(tǒng).實驗證明,采用EspCreator創(chuàng)建三維視景仿真系統(tǒng)具有工作量小、交互性強、場景效果逼真等特點.依靠菜單即可實現(xiàn)復雜的交互控制,便捷的產(chǎn)品發(fā)布功能使EspCreator在裝備訓練、虛擬實驗室建設等領域具有廣闊的應用前景.
參考文獻:
[1] 龔 琳.基于Creator/Vega的虛擬海戰(zhàn)視景系統(tǒng)仿真[J]. 測繪科學,2012,37(04).
[2] Pieter Pauwels,Ronald De Meyer,Jan Van Campenhout.Linking a Game Engine Environment to Architectural Information on the Semantic Web[J]. Journal of Civil Engineering and Architecture,2011,5(9).
[3] 胡林嵐,包崢嶸.基于Cult3D的機械創(chuàng)新虛擬實驗項目研究[J]. 實驗室研究與探索,2013,32(5).