您的位置:首页 > 其它

windows下Bullet 2.82编译安装(Bullet Physics开发环境配置)

2014-03-01 20:40 429 查看
平台:Win7,VS2010

1. Bullet库的组织

下图是Bullet_User_Manual中的截图:



从中可见,Bullet的LinearMath(线性数学模块),其上是BulletCollision(碰撞检测模块),然后BulletDynamics(刚体模拟模块)和BulletSoftBody(可变形体模拟模块)建立在BulletCollision之上,另外还有可选的导入导出插件和多线程模块。LinearMath、BulletCollision、BulletDynamics、BulletSoftBody是核心模块,其他则是可选的(当你需要插件或使用多线程时使用)。我们这里只编译核心模块,其实LinearMath、BulletCollision、BulletDynamics、BulletSoftBody对应4个.lib文件(库文件)。

鉴于Bullet的模块化组织,用户可以分层次的使用Bullet:

Collision detection,这时只需包含LinearMath、BulletCollision库;

Rigid body dynamics,需包含LinearMath、BulletCollision、BulletDynamics库;

Soft body dynamics,包含全部4个LinearMath、BulletCollision、BulletDynamics、BulletSoftBody库。

对于我们而言,可能用到可变形体,所以要编译全部4个模块。

2. Bullet安装指导

这是高层指导:

下载bullet-2.82-r2704.zip,解压(r后面的数字可能不同);

运行“../build/vs2010.bat”,生成VS2010工程;

用VS2010打开“../vs2010/0BulletSolution.sln”;

LinearMathBulletCollisionBulletDynamicsBulletSoftBody,分别在DebugRelease配置下编译(更多版本及解释见这里);

将“../lib”下的8个.lib文件,以及“../src”下所有.h文件,都拷贝出来即构成安装包。

后面第4节会step by step讲解这个过程,并配有截图。下一节将如何配置Bullet工程。

3. Bullet工程配置(使用Bullet库)

要使用Bullet,需要:

添加包含目录,将上一节拷贝的.h文件所在目录添加到工程的包含目录(在所有配置下);

添加库目录,将上一节拷贝的.lib文件所在目录添加到工程库目录(在所有配置下);

引用库,添加对.lib文件的引用(根据使用层次添加所需.lib文件,Debug和Release分别设置);

包含头文件,在代码中包含“btBulletDynamicsCommon.h”。

注:

添加包含目录的两种方法:

“项目属性 >> 配置属性 >> VC++目录 >> 包含目录”

“项目属性 >> 配置属性 >> C/C++ >> 常规 >> 附加包含目录”。

添加库目录的两种方法:

“项目属性 >> 配置属性 >> VC++目录 >> 库目录”

“项目属性 >> 配置属性 >> 链接器 >> 常规 >> 附加库目录”。

引用库的两种方法:

代码#pragma comment (lib, "xxx.lib")(用#ifdef _DLL和#ifdef _DEBUG);

“项目属性 >> 配置属性 >> 链接器 >> 输入 >> 附加依赖项”。

.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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: