[原][osg][osgEarth]关于在OE中使用物理引擎的调研

关于物理引擎旋转的一些整理

参考文档

http://blog.wolfire.com/2010/03/Comparing-ODE-and-Bullet

介绍ODE和bullet的利弊

http://stackoverflow.com/questions/6408198/bullet-vs-newton-game-dynamics-vs-ode-physics-engines

讨论作者想要哪款物理引擎

https://www.ibm.com/developerworks/cn/opensource/os-physicsengines/

这里有Box2D和Bullet的详细介绍(中文)

物理引擎对比


引擎


平台|协议


效率|精度


优势


劣势


Chipmunk


非常精确


仅支持2D


Box2D


开源

Zlib许可


用的多


仅支持2D


NewTon Game Dynamics


开源


(ODE)

Open Dynamics Engine


平台多

开源

BSD许可


比较精确

效率低


提供不少飞行参数调节

文档好

成熟度高

Osg支持


效率太低

物体多就卡

不维护了


Bullet


平台多,开源

Zlib许可


效率和精确性比ODE好


用的多

OpenCL支持

多线程

SIMD数学库

不断更新

AMD厂家支持

Osg支持


文档更新跟不上代码迭代速度

官方论坛都被墙了


Havok


平台多,不支持mac

付费开源


精确性比PhysX好


游戏领域使用最广

Intel厂家支持

使用多核CUP算

Ogre支持


不支持GPU


PhysX


精确性低

效率一般


英伟达厂家支持

使用GPU算

Ogre支持

OSG支持


多线程支持不好

PC端支持不好

一些有用的观点:

starting with a stable,  documented physics library like ODE may have given me the experience I needed to be able to understand and use a more rapidly-changing physics library like Bullet这个作者一开始使用ODE,干到一半换bullet了。

Osg的扩展工程:

http://www.osgchina.org/index.php?view=article&id=176

其中 osgBullet  osgode  osgRecipes都提供物理功能

OSG与物理的结合还是phsyX比较多一点,其次是

osgBullet

http://osgbullet.vesuite.org/

http://osgbullet.googlecode.com/

好像不维护了

相关文章:

http://blog.csdn.net/lh1162810317/article/details/17475297

http://www.unjeep.com/q/641844992.htm 配置bullet库

http://www.docin.com/p-1313518364.html 相关论文

http://blog.csdn.net/silangquan/article/details/9730963 不完全指南

osgode

https://sourceforge.net/projects/osgode/

OsgRecipe(包含physX)

https://github.com/xarray/osgRecipes/wiki

不断补充完善中。。。目前physX已经结合进OE了,但是感觉效率会不行,现在研究下bullet和ode就下决定了

时间: 2024-11-09 12:41:16

[原][osg][osgEarth]关于在OE中使用物理引擎的调研的相关文章

实例介绍Cocos2d-x中Box2D物理引擎:HelloBox2D

我们通过一个实例介绍一下,在Cocos2d-x 3.x中使用Box2D物理引擎的开发过程,熟悉这些API的使用.这个实例运行后的场景如图所示,当场景启动后,玩家可以触摸点击屏幕,每次触摸时候,就会在触摸点生成一个新的精灵,精灵的运行自由落体运动. HelloBox2D实例 使用Box2D引擎进行开发过程,如图12-15所示.下面我们就按照这个步骤介绍一下代码部分.首先看一下看HelloWorldScene.h文件,它的代码如下: [html] view plaincopy #ifndef __H

cocos2dx 3.2中的物理引擎初探(一)

cocos2dx在设计之初就集成了两套物理引擎,它们是box2d和chipmunk.我目前使用的是最新版的cocos2dx 3.2.引擎中默认使用的是chipmunk,如果想要改使用box2d的话,需要修改对应的android工程或者是ios工程的配置文件. 在2.x版本的cocos中,使用物理引擎的步骤十分繁琐.但在3.x版本中变得非常方便了.我这次的学习目标是制作一个打砖块的小游戏. 首先,现在的Scene类提供了一个静态工厂方法,用以创造一个集成物理引擎的场景. Scene::initWi

