Bullet 全称 Bullet Physics Library,是著名的开源物理引擎(可用于碰撞检测、刚体模拟、可变形体模拟),这里将bullet的学习资源整理一下,希望能帮助入门者少走弯路。

看下wikipedia的介绍还是必要的:

http://en.wikipedia.org/wiki/Bullet_(software)

看完才知道,好多大片都用的Bullet做物理模拟,如电影《2012》,这应该能增加你对Bullet的兴趣吧。

官方网站

http://bulletphysics.org/

下载Bullet

https://code.google.com/p/bullet/downloads/list

最新版为2.82,下载的包里面有个Bullet_User_Manual.pdf,这是Bullet官方编写的手册,强烈推荐看完(共50页),里面介绍了 Bullet 的各个方面。

运行“../build/vs2010.bat”,将生成 VS 2010 工程,用 VS 2010 打开“../build/vs2010/0BulletSolution.sln”,可以从这里编译Bullet。另外这里也包含很多 Bullet Demos ,启动调试App_BasicDemo项目,你将看到如下界面:

Bullet的学习资源(用Doxygen生成API文档)-LMLPHP

ZX键缩放,鼠标右键可以发射方块。

API文档

http://www.continuousphysics.com/Bullet/BulletFull/index.html

下载的Bullet包里没有离线API文档,我们可以用Doxygen自己手动生成,步骤如下:

下载并安装DoxygenGraphviz,之后将“Graphviz安装目录\Graphviz2.36\bin”添加到环境变量Path;

打开Doxygen,从“文件”菜单打开Bullet包下的Doxyfile文件,之后点击run,如图:

Bullet的学习资源(用Doxygen生成API文档)-LMLPHP

运行完之后Bullet包下出现html文件夹,这就是离线的API文档啦:

Bullet的学习资源(用Doxygen生成API文档)-LMLPHP

不得不说的是,Bullet的API文档很简陋,大多数接口连一句注释都没有。

想要编写HelloWorld程序,可以参考Bullet Demo App_HelloWorld和App_BasicDemo,注意前者编译运行之后看不到图形结果,后者的Bullet场景构建其实和App_HelloWorld没差多少,如果你能找到代码所在的地方的话。官网上也有HelloWorld教程:

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

我也会在接下来的文章里介绍Bullet的基本概念,以及构造基本物理模拟程序,敬请期待~

之后我推荐看官网的Tutorial Articles:

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

更多资源,参见Wiki和Forum

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

http://www.bulletphysics.org/Bullet/phpBB3/

其他的入门资源好像也没有了,总之吧,Bullet的入门级学习资源很少,API文档又很简陋,Wiki里没几篇文章,就是这样。所以,乖乖的把Bullet_User_Manual.pdf看完吧,这是我觉得Bullet最好的入门材料了,又是官方出的,可以相信。

再往深学,就是碰撞检测,刚体模拟,可变形体模拟的理论了,可以找一些论文看看,尤其是Bullet推荐的几本书

  • Realtime Collision Detection, Christer Ericson

http://www.realtimecollisiondetection.net/
Bullet uses the discussed voronoi simplex solver for GJK

  • Collision Detection in Interactive 3D Environments, Gino van den Bergen

http://www.dtecta.com also website for Solid collision detection library
Discusses GJK and other algorithms, very useful to understand Bullet

  • Physics Based Animation, Kenny Erleben

http://www.diku.dk/~kenny/
Very useful to understand Bullet Dynamics and constraints

另外推荐几个国际著名大学的基于物理的计算机动画的课程网站

http://www.seas.upenn.edu/~cis563/

http://www.cs.cornell.edu/courses/cs5643/2013sp/

http://www.eng.utah.edu/~cs6660/

另外还有一个研究者整理了基于物理动画的相关论文:

http://www.physicsbasedanimation.com/

05-07 15:27