毛片tv网站无套内射tv网站,毛片免费视频在线观看,久久人人爽爽爽人久久久,久久伊人少妇熟女大香线蕉,老鸭窝视频在线观看

愛采購

發(fā)產(chǎn)品

  • 發(fā)布供應(yīng)
  • 管理供應(yīng)

基于虛擬現(xiàn)實技術(shù)的船舶運動仿真

   2012-07-06 轉(zhuǎn)載于網(wǎng)絡(luò)佚名3490
導讀

摘要: 虛擬現(xiàn)實技術(shù)是目前國內(nèi)外最熱門的仿真技術(shù)之一,由于其有著高效、安全和低成本等特點越來越受到各國的重視。介紹了在虛擬

摘要: 虛擬現(xiàn)實技術(shù)是目前國內(nèi)外最熱門的仿真技術(shù)之一,由于其有著高效、安全和低成本等特點越來越受到各國的重視。介紹了在虛擬環(huán)境下的船舶運動仿真的可行性方法。首先用二維半切片法給出了船舶運動的方程,接著用3DMax軟件建立船舶的模型,最后在OpenGL環(huán)境中建立場景進行船舶的運動仿真。仿真場景有著較好的感觀效果,給人以真實性,同時系統(tǒng)有著較好的可控性。對船舶運動仿真的進一步研究有著重要的作用。

1 引言

虛擬現(xiàn)實即VR (Virtual reality )技術(shù),它是在現(xiàn)代科學技術(shù)如計算機圖形學,圖像處理與識、計算機仿真技術(shù)、人機接口技術(shù)、實時分布處理技術(shù)、數(shù)據(jù)庫技術(shù)、多媒體技術(shù)、多傳感器技術(shù)和人的行為學研究等的基礎(chǔ)上發(fā)展起來的一門交叉科學技術(shù)。虛擬現(xiàn)實技術(shù)有三個基本特征[1] ,他們分別是沉浸感( Immersion) ,交互性( Interaction)和想象( Imagination) 。目前虛擬現(xiàn)實系統(tǒng)可分為四個層次:桌面式,沉浸式,增強式和網(wǎng)絡(luò)分布式。本文是基于桌面式的仿真。

國內(nèi)外船舶仿真模擬器都有了較大的發(fā)展,如挪威,英國,美國,日本等都已經(jīng)建立的較為完善的船舶模擬系統(tǒng),并且已廣泛應(yīng)用于航海教育和船員培訓之中,并在港口與航道的工程設(shè)計和方案論證等領(lǐng)域中得到了廣泛的應(yīng)用。采用高性能的PC機,將虛擬現(xiàn)實技術(shù)用于船舶仿真系統(tǒng)的開發(fā),已成為模擬器研究與開發(fā)的主流,該系統(tǒng)可達到實用、安全、高效和低費用的目的。本文將虛擬現(xiàn)實技術(shù)應(yīng)用于船舶運動的實時動態(tài)仿真中,該系統(tǒng)可將船舶運動情況,以三維圖像形式表現(xiàn)出來,不僅極大地增強了用戶與系統(tǒng)的交互友好性,而且為進一步開發(fā)船舶運動模擬器奠定了堅實的基礎(chǔ)。

2 船舶運動的數(shù)學模型

船舶的運動模型有很多種,從最初的單點運動模型即1896年克雷洛夫首先提出了船舶在規(guī)則波上的運動方程,該方程實際上是質(zhì)點振動方程[2] 。

哈斯金特應(yīng)用格林定理構(gòu)造出由于船體存在和運動引起的擾動速度勢,并推導了點源格林函數(shù)的表達式。按邊界條件的提法,最終得到求解速度勢的積分方程,并用“窄船理論”進一步解出此方程[3] ??莆囊豢藙诳品蛩够脱趴刹?提出的切片理論也使耐波性理論得到了迅速發(fā)展,使得在船舶設(shè)計階段可以對各種方案進行比較。切片理論有可以分為二維切片,二維半切片和三維切片。本文采用高速細長法(二維半切片法)來構(gòu)建船舶得運動模型。

當船舶以航速U 在深水規(guī)則波中迎浪前進,建立隨物體平動的直角坐標系o - xyz, oxyz平面與靜水面重合, ox軸與U同向, oz軸垂直向上。考慮流場穩(wěn)態(tài)解,速度勢可寫為:

 

其中Φs為定常波勢, ( x, y, z) 為不定常勢。在線性假設(shè)下, Φ ( x, y, z) 可以寫成:

 

式中Φj ( j = 1 ~ 6) 表示船體以j態(tài)單位振幅運動的輻射勢,ξj 為其振幅; A為入射波波幅, Φ0 和Φ7為單位波幅的入射波勢和繞射勢。輻射勢Φj ( j = 1~ 6) 和繞射勢Φ7 在流體域中要滿足拉普拉斯方程,在自由面滿足有航速的線性自由面條件, 在物面的平均位置處滿足船體表面的法向不可穿透的條件。在無窮遠處滿足有適當?shù)妮椛錀l件。

