常见3D物理引擎概述

今天帮朋友找3D物理引擎的资料,以前也看过那么多了,一直没有总结过,今天顺便整理一下.

1.  Havok:



老牌的君王,支持功能如下:

http://www.havok.com

·         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的CPU会有特别的优化。

(Tip: HL2的泄漏源代码中包含了SDK,就是版本比较老了吧。)

 

2. NovodeX --- AGEIA PhysX

新兴的王者,支持功能如下:

http://www.ageia.com/

·           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及以前的版本,可以在没有硬件卡的情况下使用所有功能,晚上能下载到)

 

3. Bullet

开源届的霸主,支持功能如下:

http://www.bulletphysics.com

·           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: 这款引擎是开源的,有兴趣的朋友,可以看看。)

 

4. ODE

开源的名角,支持功能如下:

http://www.ode.org/

·           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...

嘿嘿,这个就不用做过多的介绍了,国内使用和学习这个的人比较多了。只是最近看到他的网页上有这么一句话:“Russell Smith is the primary author of ODE.”不知道是谁又伤害了这位仁兄。

(Tip: Google一下,中文文章一大把。)

 

5. TOKAMAK

最近想通了,决定开源了。支持功能如下:

http://www.tokamakphysics.com/

·           Joints

·           Friction

·           Stacking

·           Collision Detection

·           Rigid Particle

·           Breakage

这个物理引擎出现也比较早了,作者是日本人,其实日本的游戏也很发达的,能把技术共享出来,难得啊。(日文的技术网站还是很多的。)

6. Newton

更多的专注于生活中的实例模拟。

http://www.newtondynamics.com

这款物理引擎名声可能不是很响,但是功能上绝对不差。比较出名的作品有:TV3D, Quest3D

