虛擬現實建模技術分析
本文關鍵詞:虛擬現實建模,由筆耕文化傳播整理發(fā)布。
(呼倫貝爾學院計算機系,內蒙古 呼倫貝爾 021008)
摘 要: 文章對三維建模和虛擬現實技術在計算機圖形學領域中的應用進行了分析。
關鍵詞:虛擬現實;VRML;建模技術
中圖分類號:TP391.9 文獻標識碼:A 文章編號:1007—6921(2008)21—0043—02
虛擬現實技術是近年來迅速發(fā)展的一門新興技術,也是多媒體技術發(fā)展的更高境界。虛擬現 實(Virtual Reality,簡稱VR),又稱臨境技術,是最近幾年得到迅速發(fā)展的技術。虛擬現實 就是采用以計算機為中心的現代高科技,生成逼真的視、聽、觸、嗅覺等一體化的虛擬環(huán)境 ,以自然的方式與虛擬環(huán)境中的客體進行交互作用、相互影響,從而產生身臨其境的感覺和 體驗。實現一種虛擬幻覺。它是一種高級的仿真技術,既可以做真實世界的物體仿真(如建 筑物模型),又可以做抽象物體的虛擬建模(如原子模型)。因此,虛擬現實技術在人工智能 、CAD、圖形仿真、虛擬通信、遙感、娛樂、軍事模擬訓練的許多學科帶來革命的變化,將 對一個國家的國防、軍事、政治、經濟、文化甚至日常生活產生深遠的影響。
1 虛擬現實建模技術
虛擬現實涉及的關鍵技術主要有:大規(guī)模數據的場景三維建模技術;動態(tài)實時的立體視覺 、聽覺等生成技術;三維定位、方向跟蹤、觸覺反憤等傳感技術和設備;符合人類認知心理的 三維自然交互技術;三維交互軟件及系統(tǒng)集成技術等。
虛擬現實建模技術的建模方法是虛擬現實技術中最重要的技術領域,也是虛擬現實技術中的關鍵技術之一,計算 機圖形學是虛擬現實的奠基石,在計算機圖形學中,被研究得最多的,也是最重要的研究方 向之一就是建模技術。建模技術的炮容十分廣泛,不僅涉及數學、動力學、運動學等基礎學 科,同時,還涉及機器人學、機械工程學和生物機械學等應用學科。虛擬 現 實 發(fā)展至今 ,己有了許多的建模軟件。主要有:WTK(WorldTool Kit)是美國Sense 8公司研制的虛擬現實 系統(tǒng)應用工具箱,是一套用來建造實時三維圖形應用系統(tǒng)的工具;DWB (Designer's WorkBen ch)是一高逼真度的三維建模和模擬系統(tǒng),它是集三維模型、景觀和儀表圖形顯示為一體的 建模軟件;Open GL開放式圖形軟件是Silicon Graphics開發(fā)的一種建立圖形庫的語言;虛擬 現實建模語言VRML (Virtual Reality Modeling Language),,其目的是提供一種用于網上的 虛擬世界的描述方法,它使用VRML瀏覽器能解釋的ASCII文本格式來描述世界和鏈接,是實 現虛擬現實的較好工具。
2 利用VRML構造動態(tài)的虛擬現實模型
VRML2.0它能使構造出的三維虛擬世界具有聲音,動畫,人機交互等功能,從而使計算機生 動逼真地模擬了真實的世界。實現動態(tài)的虛擬現實是VRML2.0的生命力所在,VRML2.0提供了 多種構造動態(tài)虛擬現實模型的方法,以下將一一介紹。
2.1 使用插值器改變對象
插值器節(jié)點有很多種,各自完成不同的功能,如改變對象在場景中方向的OrientationInter polator節(jié)點,用于改變觀察位置或形體位置的PositionInterpolator節(jié)點,用于坐標位置 運動的CoordinateInterpolator節(jié)點,還有ColorInterpolator可以修改Material節(jié)點的顏 色,NormalInterpolator可以改變法向節(jié)點中的值等等,另外,ScalarInterpolator是一個 基本的構造模塊,由它可以建造其他許多插值。使用插值器改變對象的原理大致是相同的, 這里以OrientationInterpolator節(jié)點實現旋轉對象為例子:
下面是OrientationInterpolator節(jié)點的定義:
OrientationInterpolator{
eventln SFFloat set fraction
exposedField MFFloat key [ ]
exposedField MFRotation keyValue [ ]
eventOut SFRotationvalue changed
}
它通常路由到一個Transform節(jié)點的rotation exposedField。其中的keyValue是一個SFRota tion,用來設立對象所期望的方向。在驅動插值器過程中,由TimeSensor節(jié)點隨時間的流逝 產生0~1之間遞增的SFFloat值,每產生一個值,經過路由Orientation Interpolator節(jié)點接收這個值,并把它的值與關鍵碼進行匹配,一旦匹配成功,則對應于這個關鍵碼(key)的關 鍵碼值(keyValue)被發(fā)送出去,如果這個值處于兩個相鄰的關鍵碼之間,則產生一個在與兩 個關鍵碼相對應的關鍵碼值之間進行插值的事件,得到的關鍵碼值又通過第二條路由,使Tr ansform節(jié)點接收到這個值,從而改變立體的位置。簡單地講,使用插值器改變對象形成動 畫,用戶只需給出一系列運動軌跡的中間態(tài)勢,由VRML解釋器自動平滑對象在這些中間態(tài)勢 間過渡,從而得到使對象按所給路線變化的動態(tài)效果。
2.2 在對象上包裝電影文件
把電影作為一個移動的紋理施加到對象上,能使虛擬世界呈現一種動態(tài)效果。例如在一個虛 擬房間中放置了一臺電視機,當漫游者進入房間時,看見電視機屏幕上正在放映電視或電影 ,而并非一副靜止死板的圖像,顯然就大大地增強了虛擬世界的逼真程度。
由MovieTexture節(jié)點完成對對象的包裝,利用這個節(jié)點,提供MPEG文件的URL和域值來控制 電影的播放時間和速度。該節(jié)點語法如下:
MovieTexture{
exposedField MFString url []
exposedField SFFloat speed 1
exposedField SFBool loop FALSE
exposedField SFTime startTime 0
exposedField SFTime stopTime 0
field SFBool repeatS TRUE
field SFBool repeatT TRUE
eventOut SFTime duration_changed
eventOut SFBool isActive
}
MovieTexture節(jié)點中的url域包含一個電影格式的文件,而不是一個靜態(tài)圖像文件,每一個M PEG電影都存儲了一系列電影畫面,電影的播放可以有開始、停止、繼續(xù)、循環(huán)進行播映。
2.3 使用角色,進行對象切換來構造動畫效果
所謂角色是指一個平坦的始終面向閱讀器的圖像,它是一種在虛擬世界中的2D對象,可以渲 染地更快,但是它是平面的,如果從側面看它們,它們就會消失掉,為了得到滿意的效果, 角色需要始終面向觀眾。
把一個動畫分解成很多靜態(tài)圖片,然后連續(xù)播放,給人的視覺造成動畫效果。這就是動畫角 色的原理。
角色的切換是由MySwitch節(jié)點完成的,該節(jié)點可以根據變化的whichchoice的值選擇相應的 節(jié)點顯示。由TimeSensor節(jié)點給出動畫開始時間,把fractiones changed事件的值傳遞到My Script節(jié)點,并被該節(jié)點的fraction函數處理,得到whichChoice事件的值,最后把whichCh oice事件的值傳遞到MySwitch節(jié)點,從而隨時間的流逝依次選擇一個角色顯示出來,直至時 間結束完成整個動畫過程。
2.4 視點動畫
由于VRML提供視點Viewpoint節(jié)點,這個節(jié)點允許為用戶設置一個有趣的理想點的位置和方 向,通過不斷改變視點的位置和方向可以達到和不斷改變對象位置和方向相似的動畫效果。 用戶可以從該點來觀察場景,在第一個新的觀察點,瀏覽器獲得的圖像就像是使用一部虛擬 的取景器在屏幕上播放一樣。替身在虛擬空間中的移動,就使得取景器不斷地調整其位置和 朝向。當Viewpoint節(jié)點是Transform節(jié)點的子節(jié)點時,視點的方位是在Transform節(jié)點的坐 標系內,如果坐標系移動,則視點也隨著移動。
如果虛擬世界是靜止的,而世界的作者能夠控制用戶的化身并帶領他在世界中漫游(比如展 示一個博物館的整體構造),在用戶眼中就會產生動畫效果。過程是把fraction changed事 件(產生的時間)值傳遞到旋轉節(jié)點(Orientationlnterpolator)和位置節(jié)點(PositionInterp olator)以產生新的視點方向和位置,分別把新產生的視點方向傳遞到視點(Viewpoint)節(jié)點 中以改變原先的值,從而產生動畫效果。
2.5 使用紋理坐標的動畫
如果把一副二維圖像包裹在對象上來進行著色,就像在墻上貼墻紙一樣,也能得到很好的效 果,這種二維圖像叫做紋理,節(jié)點ImageTexture負責添加紋理,紋理圖像一般是JPEG文件, 有時也可以是PNG或GIF文件。
假設要虛擬一個瀑布,可以在一個幾何體上施加一種水的紋理,但是這種紋理是靜止的,要 讓它動起來,有一種比較簡單的方法:設It對紋理與對象之間的映射所進行的變換,即通過T extureTransform節(jié)點移動、縮放或旋轉紋理,以產生動畫效果。在水的紋理變換上,可以 使紋理在縱向坐標上按時間循環(huán)地移動,用戶就會看到瀑布落水的動畫了。
VRML2.0提供大約五種構造動態(tài)虛擬模型的方法,這幾種方法分別適用不同場合,例如在漫 游時使用視點移動來產生動態(tài)效果,在繪制波光粼粼的湖面時用紋理坐標的移動來虛擬現實 ,在描述正放著電影的電影院時自然是用電影文件來包裹電影屏幕了。
[參考文獻]
[1] 任愛華多用戶虛擬現實建模技術研究[D]華中科技大學碩士學位論文,2 002.5(3):5~6.
[2] 張國榮虛擬現實技術及其應用與展望[J]廈門科技,1997,(4):5~6.
[3] 劉文亮基于VRML的虛擬現實中三維建模技術的研究[D]武漢:武漢理工 大學碩士學位論文,2003,(5).
本文關鍵詞:虛擬現實建模,由筆耕文化傳播整理發(fā)布。
本文編號:45553
本文鏈接:http://www.lk138.cn/kejilunwen/jisuanjikexuelunwen/45553.html