物理引擎分析报告
2006-04-12 11:11
1251 查看
物理引擎分析报告
前言:
物理引擎已经作为游戏引擎的重要组成部分,在3D的游戏中,开发者对物理表现的追求日趋苛刻,因此物理引擎必然会象图形引擎那样独立分支出来,作为专攻对象,这是一个趋势。最近由美国AGEIA公司开发的专门用作物理运算的硬件PPU(Physics processing unit),SEGA、UBISoft、EPIC都率先表示支持这个技术,EPIC甚至表示把这个技术整合到Unreal3.0的引擎上。从以上种种事例,物理引擎得到的重视已可见一斑。一般的游戏引擎都会包括物理模块,但我们今天讨论的是专业的物理引擎,分别是Havok、Vortex、ode、NovodeX、takamak等。下面将对这几款引擎进行横向的比较。
简述:
Ø Havokhttp://www.havok.com
简介:
Havok对PS2、XBOX、GameCube、PC多种游戏平台都有支持。也是世界顶级游戏公司Valve(Half Life的公司),Pandemci,Remedy等的合作伙伴。这个物理引擎曾经支持过各种类型的游戏,包括racing game,first-persion shooter,MMOGs,adventure games,puzzle games等等。Hovak还曾经负责电影Matrix的部分效果处理。
成功案例:
Crash Nitro Kart、Half-Life 2、Max Payne 2、Medal of Honor、F.E.A.R.、Lord of the Rings: Middle Earth Online。
Ø Vortex
http://www.cm-labs.com/
简介:
CMlabs公司的产品和Havok专注的方向不同,他是着重于工程领域的应用,而非游戏领域。专攻机器方面的模拟,所以追求运算的精确性。
因为他的合作伙伴多数是一些非游戏公司,这里就不作介绍了。
Ø Ode
http://www.ode.org/
简介:
Ode是一个开源的引擎,支持跨平台。Ode能够高效的模拟刚体动力学,例如模拟汽车,还有真实环境中的各种物件。现在已经有很多电脑游戏采用了此开发库。
成功案例:
BloodRayne2、Xpand Rally、18 Wheels of Steel: Pedal to the Metal。
Ø NovodeX
http://www.ageia.com/novodex.html
简介:
NovodeX是由开发PPU的公司AGEIA进行维护,因此对于将来PPU硬件的支持,无疑NovodeX是最有优势的。NovodeX是一个模拟刚体动力学的物理引擎,支持速度,加速度,动量,冲量,碰撞等等的物理概念。NovodeX的开发库支持跨平台,多线程,高速碰撞检测等特性,专门对汽车物理的模拟做了优化。
案例:
根据官方文档,已经有超过60个游戏工作室、公司和研究机构采用了NovodeX的技术。
Ø takamak
http://www.tokamakphysics.com/index.htm
简介:
takamak是由David Lam开发的物理引擎。采用了独特的算法,尽可能的减少矩阵的运算,从而提高模拟的效率。
案例:
有一款智力游戏Bontago采用了此引擎,主要展现的都是规则多边形的物理表现。
横向比较
Hovok | Vortex | Ode | NevodeX | Takamak | |
开发公司/作者 | Hovok | CMLabs | Russell Smith | AGEIA | David Lam |
版本 | 3 | 2.3 | 0.5 | 2.1.2 | 1.21 |
发行日期 | 2005.3 | 2004.7 | 2004.5 | 2004.11 | 2005.3 |
是否支持C++开发 | 是 | 是 | 是 | 是 | 是 |
文档/Demo | 详细 | 详细 | 较详细 | 详细 | 较详细 |
License | 商业 价格需要协商 | 商业 价格需要协商 | GNU LGPL/BSD/价格和使用需要协商 | 商业 价格需要协商 | 免费 |
技术支持 | 全面 | 全面 | 少 | 全面 | 无 |
其他 | NA | NA | 开放源码 | 支持PPU | NA |
Hovok
Collision Detection - including Continuous PhysicsDynamics and Constraint Solving
Vehicle Dynamics
Data Serialization and Art Tool Support
Visual Debugger for in-game diagnostic feedback
Vortex
Fast rigid-body dynamicsAccurate collision detection
Stable constraint system
Comprehensive vehicle dynamics
Object oriented C/C++ API
Cross-platform: Microsoft Windows 95-98, NT, 2000, XP, SGI IRIX, Linux
Professional services and training
Ode
Rigid bodies with arbitrary mass distribution.Joint types: ball-and-socket, hinge, slider (prismatic), hinge-2, fixed, angular motor, universal.
Collision primitives: sphere, box, capped cylinder, plane, ray, and triangular mesh.
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.
NevodeX
Fully Configurable NxJoint'Roll your own Joint' with the new, fully configurable NxJoint! With this new flavor of NxJoint constraint you can selectively freeze, limit or free each of 6 DOF's independently, for unparalleled flexibility and ease of use. Virtually any type of joint can be expressed by setting parameters of the NxJoint--completely dynamically. For example, set up a hinge joint (1 DOF free), then convert it to a ball-and-socket (3 DOFs free) to simulate damage.
Support for Multi-Threading
Take advantage of next-generation multiprocessing systems with the new multi-threaded API in the NovodeX SDK. NovodeX makes it easy to provide state-of-the-art physical behavior for gameplay and effects by harnessing the power of leading-edge parallel system architectures.
Improved High-Speed Collision Detection
The industry's fastest and most comprehensive collision system is more robust than ever. Expect reduced tunneling artifacts and improved performance with high-speed objects.
New Raycast Vehicles
The NovodeX SDK now supports an advanced implementation of the single-rigid-body style wheeled vehicle.
Takamak
Tokamak features a unique iterative method for solving constraint.This allows developers to make the trade-off between accuracy
and speed, as well as providing more predictable processor and
memory usage. In addition, Tokamak's constraint solver does not
involve solving large matrices, there by avoiding memory
bandwidth limitation on some game consoles.
Joints Tokamak supports a variety of joint types and joint limits.
Friction Tokamak provides a very realistic friction model and its computational cost is
minimal.
Stacking Tokamak is specially optimized for stacking large number of
objects; one of the most frequently requested features by game
developers.
Collision Detection Build within Tokamak is a very efficient collision
detection module. Currently, Tokamak provides collision detection
for primitives (box, sphere, capsule), combination of primitives, and
arbitrary static triangle mesh.
(NEW! Tokamak now support convex to convex collision detection..)
Rigid Particle A lightweight rigid body providing particle effects in games at minimal cost.
Breakage Constructing model which will break when collision occurs is a breeze in Tokamak. Fragment of
original model will automatically be spawn by Tokamak's built-in breakage functionality.
综述
在观看了每个引擎所提供的demo和相关的文档后,我觉得应该在NevodeX和Ode两者之间进行选择。Hovok是众多引擎里面最有名气的一个,但是能够获得相关的资料却是最少。从他支持的游戏,如Half-Life和Medal of Honor等,可以看出这款引擎的实力。
VorTex是一款面向工业的物理引擎,他追求的方向是精确而非速度。汇集各个方面的因素,我觉得此款物理引擎不可取。
Ode是一款基于Open Dynamics Framework下的一款物理引擎,他十分的开放,可以让开发人员窥探里面的实现方式,甚至进行改进。一款叫做GRYPS(http://engine.hlw.co.at)的游戏引擎已经集成了Ode,这款引擎的供应商可以对此Ode的使用,集成做技术支持,但是相对其他商业引擎,支持还是显得不足。很多开发人员利用这款引擎开发了不少Demo,其中有一些汽车类的Demo,已经基本满足我们的需求。
NevodeX是一款商业物理引擎,从他的Demo来看,模拟的真实感到运行速度,与Ode不相上下,而且文档更加的详细。此款引擎又是由AGEIA进行开发,对于将来PPU的使用也会更加方便。
Takamak是由一个爱好者开发的,因此技术实力比较单薄,而且对于技术支持方面做得不足,应该不予考虑。
备注
以上提及到的引擎demo和文档可以通过我的popo共享文件夹下载。popo:blue_bean@163.com
相关文章推荐
- 物理引擎分析报告
- Bullet 物理引擎 详细分析 Dbvt (4)
- 主流Flash物理引擎分析
- Bullet物理引擎分析-约束分析之背景介绍
- Bullet 物理引擎 详细分析 Dbvt (2)
- hive原理与源码分析-物理执行计划与执行引擎(六)
- EVP5 Unity5 汽车物理引擎demo分析
- Bullet 物理引擎 详细分析 Dbvt (4)
- Bullet物理引擎分析-约束分析之背景介绍
- 企业版个性化搜索引擎产品分析报告
- Bullet 物理引擎 详细分析 Dbvt (2)
- Bullet 物理引擎 详细分析 Dbvt (2)
- Havok物理引擎 关于错误报告的信息(Error Reporting)
- Bullet 物理引擎 详细分析 Dbvt (3)
- Bullet 物理引擎 详细分析 Dbvt (3)
- OT源代码的分析,OrtHello 迟早攻破你 (十一)第6个例子,物理引擎和ortHello的结合(未完)
- cocos2dx3.5 新增物理引擎分析
- Pig 数据分析引擎(一)
- 2015年8月数据安全漏洞分析报告
- 国内支持首款Physx物理引擎网游MKZ详解