国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

物理引擎在視景仿真中的應(yīng)用

2012-02-26 05:40:00孫崠博王潤杰
兵器裝備工程學(xué)報 2012年3期
關(guān)鍵詞:視景碰撞檢測剛體

孫崠博,王潤杰

(空軍航空大學(xué)軍事仿真技術(shù)研究所,長春 130022)

隨著圖形渲染技術(shù)的迅速發(fā)展,對于視景仿真系統(tǒng)來講,物理真實感的缺乏成為了非常顯著的問題,嚴(yán)重影響了系統(tǒng)的沉浸性和交互性。問題的焦點是如何利用物理的方法為虛擬場景下的物體運動和物體間的交互進(jìn)行建模,于是本文引入了一種開放源代碼的物理引擎(open dynamics engine,ODE)來解決這個問題。ODE是一個模擬關(guān)節(jié)化剛體的工業(yè)級開源軟件,具有高級的聯(lián)結(jié)類型和碰撞檢測整合系統(tǒng),它功能全面、技術(shù)成熟而且平臺獨立,易于和C++API配合使用,非常適于對飛行器、交通工具和虛擬現(xiàn)實中物體的運動進(jìn)行模擬[1]。

本文的目的是建立一個基于PC機的三維物理引擎,其主要用途是作為虛擬環(huán)境中研究剛體運動和碰撞的仿真平臺。這個引擎既要實現(xiàn)物體的實體部分,又要運行并用圖像顯示出物體運動和碰撞的過程。有關(guān)的物理現(xiàn)象如:自由落體、碰撞或物體在某個表面的滾動滑動等。

1 開發(fā)過程

1.1 ODE 引擎原理

ODE的核心是經(jīng)典力學(xué)的基本原理的算法包,是牛頓力學(xué)的C++程序?qū)崿F(xiàn)。在ODE中,需要用其內(nèi)部定義的對象來模擬現(xiàn)實中存在的物體,然后,對其進(jìn)行控制和模仿來表達(dá)物理世界。ODE的對象主要包含世界 (dWord)、碰撞空間(dSpace)、剛體 (dBody)、幾何體 (dGeom)、節(jié)點 (dJoint)、節(jié)點組(dJoint-Group)以及函數(shù)處理返回對象 (dWorldID、dBodyID),其中dWorld和dBody用于剛體動力學(xué)模擬,而dspace和dGcom用于碰撞檢測。物理引擎的核心部分是碰撞檢測,與其它許多仿真器采用虛擬彈簧的方式來處理接觸不同,ODE內(nèi)建的碰撞檢測系統(tǒng)采用硬接觸的方式,當(dāng)2個剛體相撞時不會出現(xiàn)穿透的情況的,大大提高了模擬結(jié)果的真實感和正確性。

下面簡單介紹ODE的一些概念[2]:

(1)世界是一個存儲物體對象的容器。在簡單的系統(tǒng)中,只需要建立一個世界對象,不同的世界對象之間不存在任何關(guān)聯(lián),不能互相影響。

(2)剛體即是在系統(tǒng)中主要操作的對象。剛體從模擬的角度說具有各種屬性,有些屬性隨時間而變化,如物體參考點的位置、線速度、朝向和角速度;另一些屬性不隨時間變化,如物體質(zhì)量、質(zhì)心相對于參考點的位置和慣量矩陣。

(3)幾何體是碰撞系統(tǒng)中的基本對象。幾何體可以是獨立的剛體,幾何體分為可置位和不可置位的??芍梦坏膸缀误w表現(xiàn)為一個剛體,它可以在更新變化時被改變。而不可置位的幾何體則用來表達(dá)環(huán)境中靜止不動的物體。

(4)整合是按時間模擬剛體系統(tǒng)的過程。每個整合步將模擬從當(dāng)前時間前進(jìn)一個給定的時間步長,并計算新時刻的物體狀態(tài)。

(5)碰撞空間主要是用來簡化和加快碰撞檢測的一個對象,我們將幾何體插入到碰撞空間中,由碰撞空間執(zhí)行判斷、篩選,然后再調(diào)用碰撞檢測,得出檢測結(jié)果。

1.2 ODE 模擬過程

典型的ODE模擬過程[3]:

①創(chuàng)建一個動力學(xué)世界。

②創(chuàng)建動力學(xué)世界中的剛體。

③設(shè)置所有剛體的狀態(tài)。

④創(chuàng)建動力學(xué)世界中的關(guān)節(jié)。

⑤把關(guān)節(jié)與剛體連接。

⑥設(shè)置關(guān)節(jié)參數(shù)。

⑦創(chuàng)建碰撞世界(空間)和碰撞幾何對象。

⑧創(chuàng)建關(guān)節(jié)組來容納接觸關(guān)節(jié)。

⑨循環(huán):

a.把力施加于剛體。

