牵着老婆满街逛

严以律己,宽以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

三个物理引擎(转)

介绍三个物理引擎以及讨论

物理引擎在3D的领域中是较年轻的,而且难度也比较高,
先製作这篇文章,是想让大家有个先行印象,了解这是什么。

別担心,最终这些教学终將连结成为一体,我只是让大家的概念先推前一下。
当成看杂誌一般的心情即可,如果你有研究,会使用SDK,也可以马上开始。

关於物理
牛顿归纳出了地心引力的通则,並且开始以数学方法描述物理现象,
这已经是很久前的事情了,但是並不只是东西往下掉而已,虽然简单讲是这样。
球会滚动、羽毛会飘落、摩擦力......等等,都是自然界常见的力学现象。

关於游戏的物理
在2D游戏里,大部分的物理被简化为"离开地面的时候,就往下掉",这样简单易懂,
马里奥、洛克人都是这样,所以我们习以为常,甚至大多数的游戏都不考虑物理的。
(比较明显的例子是,1942里的飞机是不可能"空中倒退"的,但实际上没人觉得奇怪)。

事实上有个东西叫做力矩,你拋出一个纸团,他不只受地心引力往下拉,还会旋转,
可是要在游戏里实现这样的功能,只能说是"奢侈、浪费运算",或是"令人不习惯"。

现在的3D游戏已经大抵脱离简单的多边形,在建模上栩栩如生,尤其是FPS,
更是讲求真实,这样的演化路线终於演进到了玩家与环境的关係上。

你用枪打玻璃,玻璃会破碎,打坏一叠箱子底下的一个,整个会塌下来,说实话,
一般人不太可能在现实做这些事情(但是生活中还是有物理),游戏中要求真实性,
那么就需要做出一套运算库,让游戏中实现接近真实的物理。

好吧,3D很难,复杂的数学更难,所以要栩栩如生的表现出来,几乎不可能,
这变成了一种商业机密、或者是纯学术研究的討论,一直到近几年,才比较平民化,
因为3D创作工具也普及了,结合这些东西,你也可以在自己的游戏中实现物理。

普及的物理引擎
这里列出三个常常被使用的物理引擎,不代表全部,但掌握其中一个都很有帮助。

Open Dynamics Enginehttp://www.ode.org/
免费、开源、授权合理,所以基本上很多游戏引擎都有绑定ODE作为物理引擎,
但是其缺点之一就是在多物件时,相较其他物理引擎,会比较慢,但是,
部分修改过的商业版本情况好一点,但却不是开源的了。

Newton Game Dynamicshttp://www.newtondynamics.com/
这个物理引擎是跨Win32/Mac/Linux三个平台的,同时也有3DGameStudio插件,
在速度和功能上很不错,你也可以找到大量范例,虽然没有开源,但广为使用,
有兴趣的人,从这个开始是不错的选择,他也是OGRE游戏引擎的组件之一。

Tokamak Game Physicshttp://www.tokamakphysics.com/
Tokamak是一个速度极快的物理引擎,基本上他只能被使用於Windows平台,
但是速度上的优势让他佔有一席之地,当然这引擎也是免费提供的,
Tokamak有被应用为Blitz3D的插件,所以您若是Blitz3D用户,可能见过其身影。

posted on 2007-01-25 15:48 杨粼波 阅读(7022) 评论(2)  编辑 收藏 引用

评论

# re: 三个物理引擎(转) 2011-09-30 22:00 ljb

很好!继续!  回复  更多评论   

# re: 三个物理引擎(转) 2012-02-26 14:49 思无境

请问有那些ODE书籍可以推荐一下?  回复  更多评论   


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理