求解Φj ( j = 1 ~ 6) 和繞射勢Φ7 完全滿足上述的定解條件的解,就是三維有航速的船舶定解問題。

為了求解上述船舶的定解問題, 結(jié)合高速細長船體的流動特性和幾何特性,可以用二維半理論來求解。假設(shè)航速較高, 滿足船前無波的條件, 此時Brard數(shù):流場沿縱向的變化不大,在船體的各剖面內(nèi)滿足二維的拉普拉斯方程。這是常規(guī)的二維切片法。同時在線性的自由位置處,流場的解滿足三維有航速的自由條件,在一定的假設(shè)下輻射勢Φj ( j = 1 ~ 6) 和繞射勢Φ7 構(gòu)成如下定解問題:

 

這就是被稱為高速細長體理論,由于流場的控制方程是二維的自由面條件事三維的因此也被稱為二維半理論。我們用二維時域邊界積分方程的方法來求解,從頭到尾逐步求解具體的參見文獻[4]由此可以得到一系列的狀態(tài)值,把其作為表格的形式保存?zhèn)溆谩?/span>

3 仿真

目前虛擬現(xiàn)實技術(shù)中, 較為常用的軟件VRML, OpenGL, Cult3D, MutiGen, Vega, CooL3D等。由于OpenGL 軟件有著場景環(huán)境渲染方面和交互式編程的優(yōu)勢與建模中過于復雜的不足,本文采用OpenGL軟件和3D相結(jié)合共同完成船舶的建模與仿真。硬件構(gòu)成,配置較好的個人PC機,有條件的可以購買立體頭盔,立體眼鏡等。本文只基于桌面層次的系統(tǒng)。

3. 1 船舶模型的建立

由于OpenGL 的建模功能較弱,采用3D max來建立船舶的三維模型。3DsMAX軟件是一種具有很強三維建模技術(shù)的軟件,應(yīng)用也十分廣泛。3D中輪船的建模有很多種方法,如放樣,面片,NURSBS等[5] 。本文采用得是盒子建模法。盒子建模指的是對基本的長方體,圓柱體,球體等進行編輯成型的方法。事先收集一下輪船的設(shè)計圖紙,這樣對船的尺寸會更加準確,在編輯各個面時會更加自如。

首先建立半個船頭。先建立一個長方體,大小要與事先設(shè)計好的船尺寸成比例,把它轉(zhuǎn)換成可編輯多邊形,用快速切割的方法把長方體按照船頭的各方位視圖進行切割。用編輯頂點的方法對所做的圖形進行調(diào)整。用同樣的方法編輯船尾。把船頭和船尾進行合并,刪去中間的端面(為了保證船的大小協(xié)調(diào)性) ,斷開船頭與船尾,從船頭出拉伸復制出船身至船尾處,用焊接點的方法使得形成一個完整的半個船面。再對它進行光滑處理得到圖1。

 
圖1 船體的建模

這只是半個船體,用對稱的方法進行復制,并對其各點進行焊接修改,可以得到一個完整的船體。船的上層結(jié)構(gòu)可以加上安全護欄,雷達等設(shè)備,可以自行設(shè)計,但在尺寸上要注意一致性,使得整體完整,美觀。本文的建模結(jié)果如圖2所示。最后可以對圖像添加材質(zhì)和貼圖進行渲染,使得船體顯得更加真實美觀。

 
圖2 船的模型

3. 2 海面模型的建立

海面背景得建立有兩種方法。一種是平面法,建立一個平面,并對其使用波浪效果和噪波效果,生成海面和波浪;同時再海面的前方與之垂直建立一個平面作為天空,使用貼圖并設(shè)置燈光攝像機等對整個場景進行渲染。這樣就建成了一個簡單的海面場景[6] ?;蛘呓⒁粋€半球體構(gòu)成天空然后對其進行渲染形成海天的場景。本文采用后一種建模形式。

3. 3 船體在OpenGL中的動態(tài)仿真

OpenGL實際上是一種圖形與硬件的接口。與其他圖形程序設(shè)計接口不同,OpenGL提供了十分清晰的圖形函數(shù),他不要求開發(fā)者把三維物體模型的數(shù)據(jù)寫成固定的數(shù)據(jù)格式。開發(fā)者不但可以直接使用自己的數(shù)據(jù),而且可以用其他不同格式的數(shù)據(jù)源,如DXF格式文件等。三維圖形軟件包有很多,在交互式三維圖形建模能力和編程方便性上都無法與OpenGL相比[7] 。

一個完整的窗口OpenGL 圖形處理系統(tǒng)的結(jié)構(gòu)為:最底層是圖形硬件,第二層為操作系統(tǒng),第三層為窗口系統(tǒng),第四層為OpenGL,第五層為應(yīng)用軟件。OpenGL是網(wǎng)絡(luò)透明的,在客戶機/服務(wù)器體系結(jié)構(gòu)中,允許本地或遠程調(diào)用。OpenGL 在X窗口,Windows或其他窗口系統(tǒng)下都可以以一個獨立的圖形窗口出現(xiàn)。