(Tip:这款引擎支持Delphi;在后面这个非官方的Wiki上,有一套不错的教程: http://walaber.com/newton_wiki/index.php?title=Main_Page )

 

6. Simple Physics Engine

国产精品,支持功能如下:

http://spehome.cn/

·  使用独创的快速而稳定的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与其他软件系统结合的难度,使用户在瞬间即可建立一个具有真实物理属性的世界。

·  更多的功能正在不断开发中……

呵呵,国人做的一款物理引擎,关注….

 

 

 

最后: 当然还有其它的2D物理引擎就有很多了,改天有空的时候再整理一下吧。

时间: 2024-10-01 17:18:29

常见3D物理引擎概述的相关文章

3D物理引擎JiglibFlash

JiglibFlash从c++的3D物理引擎Jiglib移植而来. 演示:demo 1, demo 2 下载: example1, example2 svn checkout http://jiglibflash.googlecode.com/svn/trunk/ jiglibflash-read-only   其他: WOW,Papervision 3D  

《Unity 4 3D开发实战详解》一6.7 物理引擎综合案例

6.7 物理引擎综合案例 Unity 4 3D开发实战详解 前面已经详细介绍了Unity中物理引擎的基础知识,同时,通过一些小案例来具体介绍了物理引擎的相关应用.本小节将通过一个综合案例,使读者对Unity中的物理引擎有进一步的理解. 1.案例的构思 开发案例首先要有一个明确的思路,倘若思路混乱,就会导致案例的整体不协调.接下来介绍一下本案例的设计思路. (1)首先要明确案例要达到的目的.本案例是为了演示物理引擎模拟现实的特性. (2)接着要明确案例场景的周边环境,要确定场景的天气.本案例中,为

《Unity 4 3D开发实战详解》一第6章 物理引擎

第6章 物理引擎 Unity 4 3D开发实战详解对于一个游戏开发平台来说,除了比较友好的开发环境,还必须拥有其完整的物理引擎体系.现实生活中的所有事物都遵循自然界的物理法则,要达到模拟现实的效果必须有同自然物理法则相对应的物理引擎作辅助. Unity 3D游戏引擎内置的PhysX物理引擎是Unity的核心部分.物理引擎通过为刚性物体赋予真实的物理属性的方式来计算它们的运动.旋转和碰撞反应.Unity已经将该物理引擎完美地集成起来,开发中只需要简单地操作就可以使物体按照物理运动规律进行运动.

JavaScript 的物理引擎对比

在本文中,我们将对比看一下当前三个非常流行的和一个目前还在开发中的JavaScript 物理引擎库,分别是: box2dweb,Ammo.js,JigLibJS 以及 Connon.js.我们会简短的介绍下每个 JS库,之后开始按照使用.性能和特征来评分. 不过运行其中任意一个库文件都是不带任何可视化效果的,这样很无趣,因此我们会设置一个小的环境来查看这些模拟运行的结果.由于 Three.js 的流行和使用简易,我使用它和它的 CanvasRenderer 来呈现结果.除了可以展示物体是如何交互

三个物理引擎(转)

介绍三个物理引擎以及讨论  物理引擎在3D的领域中是较年轻的,而且难度也比较高, 先製作这篇文章,是想让大家有个先行印象,了解这是什么. 別担心,最终这些教学终將连结成为一体,我只是让大家的概念先推前一下. 当成看杂誌一般的心情即可,如果你有研究,会使用SDK,也可以马上开始. 关於物理 牛顿归纳出了地心引力的通则,並且开始以数学方法描述物理现象, 这已经是很久前的事情了,但是並不只是东西往下掉而已,虽然简单讲是这样. 球会滚动.羽毛会飘落.摩擦力......等等,都是自然界常见的力学现象. 关

Horde3D —— C++ 轻量级 3D 渲染引擎

Horde3D 是一个用 C++ 写成的 3D 渲染引擎,致力于成为一款轻量型.概念清晰的软件. Horde3D 需要一个完全兼容 OpenGL2.0 的显卡.在 DirectX 上,意味着至少支持 Shader Model2.0 或更高的卡. 特性: 强大的图形引擎,旨在满足下一代游戏的要求 现代的基于着色器的架构,最低要求兼容 SM 2.0 的硬件 使用 OpenGL 作为渲染 API,跨平台兼容 整体设计优雅而轻巧,非常少的依赖,尽可能地避繁就简 整洁的面向对象 C++ 代码,为性能而生

Top 10:HTML5、JavaScript 3D游戏引擎和框架

由于很多人都在用JavaScript.HTML5和WebGL技术创建基于浏览器的3D游戏,所有JavaScript 3D游戏引擎是一个人们主题.基于浏览器的游戏最棒的地方是平台独立,它们能在iOS.Android.Windows或其他任何平台上运行. 有很多的JavaScript能够用于创建基于浏览器.使用HTML5和WebGL的3D游戏.然后,选择一个合适的游戏引擎是一个不小的挑战,它有时能帮你完成项目或突破项目瓶颈. 为了让你的选择变的容易,我们已经通过分析大多数JavaScript 3D游

物理引擎

物理引擎:motor2 基于Box2d的AS3(Player 10)刚体引擎 作者主页:http://lab.polygonal.de/motor_physics/APE  最简单http://www.cove.org/ape/FOAM - 2D Rigid Body Physics Engine http://code.google.com/p/foam-as3glaze - 2D Rigid Body Dynamics & Game Engine for Actionsctipt 3http

设计自己的3D图像引擎(1): WuguiEngine之开篇的话

前言: 研究3D游戏相关的知识有了不少的时间了.最近一段时间开始写自己的3D图像引擎-WuguiEngine. 代码也参考了不少的资料. 从引擎的功能上来说,不求能够让大众接受, 不求能够成为一个众多人维护的开源项目(不过源代码是开放的,只是没有太多精力来管理一个项目). 只是我一个在学习过程中的一个简单的项目.同时我在编写的过程中也希望能够多和大家交流, 把我的心得与大家分享, 也希望大家能够为我的学习或者项目提出一些意见. 本引擎虽然不算一个很易用的引擎, 不过也会实现目前流行的一些技术.