1. Havok: 老牌的君王,支持功能如下: · Collision Detection - including Continuous Physics™ · MOPP™ Technology - for compact representation of large collision meshes · Dynamics and Constraint Solving · Vehicle Dynamics · Data Serialization and Art Tool Support · Visual Debugger for in-game diagnostic feedback 有不少游戏和软件都选择了他做物理引擎,比如HOLO3,失落星球,HL2, 细胞分裂,指环王Online ..etc现在Havok被Intel收购了,Intel使出了扩展Havok物理引擎市场的杀手锏——免费!Havok在网站上开始提供其物理和动画引擎产品的全免费下载。内容包括Havok SDK库、样例、技术文档以及支持Maya、3ds Max和Avid XSI等3D建模软件的格式转换工具。所有的一切只要简单注册一下姓名邮箱就可以免费下载。 下载地址
2. NovodeX --- AGEIA PhysX 新兴的王者,支持功能如下: · Massively Parallel Physics Architecture · High-speed GDDR3 Memory Interface · AGEIA Universal Continuous Collision Detection · AGEIA Physical Smart Particle Technology · AGEIA Complex Object Physics System · AGEIA Scalable Terrain Fidelity · AGEIA Dynamic Gaming Framework 因为特有的硬件卡(物理加速卡-PPU)支持,所以能处理大量的物理运算,其他几款暂时没得比。Unreal3,GameBryo, Reality Engine等多款商业引擎和游戏都使用了他。 (Tip: NovodeX2.2及以前的版本,可以在没有硬件卡的情况下使用所有功能,晚上能下载到) NovodeX是虚幻引擎3中功能强大的新一代物理引擎,其性能决不输给Havok Physics。NovodeX支持速度、加速度和弹性碰撞等物理概念,并且含有布娃娃系统令人物动作更加逼真。 复杂而强大的声音仿真效果是NovodeX物理引擎的另一亮点,它不仅能够模拟出音调随着发音物体的速度而变化的多普勒效应(最明显的例子是运动着的火车汽笛声调会变的现象),甚至连同一物体中材质不同的位置也能够发出不同的声音。
要使用NovodeX,我们首先需要在自己的项目中 以上三个文件都可以在下载的sdk中找到
PhysicsSDK = NxCreatePhysicsSDK(NX_PHYSICS_SDK_VERSION, 0, 0); OK ,到此我们已经拥有了一个物理环境,下一步该加入一些物体看看效果了 下一步。。。做个盒子好了 上面会发现和平面不同的是,出现了两个新的属性globalPose和density 有了物体,我们就开始让他们动起来 恩,让我们看看我们的成果吧 好了,再运行看看? 盒子一边旋转一边落下来了吧,这个就是基本的应用。 这款引擎的相关文档在网上还是比较多的。 3. Bullet 开源届的霸主,支持功能如下: · Multi Platform support · Supports various shape types: · Discrete Collision Detection for Rigid Body Simulation · Single Queries: · Sweep and Prune Broadphase · Documentation and Support · Auto generation of MSVC project files, comes with Jam build system · Bullet Collision Detection works with Bullet Dynamics, but there is also a sample integration with Open Dynamics Engine. · Framework with 2 different Constraint Solvers · Hinge, Point to Point Constraint, Twist Cone Constraint (ragdolls) · Automatic de-activation (sleeping) · Generic 6 Degree of Freedom Constraint , Motors, Limits · LCP Warm starting of contact points · Collada 1.4 Physics Import using FCollada and COLLADA-DOM · Convex Decomposition Code 这款物理引擎的历史也比较久了,但似乎国内知道的ODE的人更多一些,这款物理引擎被Nvidia的开发人员所关注(Nvidia前些时候说过,要用GPU来实现物理加速,可能会最先在这款物理引擎上实现。) (Tip: 这款引擎是开源的,有兴趣的朋友,可以看看。) http://hi.baidu.com/kenshin1987/blog/item/9fe00afb8134878f9f51468c.html这篇文章给了一个简单的使用示例。 4. ODE 开源的名角,支持功能如下: · Rigid bodies with arbitrary mass distribution. · Joint types: ball-and-socket, hinge, slider (prismatic), hinge-2, fixed, angular motor, linear motor, universal. · Collision primitives: sphere, box, cylinder, capsule, plane, ray, and triangular mesh, convex. · Collision spaces: Quad tree, hash space, and simple. · Simulation method: The equations of motion are derived from a Lagrange multiplier velocity based model due to Trinkle/Stewart and Anitescu/Potra. · A first order integrator is being used. It's fast, but not accurate enough for quantitative engineering yet. Higher order integrators will come later. · Choice of time stepping methods: either the standard ``big matrix'' method or the newer iterative QuickStep method can be used. · Contact and friction model: This is based on the Dantzig LCP solver described by Baraff, although ODE implements a faster approximation to the Coloumb friction model. · Has a native C interface (even though ODE is mostly written in C++). · Has a C++ interface built on top of the C one. · Many unit tests, and more being written all the time. · Platform specific optimizations. · Other stuff I forgot to mention... 免费、开源、授权合理,所以基本上很多游戏引擎都有绑定ODE作为物理引擎,
//创建图形对象 //剩下就没什么了,都交给ode引擎去忙吧 } 这里有一个简单的学习示例http://www./updraft/articles/38375.html
5. TOKAMAK 最近想通了,决定开源了。支持功能如下: · Joints · Friction · Stacking · Collision Detection · Rigid Particle · Breakage 这个物理引擎出现也比较早了,作者是日本人,其实日本的游戏也很发达的,能把技术共享出来,难得啊。 Tokamak是一个速度极快的物理引擎,基本上他只能被使用於Windows平台, Tokamak适合于应用在关节比较多的角色,以及赛车之类的游戏, 6. Newton 更多的专注于生活中的实例模拟。 这款物理引擎名声可能不是很响,但是功能上绝对不差。比较出名的作品有:TV3D, Quest3D (Tip:这款引擎支持Delphi;在后面这个非官方的Wiki上,有一套不错的教程: http:///newton_wiki/index.php?title=Main_Page )
6. Simple Physics Engine 国产精品,支持功能如下: · 使用独创的快速而稳定的Tri-Mesh碰撞检测算法,使载入模型数据异常简单。SPE的碰撞检测系统从一开始就是针对三角形网格(Tri-Mesh)而设计,所以用户可以方便地使用mesh文件创建任意形状的刚体,SPE内部将自动处理所有工作。同时,SPE支持球和胶囊两种基本几何形状,方便用户创建粒子特效和ragdoll系统。此外,SPE支持一定条件下的连续碰撞检测,可以正确地处理大多数情况下的高速运动物体。 · 碰撞信息分析。SPE对碰撞检测系统产生的数据进行智能化分析,为碰撞反应计算提供更可靠更正确的原始数据,极大地提高了系统的稳定性。 · 稳定的碰撞与接触解决系统。从1.5版开始,SPE采用全新的解决算法,更正确地计算摩擦与反弹,而且更稳定。 · SPE提供一种稳定的基本Joint功能,支持最大距离、弹性系数以及破坏力等参数的配置,用户可以使用它方便地创建各种其他类型的Joint。 · 实时刚体破碎。(Beta)。SPE提供“形状操作”的功能,任何模型均可被一组平面或另一个模型切成小块,SPE生成的模型中包括用于区分原始表面与切面的属性信息,方便用户更合理地渲染出新的形状。目前,可破坏刚体的API已经开放。
· 高并行计算。SPE已经完成了多线程化以充分利用多核心CPU的性能. 90%以上的计算任务都可均匀地分配到任意数量的线程中去. 与单线程相比,双线程至少能提供60%的性能提升,而四线程可以带来150%以上的性能提升。使用SPEWorld::SetNumThreads( )即可在任何时候开启多线程计算。 · 简单易用而人性化的接口,极大地降低了SPE与其他软件系统结合的难度,使用户在瞬间即可建立一个具有真实物理属性的世界。 · 更多的功能正在不断开发中…… 呵呵,国人做的一款物理引擎,关注….
|
|