本文是在VC ++ 6. 0 開發(fā)環(huán)境下,創(chuàng)建的一個控制平臺。首先要定義3DS 文件的讀入類CLoad3DS ,這個類主要用于處理3DS文件的各種塊,如對象塊,紋理塊,材質(zhì)塊等。聲明的部分代碼如下:

//基本塊( Primary Chunk ) ,位于文件的開始

#define PR IMARY 0x4D4D

//主塊(Main chunks)

#define OBJECTIONFO 0x3D3D //網(wǎng)絡(luò)對象的版本號
#define VERSION 0x0002 //3ds文件的版本號
#define ED ITKEYFRAME 0xB000  //所有關(guān)鍵幀信息的頭部

//對象的次級定義(包括對象的材質(zhì)和對象)
. . . . . .
//材質(zhì)的次級定義
. . . . . .

以上的宏定義內(nèi)容都是3DS文件中各塊的在文件的具體位置,根據(jù)這些數(shù)據(jù)可以讀取3DS文件中的各種數(shù)據(jù)。

導入大海的場景和船舶,由于在3DS中對船體已經(jīng)進行了一些渲染,在OpenGL中可以較偏重于于整個場景的渲染。如對燈光的設(shè)計,場景的霧化等使其更加具有真實感。指定光源,光照模式它們分別用庫函數(shù)void glL ight , void glL ightModle 可以實現(xiàn);對場景進行霧化可以用函數(shù)void glFog. 利用已有的數(shù)據(jù),船舶的運動仿真可以用兩種方法來完成。(1)在3DS中按照船的運動情況進行旋轉(zhuǎn),用設(shè)置關(guān)鍵幀的形式設(shè)好再引入OpenGL。

(2)直接在OpenGL中用原來的矩陣再乘上一個變換矩陣的形式得到。用庫函數(shù)void glRotate ( )和void glTranslate ( ) 來實現(xiàn)。第一種方法雖然在操作上簡單些,但動作不能設(shè)計的太多(太占內(nèi)存)不能完全按照給定的數(shù)值來調(diào)整,且在OpenGL中不好修改,本文采用第二種方法修改簡單,編程也簡單占用的內(nèi)存也較小,可以直接利用所給數(shù)據(jù)進行仿真。運行的結(jié)果如圖3,圖4所示。

 
圖3 渲染后船舶運動中的一幀

 
圖4 船舶運動中的一幀

4 結(jié)論及展望

本文介紹了虛擬現(xiàn)實技術(shù)在船舶仿真中的應(yīng)用。用高速細長法(二維半方法)建立了船舶的運動模型,并在3DSMAX和OpenGL的環(huán)境中較好的實現(xiàn)了在虛擬場景中船舶的動態(tài)仿真。該實驗結(jié)果有較好的視覺感和真實感,為進一步的研究船舶在不同海況中的運動及全面的仿真打下較好的基礎(chǔ)。

參考文獻

[1]馬利民. 虛擬現(xiàn)實技術(shù)及其應(yīng)用展望[J]. 計算機時代, 2005, (2)

[2]李積德. 船舶耐波性[M]. 哈爾濱:哈爾濱船舶工程學院出版社, 1992: 1~4

[3]劉應(yīng)中,繆國平. 船舶在波浪上的運動理論[M].上海:上海交通大學出版社, 1987: 1~154

[4]段文祥. 船舶大幅運動非線性水動力[M]. 哈爾濱:哈爾濱工程大學出版社, 1995: 85~105

[5] Ted Boardman 著, 許小榮譯. 3ds max設(shè)計藝術(shù)[M]. 北京: 清華大學出版社, 2005: 95

[6]騰龍工作室3ds max7中文版建模技術(shù)案例精解北京: 科學出版社2005 P129~170

[7]和平鴿工作室. OpenGL三維圖形系統(tǒng)開發(fā)于實用技術(shù)[M]. 北京:清華大學出版社,重慶大學出版社, 2003: 1~2

 
反對 0舉報 0 收藏 0 打賞 0評論 0
免責聲明
本文為佚名原創(chuàng)作品,作者: 佚名。歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明原文出處:http://www.bc83.cn/news/show-1901.html 。本文僅代表作者個人觀點,本站未對其內(nèi)容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內(nèi)容,一經(jīng)發(fā)現(xiàn),立即刪除,作者需自行承擔相應(yīng)責任。涉及到版權(quán)或其他問題,請及時聯(lián)系我們。
 
更多>同類資訊頭條

入駐

企業(yè)入駐成功 可尊享多重特權(quán)

入駐熱線:18682138895

請手機掃碼訪問

客服

客服熱線:18682138895

小程序

小程序更便捷的查找產(chǎn)品

為您提供專業(yè)幫買咨詢服務(wù)

請用微信掃碼

公眾號

微信公眾號,收獲商機

微信掃碼關(guān)注

頂部