游戲中的物理引擎_第1頁(yè)
游戲中的物理引擎_第2頁(yè)
游戲中的物理引擎_第3頁(yè)
游戲中的物理引擎_第4頁(yè)
游戲中的物理引擎_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

游戲中的物理引擎

物理引擎物理引擎通過(guò)給物體賦予真實(shí)的物理屬性來(lái)模擬物體的運(yùn)動(dòng),包括碰撞、移動(dòng)、旋轉(zhuǎn)等。并不是所有的游戲都必須使用獨(dú)立的物理引擎,一些簡(jiǎn)單的游戲的物理功能可以通過(guò)自行開(kāi)發(fā)碰撞檢測(cè)及實(shí)現(xiàn)力學(xué)公式來(lái)實(shí)現(xiàn)對(duì)剛體及質(zhì)點(diǎn)的模擬。當(dāng)游戲需要實(shí)現(xiàn)比較復(fù)雜的剛體碰撞、滾動(dòng)或者彈跳時(shí),通過(guò)全部自行編程的方式實(shí)現(xiàn)就非常困難,成本也很高。可以使用獨(dú)立的物理引擎來(lái)模擬物體的運(yùn)動(dòng),使用物理引擎不僅可以得到更加真實(shí)的結(jié)果,對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)也比自行開(kāi)發(fā)要耗時(shí)短、效率高。一款好的物理引擎不僅會(huì)幫助實(shí)現(xiàn)碰撞檢測(cè)、力學(xué)公式模擬,而且還會(huì)提供很多機(jī)械結(jié)構(gòu)的實(shí)現(xiàn),如滑輪、齒輪、鉸鏈等。更高級(jí)的物理引擎不但可以提供剛體的模擬,甚至還可以提供軟體及流體的模擬,這些都能幫助游戲提升真實(shí)感和吸引力。常見(jiàn)的物理引擎物理引擎名稱HavokPhysXBulletBox2DODE持有公司/人員IntelNvidiaAMDErinCattoRussellSmith是否開(kāi)源否否是是是是否支持C/C++是是是是是最新版本5.52.1.22.782.1.20.11.1文檔情況詳細(xì)詳細(xì)尚可尚可一般1.HavokHavok成立于1998年,總部位于都柏林。在2000年游戲開(kāi)發(fā)者大會(huì)上發(fā)布了Havok1.0,最新版本為Havok5.5,該引擎基于C/C++。2007年9月,Intel宣布成功收購(gòu)Havok。之后,Intel宣布Havok引擎開(kāi)放源代碼并允許游戲開(kāi)發(fā)人員免費(fèi)用于非商業(yè)用途。由于Havok的開(kāi)放性和不依賴特定硬件的特點(diǎn),很多大型游戲均使用Havok引擎。其中著名的有星際爭(zhēng)霸2、暗黑破壞神3等。2011年3月6號(hào),Intel宣布Havok引擎開(kāi)始支持Android。Havok引擎工作流程2.PhysXPhysX不僅可以由CPU計(jì)算,而且其程序本身在設(shè)計(jì)上可以使用獨(dú)立的浮點(diǎn)處理器來(lái)計(jì)算。正是由于這個(gè)原因,其可以非常輕松地完成像流體力學(xué)那樣計(jì)算量非常大的物理模擬計(jì)算。該引擎可以在Windows,Linux,Xbox360,Playstation3,Mac等多種平臺(tái)上運(yùn)行。到目前為止在X86-PC平臺(tái)上,共有222種游戲采用PhysX引擎。被大家熟知的有雪域危機(jī)、虛幻競(jìng)技場(chǎng)3。3.BulletBullet是一款開(kāi)源的物理引擎,是AMD開(kāi)放物理計(jì)劃成員之一。同時(shí)其也是一個(gè)跨平臺(tái)的物理引擎,支持Windows、Linux、MAC、Playstation3、XBOX360以及NintendoWii等主流平臺(tái)。使用Bullet物理引擎開(kāi)發(fā)的游戲主要有俠盜獵車(chē)4,其效果如圖10-5所示。同時(shí)使用該引擎制作的電影也不乏好萊塢大作,如2012就是使用的該引擎。4.ODEODE(OpenDynamicEngine)是一款免費(fèi)的具有工業(yè)品質(zhì)的剛體動(dòng)力學(xué)引擎。其可以非常好的仿真現(xiàn)實(shí)中物體的移動(dòng)、旋轉(zhuǎn)等,具有快速、強(qiáng)健和可移植性,并且內(nèi)置碰撞檢測(cè)系統(tǒng)。ODE目前可以支持球窩、鉸鏈、滑塊、定軸、角電機(jī)和hinge-2等連接類(lèi)型,還可以支持各種碰撞形式(如球面碰撞和平面碰撞)和多個(gè)碰撞空間。應(yīng)用不如前幾種廣泛。5.Box2DBox2D是一款非常著名的2D物理引擎,主要用于2D剛體仿真。有C++、Flash和Java等版本。Box2D會(huì)自動(dòng)管理各個(gè)物體的碰撞、彈跳等物理狀態(tài),用戶只需要?jiǎng)?chuàng)建各種剛體。非常受歡迎的游戲《憤怒的小鳥(niǎo)》就是基于該引擎開(kāi)發(fā)的。/2D的王者JBox2DJBox2D是開(kāi)源的物理引擎Box2D的Java版本,可以直接用于Android。由于JBox2D的圖形渲染使用的是Processing庫(kù),因此在Android平臺(tái)上使用JBox2D時(shí),圖形渲染工作只能自行開(kāi)發(fā)。該引擎能夠根據(jù)開(kāi)發(fā)人員設(shè)定的參數(shù),如重力、密度、摩擦系數(shù)和彈性系數(shù)等,自動(dòng)地進(jìn)行2D剛體物理運(yùn)動(dòng)的全方位模擬。Box2D核心概念剛體(rigidbody)一塊十分堅(jiān)硬的物質(zhì),它上面的任何兩點(diǎn)之間的距離都是完全不變的。

形狀(shape)一塊嚴(yán)格依附于物體(body)的2D碰撞幾何結(jié)構(gòu)(collisiongeometry)。形狀具有摩擦(friction)和恢復(fù)(restitution)的材料性質(zhì)。約束(constraint)一個(gè)約束(constraint)就是消除物體自由度的物理連接。在2D中,一個(gè)物體有3個(gè)自由度。如果把一個(gè)物體釘在墻上(像擺錘那樣),那就把它約束到了墻上。這樣,此物體就只能繞著這個(gè)釘子旋轉(zhuǎn),所以這個(gè)約束消除了它2個(gè)自由度。

接觸約束(contactconstraint)一個(gè)防止剛體穿透,以及用于模擬摩擦(friction)和恢復(fù)(restitution)的特殊約束。接觸約束會(huì)自動(dòng)被Box2D創(chuàng)建。

關(guān)節(jié)(joint)它是一種用于把兩個(gè)或多個(gè)物體固定到一起的約束。Box2D支持的關(guān)節(jié)類(lèi)型有:旋轉(zhuǎn),棱柱,距離等等。關(guān)節(jié)可以支持限制(limits)和馬達(dá)(motors)。

關(guān)節(jié)限制(jointlimit)一個(gè)關(guān)節(jié)限制(jointlimit)限定了一個(gè)關(guān)節(jié)的運(yùn)動(dòng)范圍。例如人類(lèi)的胳膊肘只能做某一范圍角度的運(yùn)動(dòng)。

關(guān)節(jié)馬達(dá)(j

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論