Bullet的学习资源(用Doxygen生成API文档)
Bullet 全称 Bullet Physics Library,是著名的开源物理引擎(可用于碰撞检测、刚体模拟、可变形体模拟),这里将bullet的学习资源整理一下,希望能帮助入门者少走弯路。
看下wikipedia的介绍还是必要的:
http://en.wikipedia.org/wiki/Bullet_(software)
看完才知道,好多大片都用的Bullet做物理模拟,如电影《2012》,这应该能增加你对Bullet的兴趣吧。
官方网站:
下载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项目,你将看到如下界面:

ZX键缩放,鼠标右键可以发射方块。
API文档:
http://www.continuousphysics.com/Bullet/BulletFull/index.html
下载的Bullet包里没有离线API文档,我们可以用Doxygen自己手动生成,步骤如下:
下载并安装Doxygen和Graphviz,之后将“Graphviz安装目录\Graphviz2.36\bin”添加到环境变量Path;
打开Doxygen,从“文件”菜单打开Bullet包下的Doxyfile文件,之后点击run,如图:

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

不得不说的是,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/
Bullet的学习资源(用Doxygen生成API文档)的更多相关文章
- PHP的学习--使用PhpDocumentor 2生成API文档
官网地址:http://www.phpdoc.org/ 项目地址:https://github.com/phpDocumentor/phpDocumentor2 phpDocumentor 2是一个可 ...
- Spring Boot 项目学习 (四) Spring Boot整合Swagger2自动生成API文档
0 引言 在做服务端开发的时候,难免会涉及到API 接口文档的编写,可以经历过手写API 文档的过程,就会发现,一个自动生成API文档可以提高多少的效率. 以下列举几个手写API 文档的痛点: 文档需 ...
- 自动生成api文档
vs2010代码注释自动生成api文档 最近做了一些接口,提供其他人调用,要写个api文档,可是我想代码注释已经写了说明,能不能直接把代码注释生成api?于是找到以下方法 环境:vs2010 先下载安 ...
- SpringBoot+rest接口+swagger2生成API文档+validator+mybatis+aop+国际化
代码地址:JillWen_SpringBootDemo mybatis 1. 添加依赖: <dependency> <groupId>org.mybatis.spring.bo ...
- ASP.NET Core 3.0 WebApi中使用Swagger生成API文档简介
参考地址,官网:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/getting-started-with-swashbuckle?view ...
- 干掉 Postman?测试接口直接生成API文档,ApiPost真香!
实不相瞒我的收藏夹里躺着很多优质的开发工具,我有个爱好平时遇到感兴趣的开发工具都会记录下来,然后有时间在慢慢研究.前几天刚给同事分享一款非常好用的API文档工具,真的被惊艳到了,粉丝朋友们也感受一下吧 ...
- 利用sphinx为python项目生成API文档
sphinx可以根据python的注释生成可以查找的api文档,简单记录了下步骤 1:安装 pip install -U Sphinx 2:在需要生成文档的.py文件目录下执行sphinx-apido ...
- .Net魔法堂:提取注释生成API文档
一.前言 在多人协作的项目中,除了良好的代码规范外,完整的API文档也相当重要.通过文档我们快速了解系统各模块的实际接口,及其使用场景.使用示例,一定程度上降低沟通成本,和减少后期维护中知识遗失等风险 ...
- 使用bee自动生成api文档
beego中的bee工具可以方便的自动生成api文档,基于数据库字段,自动生成golang版基于beego的crud代码,方法如下: 1.进入到gopath目录的src下执行命令: bee api a ...
随机推荐
- php本地及远程文件包含漏洞
在php程序中包含有file inclusion的时候,php要开启一下两个功能: allow_url_fopen onallow_url_include on 但是开启这两个功能之后伴随的是url漏 ...
- 20140701立项 移植WatermarkLabelSys
开始移植WatermarkLabelSys,从一个版本中抽离出最原始的内核,不求完善,只求能运行.时间半个月. 顺利的话针对不同的后缀.进程开始添加规则细节,时间1个月. 在顺利的话,兼容性测试,完善 ...
- UIApplication详解
每个app有且只有一个UIApplication对象,当程序启动的时候通过调用UIApplicationMain方法得到的.可以通过sharedApplication方法得到. UIApplicati ...
- struts文件上传、文件下载
文件上传 如果在表单中上传文件,表单的enctype属性为multipart/form-data struts默认上传文件大小为2M,如果需要修改,在配置文件中设置 <constant name ...
- jQuery中animate的height的自适应
可以用 animate() 方法几乎可以操作大部分CSS 属性,但其属性的值不能为字符串,很多人都遇到过这个问题. 例如:获取一个元素自适应时的高,但el.animate({height:‘aut ...
- Console命令详解,让调试js代码变得更简单
Firebug是网页开发的利器,能够极大地提升工作效率. 但是,它不太容易上手.我曾经翻译过一篇<Firebug入门指南>,介绍了一些基本用法.今天,继续介绍它的高级用法. ======= ...
- IOS框架和服务
在iOS中框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,以及图像.声音文件等其他资源.共享资源库定义应用程序可以调用的函数和方法. iOS为应用程序开发提供了许多可使用的框架 ...
- C#实现Excel的导入导出
Excel作为日常使用工具,在开发过程中经常会用到其导入导出功能.经过一个小的练习,学习了下导入导出功能. 导出篇: 从数据库查询到所要导出的数据,以xml的形势保存下来,最后输出excel的格式,保 ...
- CALayer anchorPoint 锚点始终为(0,0)
objc.io 学习 摘自原处修改 对层的属性详细了解可见这里 @interface ClockFace : CAShapeLayer@property (nonatomic, strong) NSD ...
- JDK安装与环境变量配置
1.安装JDK 选择安装目录 安装过程中会出现两次 安装提示 .第一次是安装 jdk ,第二次是安装 jre .建议两个都安装在同一个java文件夹中的不同文件夹中.(不能都安装在java文件夹的根目 ...