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

相关文章
相关标签/搜索