cocos2d-js中Chipmunk物理引擎相关(1)

最近看些cocos2d-js的东西,用到其中的Chipmunk的一些东西,因为相关的资料也不是很详细,所以看到一些东西有用就记录下来. 1. chipmunk是cocos2d的一个一个物理引擎,用来模拟重力,碰撞等等的现实场景. 一个chipmunk body代表虚拟空间中的一个物体,他可能会包含一个或者多个chipmunk shape从而构成它的几何形状. 比如将一个动态的chipmunk物体加入到场景中: 初始化: this.body = new cp.Body(1, cp.momentFo

实例介绍Cocos2d-x中Box2D物理引擎:使用关节

下面我们将使用Box2D物理引擎技术进行重构.使得关节能够掌握如何在Box2D使用关节约束.HelloWorldScene.cpp中与使用关节的相关代码如下: [html] view plaincopy void HelloWorld::addNewSpriteAtPosition(Vec2 p) { log("Add sprite %0.2f x %02.f",p.x,p.y); //创建物理引擎精灵对象A auto spriteA = Sprite::create("Bo

实例介绍Cocos2d-x中Box2D物理引擎:碰撞检测

在Box2D中碰撞事件通过实现b2ContactListener类函数实现,b2ContactListener是Box2D提供的抽象类,它的抽象函数:virtual void BeginContact(b2Contact* contact).两个物体开始接触时会响应,但只调用一次.virtual void EndContact(b2Contact* contact).分离时响应.但只调用一次.virtual void PreSolve(b2Contact* contact, const b2Ma

实例介绍Cocos2d-x中Box2D物理引擎:碰撞检測

在Box2D中碰撞事件通过实现b2ContactListener类函数实现,b2ContactListener是Box2D提供的抽象类,它的抽象函数:virtual void BeginContact(b2Contact* contact).两个物体開始接触时会响应,但仅仅调用一次. virtual void EndContact(b2Contact* contact).分离时响应. 但仅仅调用一次. virtual void PreSolve(b2Contact* contact, const

[原][译][osgearth]样式表style中参数总结(OE官方文档翻译)

几何Geometry 高度Altitude 挤压Extrusion 图标Icon 模型Model 渲染Render 皮肤Skin 文本Text 覆盖Coverage 提示: 在SDK中,样式表的命名空间是osgEarth::Symbology 每个符号类是在AltitudeSymbol中,属性通过LineSymbol::strokeWidth() 访问器可用 值类型 float: 实数 float with units: 有单位的实数, e.g. 20px (20 pixels) or 10m

使用cocos2d-js-3.0RC1中的物理引擎chipmunk模拟的“别碰钉子”源码分享(含碰撞检测)

分别用box2d和chipmunk实现了一下,不过box2d没整理,也懒得整理了.chipmunk整理了一下,分享给大家吧. 刚开始研究,抛砖引玉 简要说明:1.初始化物理环境,增加边界 initPhysics: function () { var space = this.space ; var staticBody = space.staticBody; //开启物体形状测试 //this.initDebugMode(); // Gravity space.gravity = cp.v(0,

[原]Unity3D深入浅出 - 认识开发环境中的Layers面板

Layers(分层)下拉列表:用来控制Scene视图中游戏对象的显示,在下拉菜单中为勾选状态的物体将显示在Scene视图中. Everything:显示所有的游戏对象 Nothing:不显示任何游戏对象 Default:显示没有任何控制的游戏对象 TransparentFX:显示透明的游戏对象 Igonore Raycast:显示不处理投射事件的游戏对象 Water:显示水对象 EditLayers:编辑层 尊重他人劳动成功,转载请注明出处:http://www.cnblogs.com/tong