您的位置:首页 > 其它

物理引擎分析报告

2006-04-12 11:11 1251 查看

物理引擎分析报告

前言:

物理引擎已经作为游戏引擎的重要组成部分,在3D的游戏中,开发者对物理表现的追求日趋苛刻,因此物理引擎必然会象图形引擎那样独立分支出来,作为专攻对象,这是一个趋势。最近由美国AGEIA公司开发的专门用作物理运算的硬件PPU(Physics processing unit),SEGA、UBISoft、EPIC都率先表示支持这个技术,EPIC甚至表示把这个技术整合到Unreal3.0的引擎上。从以上种种事例,物理引擎得到的重视已可见一斑。
一般的游戏引擎都会包括物理模块,但我们今天讨论的是专业的物理引擎,分别是Havok、Vortex、ode、NovodeX、takamak等。下面将对这几款引擎进行横向的比较。

简述:

Ø Havok

http://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 Physics
Dynamics and Constraint Solving
Vehicle Dynamics
Data Serialization and Art Tool Support
Visual Debugger for in-game diagnostic feedback

Vortex

Fast rigid-body dynamics
Accurate 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: