物理引擎ODE

2021-09-30 13:06:35 字數 1114 閱讀 1887

出處:

russell smith 的 open dynamics engine(ode)是乙個開源的物理引擎,使用它可以**鉸接式固形體運動。這樣不管我們使用哪種圖形庫(可能使用 opengl),都可以對真實物件的物理特性進行**。我們可以使用 ode 來對合成環境中的各種物件進行建模,例如三維遊戲環境中的人物或虛擬駕駛中的交通工具。除了速度快之外, ode 還可以支援實時**的碰撞檢測。

ode 目前可以支援球窩、鉸鏈、滑塊、定軸、角電機和 hinge-2 (用於交通工具的連線)連線型別,以及其他一些連線型別。它還可以支援各種碰撞原語(例如球面碰撞和平面碰撞)和幾個碰撞空間。

ode 主要是使用c++語言編寫的,但是它也提供了cc++的清晰介面來幫助我們與應用程式進行整合。有關 ode 更好的一點是它發行所採用的許可證:lgpl(gnu lesser general public license)和 bsd license。在這兩個許可證中,我們都可以在商業產品中使用 ode 的源**,而不需任何費用。其結果是我們在很多商業遊戲、飛行模擬器和虛擬實境**中都可以找到 ode。

清單 1 中的源**給出了乙個簡單的例子,這個環境中中存在火星的地心引力,裡面有乙個球具有向上的速度。由於這個環境中具有地心引力,因此向上的速度不會堅持很久;最後這個球會上公升到頂點並開始下降。在初始化完成之後(即在這個環境中建立物件並設定好屬性之後),我們就可以通過dworldstep對這個世界中的物理特性進行**了。要理解發生的現象,可以經常呼叫dbodygetposition並給它傳入球的識別符號來獲得它的當前位置。

清單 1. 簡單的 ode 實驗:地心引力環境中的球

#include

#include

#define time_step (float)0.1

int main()

/* destroy the objects */

dbodydestroy( mysphere_id );

dworlddestroy( myworld_id );

return 0;

}

delta3d與ode物理引擎的結合。

使用delta3d有些日子了,對物理引擎這塊沒有細看過,最近研究了一下。主要分為兩大部分,第一在dtcore中對ode的封裝,第二通過dtphysics,使用pal phys abstract layer 對三種物理引擎 bullet ode phys的封裝。這裡先介紹下dtcore中對delta3...

nxOgre物理引擎

糾結半天還是來看了nxogre引擎。最後搭建的環境是 vs2010 nxogre ogre1.74 physx2.8.4 主要是看那個 betajaen s ramblings 這兩個算是比較新的了,其它的好像是ogre1.7版本以前的相容版本,沒法在新的ogre中使用了。最後乙個是教程,需要上面兩...

APE物理引擎教程

ape 物理引擎有很好的效果,重要的是類很少,簡單易學。附件是我這個物理引擎寫的乙個遊戲,也是我的第乙個遊戲看到網上這個引擎的教程還比較少,當初找的好苦,發幾個我淘來的,下面幾個教程是在做遊戲過程中看的 ape物理引擎首頁 api文件 google論壇 有介紹貼圖,碰撞檢測 如何在flex中使用引擎...