1 引言
虛擬現(xiàn)實(shí)是一種先進(jìn)的人機(jī)接口技術(shù),它利用計(jì)算機(jī)生成三維的、基于感知信息的模擬環(huán)境,并使用戶與虛擬環(huán)境進(jìn)行交互。目前,虛擬現(xiàn)實(shí)技術(shù)已經(jīng)廣泛應(yīng)用于軍事模擬、視景仿真、虛擬漫游以及科學(xué)可視化等領(lǐng)域?;谟吞镢@井工作的特殊性,鉆井模擬器作為虛擬培訓(xùn)的設(shè)備尤為重要。它采用虛擬現(xiàn)實(shí)技術(shù),開發(fā)過程基于現(xiàn)代計(jì)算機(jī)控制技術(shù)、計(jì)算機(jī)仿真技術(shù)、計(jì)算機(jī)圖形技術(shù)、計(jì)算機(jī)網(wǎng)絡(luò)技術(shù),并結(jié)合了鉆井工程的實(shí)際工藝,改變了原有的鉆井培訓(xùn)方法。鉆井模擬器視景仿真系統(tǒng)是鉆井模擬器的重要組成部分,主要作為三維場景的展現(xiàn)和鉆井井場實(shí)時動畫的模擬。
早期的鉆井模擬器視景仿真系統(tǒng)采用3DS Max 建模,結(jié)合OpenGL 對三維模型進(jìn)行控制。隨著機(jī)械設(shè)備和工藝流程的處理日益復(fù)雜,系統(tǒng)的實(shí)時性及場景的可控性都不能有效的展現(xiàn)。因此,提出了一種基于3D 和Virtools 技術(shù)的虛擬開發(fā)方法,以Virtools 技術(shù)為平臺將3D 模型及動畫轉(zhuǎn)化為Virtools 環(huán)境下可控的實(shí)時動畫,較好地解決了問題。
2 技術(shù)概況
2.1 3DS Max 簡介
3DS Max 是世界上使用較為廣泛的3D 動畫軟件,可以進(jìn)行三維建模、動畫編輯、渲染,并且廣泛應(yīng)用于游戲開發(fā)、角色動畫、電影視覺效果和設(shè)計(jì)行業(yè)領(lǐng)域。該軟件功能強(qiáng)大,可擴(kuò)展性好,在角色動畫方面具有很大優(yōu)勢,可使用豐富的插件,方便開發(fā)。3DS Max 和其他軟件配合流暢,新版本提供了新的接口技術(shù)和優(yōu)化,極大改進(jìn)了交互,明顯提高了速度。
2.2 Virtools 簡介
Virtools 是由法國全球交互三維開發(fā)解決方案公司VIRTOOLS 所開發(fā),其三維引擎已被微軟Xbox 認(rèn)可方便易用,應(yīng)用領(lǐng)域廣。
Virtools 包括:一個創(chuàng)作應(yīng)用程序、一個動作引擎、一個渲染引擎、一個Web 播放器、一個軟件開發(fā)工具包。除了自身的3D/VR 開發(fā)平臺Virtools Dev 以外,它還有以下五個可選模塊以適合不同的應(yīng)用:Physicx Pack 物理屬性、VR Pack虛擬現(xiàn)實(shí)、AI Pack 人工職能、Xbox Kit 游戲開發(fā)、VirtoolsServer 服務(wù)器。
作為一種強(qiáng)大的三維開發(fā)工具,按照其功能的不同,Virtools 模塊組可分為開發(fā)模塊、生成模塊和發(fā)布模塊。開發(fā)模塊包括創(chuàng)作應(yīng)用程序和軟件開發(fā)工具包;生成模塊包括行為引擎和渲染引擎;發(fā)布模塊包括EXE 文件生成器和Web發(fā)播放器,可以在單機(jī)上運(yùn)行,Web 播放器可以建立基于C/S模式的網(wǎng)絡(luò)虛擬環(huán)境。
3 3DS Max 模型創(chuàng)建
虛擬環(huán)境的建模是整個視景仿真系統(tǒng)建立的基礎(chǔ),主要包括:幾何建模(Geometric Modeling)、運(yùn)動建模(KinematicModeling)、物理建模(Physical Modeling)、對象行為建模(Object Behavior)以及模型分割(Model Segmentation)等。
鉆井模擬器視景仿真系統(tǒng)中虛擬環(huán)境的實(shí)現(xiàn)過程基本分為三步:第一步是幾何建模,主要包括用多邊形或三角形構(gòu)成對象的立體外形;第二步是物理建模,主要包括對幾何建模的結(jié)果進(jìn)行紋理、顏色、光照等處理;第三步是具體程序控制,主要通過運(yùn)動建模的方法實(shí)現(xiàn)虛擬環(huán)境下的物體運(yùn)動模擬,采用對象行為建模和模型分割的方法提高了整體環(huán)境下模型運(yùn)動的真實(shí)感和靈活性。
3DS Max 的幾何建模方法主要有多邊形(Polygon)建模、非均勻有理B 樣條曲線建模(NURBS)、細(xì)分曲面技術(shù)建模(SubdiVision Surface)。通常建立一個模型可以分別通過以下幾種方法得到,但有優(yōu)劣、繁簡之分。在鉆井模擬器視景仿真系統(tǒng)的模型制作過程中使用的主要建模方法和技術(shù)為:基本物體(Primitive Object)法及擴(kuò)展物體(Extended Primitive)法構(gòu)建基本幾何體模型,再通過修改器(Modify)修改加工成需要的模型;運(yùn)用放樣(Loft)法,非均勻有理B 樣條曲線(NURBS)法生成表面比較復(fù)雜的曲面;運(yùn)用細(xì)分曲面技術(shù)得到光滑程度高的模型細(xì)節(jié);運(yùn)用布爾(Boolean)運(yùn)算法,生成結(jié)構(gòu)比較復(fù)雜的模型;運(yùn)用貼圖給模型賦予材質(zhì),使模型具有顏色、反光度、透明度等光學(xué)特性;給模型賦以紋理(Texture)增加真實(shí)感;注重模型優(yōu)化環(huán)節(jié),在模型表面具有同樣平滑度的情況下,盡量減少頂點(diǎn)(Vertices)和面數(shù)(Faces),以降低模型的復(fù)雜度。
圖1
4 模型在Virtools 中的使用
4.1 Virtools 環(huán)境下模型的導(dǎo)入
將3DS Max 中制作的模型導(dǎo)入到Virtools 中之前,需要在3DS Max 中安裝3dMax Explorer.exe 文件。通過該軟件把3DS Max 中構(gòu)建的模型以.nmo 的格式輸出。.nmo 文件是Virtools 默認(rèn)的用于存儲角色和場景以及物體等信息的文件格式,其中包含了一個或者多個單元信息,也包括了將要在Virtools 中使用的相關(guān)動畫腳本。然后將對應(yīng)的.nmo 文件導(dǎo)入到Virtools 中,添加實(shí)行交互的模塊腳本。在項(xiàng)目保存成可編輯的工程文件.cmo 文件,或者只讀工程文件.vmo 后,可通過Virtools 自帶的程序開發(fā)包SDK 進(jìn)行應(yīng)用程序開發(fā)。
由于Virtools 不是三維制作軟件,在導(dǎo)出時,模型要進(jìn)行相應(yīng)的信息轉(zhuǎn)換??梢詮?DS Max 中導(dǎo)出的元素包括標(biāo)準(zhǔn)網(wǎng)格和面片網(wǎng)格組成的幾何體,材質(zhì),各類標(biāo)準(zhǔn)燈光類型,攝像機(jī),3D Frame 方式導(dǎo)入的虛擬體,動畫,以及樣條線。
4.2 角色模型及動畫的導(dǎo)出
輸出的模型主要分為三種:Export as Objects 通常用于輸出場景;Export as a Character 用于輸出帶有動畫的角色模型;Export Animation Only 只是輸出角色動畫腳本,在VirtoolsDevelopment 中添加不同的角色動畫進(jìn)行行為交互。
成功的導(dǎo)出角色模型和動畫,需要注意動畫制作的細(xì)節(jié)。輸出的動畫不能涉及到中心點(diǎn)有變化的動畫,否則會在Virtools Dev 執(zhí)行動畫時出錯;建議使用Bezier、Linear 或者TCB 動畫形式,有益于動畫的編譯;在3DS Max 中制作的動畫不能有添加和刪除的情況,否則無法被Virtools Dev 識別;要對關(guān)鍵幀進(jìn)行處理,保證骨骼蒙皮正常,使得動畫正確且連貫。
圖2
5 結(jié)束語
基于3DS Max 的三維模型制作,結(jié)合Virtools 環(huán)境是進(jìn)行交互式虛擬現(xiàn)實(shí)系統(tǒng)研發(fā)的有效方法,該方法在鉆井模擬器視景仿真系統(tǒng)中的應(yīng)用取得了良好的效果。在環(huán)境漫游、動畫控制,場景交互等方面展現(xiàn)突出的優(yōu)勢。
參考文獻(xiàn)
[1]李琳,張子遜,何玉林.虛擬環(huán)境建模方法及應(yīng)用.重慶大學(xué)學(xué)報(bào),2002,(6)
[2]黃峻.3ds max6 白金手冊(升級版).北京:兵器工業(yè)出版社,2004,(7)
[3]邱岳偉.基于最新圖形處理器的圖形引擎技術(shù)研究.西北工業(yè)大學(xué)碩士學(xué)位論文,2006[4] 劉明昆.三維游戲設(shè)計(jì)師寶典[M] .成都:四川電子音像出版中心,2005
[5] 李昌國,朱福全,譚良等. 基于3D 和Virtools 技術(shù)的虛擬實(shí)驗(yàn)開發(fā)方法研究[J]. 計(jì)算機(jī)工程與應(yīng)用 2006,(3)
[6] 王樂,陳定方,尹念東.基于Virtools 的分布式虛擬現(xiàn)實(shí)技術(shù)研究[J]. 湖北工業(yè)大學(xué)學(xué)報(bào),2005,(3)
[7] Richard s.Wright, Jr. Benjamin Lipchak 著. 徐波 譯OpenGL 超級寶典[M]. 人民郵電出版社 2005,(9)