有哪些適用於個人或小型團隊開發者的物理引擎?
請問大神科普一下,有哪些適用於個人開發者或是小型團隊的物理引擎。注意是物理引擎(Havok、PhysX、Bullet之類)並未Unreal、Unity等遊戲引擎。也可以從Havok、PhysX、Bullet三大引擎入手,告訴大家哪一種更適合個人開發者或小型團隊。
希望大家回答時考慮到一下因素(但不必局限於):- 價格較低或免費*- 易於獲取
- 資料豐富(開發指南、第三方教學)- 使用方便容易- 有跨平台(顯卡)能力*對於個人或小型團隊免費,或從收入中抽成。Ps.標籤遊戲引擎是為了讓更多人看到,問題本身屬於「物理引擎」範疇,但也部分屬於「遊戲引擎」範疇。後加的「CUDA」,「計算機圖形學」僅用於尋找回答者(抱歉Orz)。希望大家可以幫忙邀請大牛。
3D引擎上面都說了,很多人推薦PhysX但我沒詳細了解過不敢打包票。
小型團隊用2D引擎的可能性也很高,這裡推薦Box2D,zlib協議不要錢,有官方manual和大量在線資料。
http://box2d.org
- 價格較低或免費:大部分你叫得出名字的物理引擎都可以做到。
- 易於獲取:好像除了Nvidia的PhysX需要註冊,別的都可以隨便下。
- 資料豐富:大概只有商業化程度高的會比較好。別的裡面,Newton有個論壇,裡面人還算不少,bullet看網站挺壯觀,論壇沒怎麼逛過。
- 使用方便容易:我感覺沒一個能做到。
- 跨顯卡能力:似乎只有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之間是如何通信的?