b.調(diào)整關(guān)節(jié)參數(shù)。

c.調(diào)用碰撞檢測。

d.對于每個碰撞點創(chuàng)建一個接觸關(guān)節(jié),并加入接觸關(guān)節(jié)組里。

e.進(jìn)行一步模擬。

f.清除接觸關(guān)節(jié)組里的所有關(guān)節(jié)。

⑩刪除動力學(xué)世界和碰撞世界。

1.3 設(shè)計程序代碼

2 測試

整個系統(tǒng)是在Windows平臺上用Visual C++2008編譯實現(xiàn)的,系統(tǒng)的場景及添加的物理實體在OpenGL中創(chuàng)建,系統(tǒng)中用到的各種SDK均是開源的,具有良好的平臺移植性。系統(tǒng)測試生成動力學(xué)世界和3種剛體,實現(xiàn)3種碰撞,如表1。

表1 碰撞檢測組合

下面是實驗的6幅截圖,第1幅創(chuàng)建的動力學(xué)世界和剛體,第2幅圖是包圍盒中的剛體,第3幅到第6幅是剛體之間的碰撞效果。程序能夠安全高效穩(wěn)定的運行,圖形顯示正常流暢。物理引擎逼真的實現(xiàn)了場景渲染,能實時生動地模擬出箱子、圓柱體等剛體的墜落、滾動和碰撞,且碰撞的物體不會發(fā)生貫穿的現(xiàn)象,增強了視景仿真的真實感,提高了仿真世界物體之間的交互性,達(dá)到了初設(shè)目標(biāo)。利用包圍盒法進(jìn)行剛體的碰撞檢測,接觸點不太精確,有時反彈的方向和速度不太合理,有待于進(jìn)一步改進(jìn)和完善。

3 結(jié)論與展望

簡要介紹了ODE基本理論,然后結(jié)合程序代碼分析了物理引擎ODE的結(jié)構(gòu)框架、碰撞檢測機制和物理仿真流程,并進(jìn)行了仿真實驗,結(jié)果表明在視景仿真中應(yīng)用物理引擎有效增強了虛擬場景中物體的運動真實感和交互性。另外,物理引擎的應(yīng)用,降低了視景仿真對計算機硬件的要求,代碼便于移植,并留有擴展接口,使整個仿真系統(tǒng)實用性強、靈活性好。隨著計算機處理速度的提高和虛擬現(xiàn)實技術(shù)的進(jìn)步,人們對可視化仿真將提出更高的要求,物理引擎必然成為視景仿真領(lǐng)域的最受關(guān)注的課題而得到廣泛的應(yīng)用。

[1] 高嵩,陳先橋,楊菊.基于OGRE和ODE的駕駛模擬系統(tǒng)的設(shè)計與實現(xiàn)[J].交通與計算機 2006(1):101-104.

[2] 楊俊杰,臧淑英,姜美芳.虛擬現(xiàn)實中的物理引擎ODE與虛擬引擎OSG結(jié)合探討[J].測繪與空間地理信息,2010(1):66-68.

[3] Brian Beckman.The physics of racing Singapore[J].World Scientific,1997:50 -210.

(責(zé)任編輯周江川)

猜你喜歡
視景碰撞檢測剛體
全新預(yù)測碰撞檢測系統(tǒng)
差值法巧求剛體轉(zhuǎn)動慣量
基于BIM的鐵路信號室外設(shè)備布置與碰撞檢測方法
vega及其在戰(zhàn)場環(huán)境視景仿真系統(tǒng)中的應(yīng)用
電子測試(2018年4期)2018-05-09 07:28:19
Unity3D中碰撞檢測問題的研究
電子測試(2018年1期)2018-04-18 11:53:00
車載冷發(fā)射系統(tǒng)多剛體動力學(xué)快速仿真研究
BIM技術(shù)下的某辦公樓項目管線碰撞檢測
剛體定點轉(zhuǎn)動的瞬軸、極面動態(tài)演示教具
物理實驗(2015年10期)2015-02-28 17:36:56
全回轉(zhuǎn)拖輪運動建模與視景仿真
基于Vortex與Vega Prime的車輛模擬器動力學(xué)與視景仿真
甘洛县| 凤庆县| 屏东市| 垦利县| 二连浩特市| 章丘市| 沧州市| 英德市| 离岛区| 屯昌县| 山东| 鹰潭市| 南郑县| 桦川县| 大丰市| 桂阳县| 昭通市| 外汇| 墨江| 静海县| 苏尼特右旗| 辽中县| 河间市| 西和县| 时尚| 巧家县| 上饶市| 绥德县| 明溪县| 土默特左旗| 原平市| 汉川市| 高碑店市| 甘孜县| 调兵山市| 桑植县| 临湘市| 昭觉县| 邵阳县| 常宁市| 东阳市|