物理引擎分析报告

来源:互联网 发布:手机夜视仪软件 编辑:程序博客网 时间:2024/04/29 08:23

物理引擎分析报告

前言:

物理引擎已经作为游戏引擎的重要组成部分,在3D的游戏中,开发者对物理表现的追求日趋苛刻,因此物理引擎必然会象图形引擎那样独立分支出来,作为专攻对象,这是一个趋势。最近由美国AGEIA公司开发的专门用作物理运算的硬件PPUPhysics processing unit),SEGAUBISoftEPIC都率先表示支持这个技术,EPIC甚至表示把这个技术整合到Unreal3.0的引擎上。从以上种种事例,物理引擎得到的重视已可见一斑。

一般的游戏引擎都会包括物理模块,但我们今天讨论的是专业的物理引擎,分别是HavokVortexodeNovodeXtakamak等。下面将对这几款引擎进行横向的比较。

简述:

Ø         Havok

 

 

 

http://www.havok.com

简介:

HavokPS2XBOXGameCubePC多种游戏平台都有支持。也是世界顶级游戏公司ValveHalf Life的公司),PandemciRemedy等的合作伙伴。这个物理引擎曾经支持过各种类型的游戏,包括racing gamefirst-persion shooterMMOGsadventure gamespuzzle games等等。Hovak还曾经负责电影Matrix的部分效果处理。

成功案例:

Crash Nitro KartHalf-Life 2Max Payne 2Medal of HonorF.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能够高效的模拟刚体动力学,例如模拟汽车,还有真实环境中的各种物件。现在已经有很多电脑游戏采用了此开发库。

成功案例:

       BloodRayne2Xpand Rally18 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和相关的文档后,我觉得应该在NevodeXOde两者之间进行选择。

Hovok是众多引擎里面最有名气的一个,但是能够获得相关的资料却是最少。从他支持的游戏,如Half-LifeMedal of Honor等,可以看出这款引擎的实力。

VorTex是一款面向工业的物理引擎,他追求的方向是精确而非速度。汇集各个方面的因素,我觉得此款物理引擎不可取。

Ode是一款基于Open Dynamics Framework下的一款物理引擎,他十分的开放,可以让开发人员窥探里面的实现方式,甚至进行改进。一款叫做GRYPShttp://engine.hlw.co.at)的游戏引擎已经集成了Ode,这款引擎的供应商可以对此Ode的使用,集成做技术支持,但是相对其他商业引擎,支持还是显得不足。很多开发人员利用这款引擎开发了不少Demo,其中有一些汽车类的Demo,已经基本满足我们的需求。

NevodeX是一款商业物理引擎,从他的Demo来看,模拟的真实感到运行速度,与Ode不相上下,而且文档更加的详细。此款引擎又是由AGEIA进行开发,对于将来PPU的使用也会更加方便。

Takamak是由一个爱好者开发的,因此技术实力比较单薄,而且对于技术支持方面做得不足,应该不予考虑。

备注

以上提及到的引擎demo和文档可以通过我的popo共享文件夹下载。

popo:blue_bean@163.com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

原创粉丝点击