Bullet 全稱 Bullet Physics Library,是著名的開源物理引擎(可用於碰撞檢測、剛體模擬、可變形體模擬),這裏將bullet的學習資源整理一下,但願能幫助入門者少走彎路。php
看下wikipedia的介紹仍是必要的:html
http://en.wikipedia.org/wiki/Bullet_(software)web
看完才知道,好多大片都用的Bullet作物理模擬,如電影《2012》,這應該能增長你對Bullet的興趣吧。學習
官方網站:動畫
下載Bullet:ui
https://code.google.com/p/bullet/downloads/listgoogle
最新版爲2.82,下載的包裏面有個Bullet_User_Manual.pdf,這是Bullet官方編寫的手冊,強烈推薦看完(共50頁),裏面介紹了 Bullet 的各個方面。spa
運行「../build/vs2010.bat」,將生成 VS 2010 工程,用 VS 2010 打開「../build/vs2010/0BulletSolution.sln」,能夠從這裏編譯Bullet。另外這裏也包含不少 Bullet Demos ,啓動調試App_BasicDemo項目,你將看到以下界面:.net
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推薦的幾本書:
http://www.realtimecollisiondetection.net/
Bullet uses the discussed voronoi simplex solver for GJK
http://www.dtecta.com also website for Solid collision detection library
Discusses GJK and other algorithms, very useful to understand Bullet
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/
另外還有一個研究者整理了基於物理動畫的相關論文: