1.这是魔兽世界莫高雷在Havok物理世界调试器中的建模,使用的是魔兽的地形高度图数据和模型物理PolygonSoup数据,黄色胶囊表示运动的人物.
2.物理引擎有个大问题,难以稳定,一个数值的错误很可能导致整个物理世界的崩溃.按持续性物理的原则,帧率的变化会影响物理世界的稳定,我相信这对游戏程序调试会造成很大的困难.
3.在图中规模的世界场景中,实际场景渲染时,Havok引擎在我的E6300 Intel双核CPU上运作十分地流畅,几乎没有没有降低原来的渲染帧率.当然MMORPG的碰撞规模是非常少的,仅仅是人物对世界静态场景的碰撞,至多推几个箱子而已,但是要求的碰撞和碰撞反应逻辑是非常高的,不能是小儿科的,没有实用价值的,拿几个箱子啊,圆球啊,凸面体等的演示,只有像魔兽世界这样完全不规则的模型才测试得出一个物理引擎的效率和稳定性.
4.Havok支持物理模型的Scale,Phyx目前没有这个非常关键的特性.
5.我个人认为,总的说来,当前,不管Havok还是Phyx在都不是一般的难用(至少不如图形API简易好用).对这些基于动力学的物理引擎而言,他们过于死板,过于遵守物理定律,过于霸道.当我需要一些不符合物理学的运动和物体时(比如瞬间改变物体的速度,改变人物在跳跃时的空中轨迹),要绕过或骗过引擎是非常困难的,这通常使引擎变得不稳定.其实我需要实现的不过是人物行走在全3D环境中而已,我要的不是真实的物理世界,而在Havok引擎里实现这么简单的东西需要绕很多弯,基本上要把整个物理引擎的每个概念都要学过一遍,这是物理引擎不成熟的表现.
6.另外,Havok的Demo框架完全是Havok写Demo的程序员偷懒的结果,因为有框架,他们可以简易地写出多个Demo逻辑,但我不需要他们的这些繁杂甚至实现诡异的Demo框架,我不希望去理解这些自以为精妙的框架.因为实际应用中我有我的框架,公司有公司的框架,没有人会为了一个物理引擎去把自己的框架都换掉.程序框架更多程度上是一种卖弄似的垃圾. 我需要简单的独立的Demo,不要基于任何其他第3方的东西,能够让我迅速理解调用运作流程和每个API的简单作用.而Havok的文档完全是程序员在写代码时的注释,不够详细,缺少很多必要的说明.所以在遇到问题时,不要指望文档,唯一的方法是去看复杂的Demo的代码,去猜Demo的代码到底是什么意思,去对比自己的实现哪里跟Demo程序不符.
7.目前,我个人的实践感受上,Havok要比Phyx好得多。Phyx有几个我非常讨厌的限制,PolygonSoup数据需要被预处理(Cooked),不支持Scale变换,CharacterController不够灵活.
Reference:
http://softwarecommunity.intel.com/isn/Community/en-US/forums/2508/ShowForum.aspx