windows下Bullet 2.82編譯安裝(Bullet Physics開發環境配置)

 

平臺:Win7,VS2010php

 

1. Bullet庫的組織html

下圖是Bullet_User_Manual中的截圖:多線程

從中可見,Bullet的LinearMath(線性數學模塊),其上是BulletCollision(碰撞檢測模塊),而後BulletDynamics(剛體模擬模塊)和BulletSoftBody(可變形體模擬模塊)創建在BulletCollision之上,另外還有可選的導入導出插件和多線程模塊。LinearMath、BulletCollision、BulletDynamics、BulletSoftBody是核心模塊,其餘則是可選的(當你須要插件或使用多線程時使用)。咱們這裏只編譯核心模塊,其實LinearMath、BulletCollision、BulletDynamics、BulletSoftBody對應4個.lib文件(庫文件)。模塊化

鑑於Bullet的模塊化組織,用戶能夠分層次的使用Bullet:ui

  1. Collision detection,這時只需包含LinearMath、BulletCollision庫;
  2. Rigid body dynamics,需包含LinearMath、BulletCollision、BulletDynamics庫;
  3. Soft body dynamics,包含所有4個LinearMath、BulletCollision、BulletDynamics、BulletSoftBody庫。

對於咱們而言,可能用到可變形體,因此要編譯所有4個模塊。google

 

2. Bullet安裝指導插件

這是高層指導:線程

  1. 下載bullet-2.82-r2704.zip,解壓(r後面的數字可能不一樣);
  2. 運行「../build/vs2010.bat」,生成VS2010工程;
  3. 用VS2010打開「../vs2010/0BulletSolution.sln」;
  4. LinearMathBulletCollisionBulletDynamicsBulletSoftBody,分別在DebugRelease配置下編譯(更多版本及解釋見這裏);
  5. 將「../lib」下的8個.lib文件,以及「../src」下全部.h文件,都拷貝出來即構成安裝包。

後面第4節會step by step講解這個過程,並配有截圖。下一節將如何配置Bullet工程。code

 

3. Bullet工程配置(使用Bullet庫)htm

要使用Bullet,須要:

  1. 添加包含目錄,將上一節拷貝的.h文件所在目錄添加到工程的包含目錄(在全部配置下);
  2. 添加庫目錄,將上一節拷貝的.lib文件所在目錄添加到工程庫目錄(在全部配置下);
  3. 引用庫,添加對.lib文件的引用(根據使用層次添加所需.lib文件,Debug和Release分別設置);
  4. 包含頭文件,在代碼中包含「btBulletDynamicsCommon.h」。

注:

添加包含目錄的兩種方法:

  1. 「項目屬性 >> 配置屬性 >> VC++目錄 >> 包含目錄」
  2. 「項目屬性 >> 配置屬性 >> C/C++ >> 常規 >> 附加包含目錄」。

添加庫目錄的兩種方法:

  1. 「項目屬性 >> 配置屬性 >> VC++目錄 >> 庫目錄」
  2. 「項目屬性 >> 配置屬性 >> 連接器 >> 常規 >> 附加庫目錄」。

引用庫的兩種方法:

  1. 代碼#pragma comment (lib, "xxx.lib")(用#ifdef _DLL和#ifdef _DEBUG);
  2. 「項目屬性 >> 配置屬性 >> 連接器 >> 輸入 >> 附加依賴項」。

.lib文件版本問題參見個人另外一篇文章:配置本身的OpenGL庫,glew、freeglut庫編譯,庫衝突解決

 

4. Step by step

我們從生成的.sln文件開始吧:

打開0BulletSolution.sln:

分別在Debug和Release配置下生成上面截圖中的4個項目。更多版本見:配置本身的OpenGL庫,glew、freeglut庫編譯,庫衝突解決。注意,Bullet工程裏的Debug和Release都是使用靜態CRT(咱們通常用的是DLL CRT),因此,有必要多編譯2個版本。編譯後獲得.lib文件,能夠根據編譯版本自行改文件名:

構建安裝包以下:

 

參考文獻

Bullet 2.82 Physics SDK Manual(在下載的Bullet包中)

http://bulletphysics.org/mediawiki-1.5.8/index.php/Creating_a_project_from_scratch

相關文章
相關標籤/搜索