有哪些適用於個人或小型團隊開發者的物理引擎?

請問大神科普一下,有哪些適用於個人開發者或是小型團隊的物理引擎。注意是物理引擎(Havok、PhysX、Bullet之類)並未Unreal、Unity等遊戲引擎。也可以從Havok、PhysX、Bullet三大引擎入手,告訴大家哪一種更適合個人開發者或小型團隊。

希望大家回答時考慮到一下因素(但不必局限於):

- 價格較低或免費*

- 易於獲取

- 資料豐富(開發指南、第三方教學)

- 使用方便容易

- 有跨平台(顯卡)能力

*對於個人或小型團隊免費,或從收入中抽成。

Ps.標籤遊戲引擎是為了讓更多人看到,問題本身屬於「物理引擎」範疇,但也部分屬於「遊戲引擎」範疇。後加的「CUDA」,「計算機圖形學」僅用於尋找回答者(抱歉Orz)。希望大家可以幫忙邀請大牛。


3D引擎上面都說了,很多人推薦PhysX但我沒詳細了解過不敢打包票。

小型團隊用2D引擎的可能性也很高,這裡推薦Box2D,zlib協議不要錢,有官方manual和大量在線資料。

http://box2d.org


  1. 價格較低或免費:大部分你叫得出名字的物理引擎都可以做到。
  2. 易於獲取:好像除了Nvidia的PhysX需要註冊,別的都可以隨便下。
  3. 資料豐富:大概只有商業化程度高的會比較好。別的裡面,Newton有個論壇,裡面人還算不少,bullet看網站挺壯觀,論壇沒怎麼逛過。
  4. 使用方便容易:我感覺沒一個能做到。
  5. 跨顯卡能力:似乎只有bullet加入了OpenCL支持的顯卡加速,效果不知道好不好。PhysX是完全依賴N卡的。Newton在我以前關注它的時候,一直不支持顯卡加速,開發那哥們整了個Demo,還是CUDA的,不跨顯卡平台。別的不了解,似乎基本沒有。

實際上, 你如果想要獲得簡單易用的物理系統,可以直接用Blender,它用Bullet作為物理引擎,而建模軟體本身提供了GUI、模型操作、導入導出能力。而且Blender的腳本擴展能力極強,是我見過的擴展、定製能力最好的大型桌面軟體。


三個都不錯,說實話。

全都有大項目在用。

稍微有點資金的建議用Havok,工具鏈非常成熟,保證跨平台,技術支持很到位。順便如果還需要動畫中間件的話順便就用Havok了,目前業界最好的動畫中間件。

其次是Bullet,比較好集成,開源跨平台。索尼的跨平台遊戲引擎用的就是Bullet和Havok(可選),(追加:查了一下,前年移除了一直以來的PhysX支持)。保證免費沒問題。比較成功的案例是R星系列遊戲。

PhysX我以前做indie的時候用過,沒毛病,也有很方便的可視化調試器。當時遇到過的問題是版本更新很麻煩,遇到驅動版本不對的用戶會出問題。授權問題請在用之前再三確認,它的授權情況隨時都可能會變。


ue和unity 都內嵌了physX . 放著遊戲引擎內嵌的物理引擎不用非要另外整一套來用?雖然不一定這樣都是做死,但講究效率和成本的小團隊非要這樣做,確定不是要作死嗎?


havok也早就免費了


要求不高的話(性能,solver穩定性之類的)其實各家都差不多。

性能要求高,對各種corner case敏感,不想你的關鍵道具掉穿了地板之類的,Havok,沒有之一。當然要花錢,如果要源碼的話。

另外一定選源代碼清楚好懂的(solver無論如何也不好懂,但是其它框架要清楚吧)。


physx,商業案例不勝枚舉,功能方面有保證。同時它sdk啊教程什麼的都很直白簡單。


physX擬真度不高,確實是被你們天天玩天天吐槽

都是為了運行效率才寫成現在這樣的, 你換成開源的Bullet運行效率隨便就降幾倍。

所以首先明確你們到底要什麼,如果你們不管很多真實度,就想做Besiege這樣的大破壞遊戲的話,我看PhysX是夠了的。


2d可以考慮Box2D或者它的谷歌升級版本。

3d推薦Bullet。

上面評論提到physx,雖說是跨平台的,但是工程組織太糟糕了,官方也不搞個cmake統一一下,甚是麻煩。


其他開源的ode,newton比較小,不過只有剛體模擬,其他需要自己定製了。havok,physx基本功能都免費的。


推薦閱讀:

IOS 並行編程 是學習 OpenCL還是 CUDA?
你有什麼特別的GPU編程debug技巧?
NVIDIA CUDA、AMD stream、C++ AMP、OpenCL等GPU計算框架各有什麼特點?
GPU計算優化的原理是什麼?
CPU與GPU之間是如何通信的?

TAG:遊戲開發 | 遊戲引擎 | CUDA | 計算機圖形學 | 物理引擎 |