- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
15-游戏中的物理引擎.ppt
第15章 游戏中的物理引擎 物理引擎 物理引擎通过给物体赋予真实的物理属性来模拟物体的运动,包括碰撞、移动、旋转等。 并不是所有的游戏都必须使用独立的物理引擎,一些简单的游戏的物理功能可以通过自行开发碰撞检测及实现力学公式来实现对刚体及质点的模拟。 当游戏需要实现比较复杂的刚体碰撞、滚动或者弹跳时,通过全部自行编程的方式实现就非常困难,成本也很高。可以使用独立的物理引擎来模拟物体的运动,使用物理引擎不仅可以得到更加真实的结果,对于开发人员来说也比自行开发要耗时短、效率高。 一款好的物理引擎不仅会帮助实现碰撞检测、力学公式模拟,而且还会提供很多机械结构的实现,如滑轮、齿轮、铰链等。 更高级的物理引擎不但可以提供刚体的模拟,甚至还可以提供软体及流体的模拟,这些都能帮助游戏提升真实感和吸引力。 常见的物理引擎 物理引擎名称 Havok PhysX Bullet Box2D ODE 持有公司/人员 Intel Nvidia AMD Erin Catto Russell Smith 是否开源 否 否 是 是 是 是否支持C/C++ 是 是 是 是 是 最新版本 5.5 2.1.2 2.78 2.1.2 0.11.1 文档情况 详细 详细 尚可 尚可 一般 1. Havok Havok成立于1998年,总部位于都柏林。在2000年游戏开发者大会上发布了Havok 1.0 ,最新版本为Havok5.5,该引擎基于C/C++。2007年9月,Intel宣布成功收购Havok。之后,Intel宣布Havok引擎开放源代码并允许游戏开发人员免费用于非商业用途。 由于Havok的开放性和不依赖特定硬件的特点,很多大型游戏均使用Havok引擎。其中著名的有星际争霸2、暗黑破坏神3等。 2011年3月6号,Intel宣布Havok引擎开始支持Android。 Havok引擎工作流程 2. PhysX PhysX不仅可以由CPU计算,而且其程序本身在设计上可以使用独立的浮点处理器来计算。正是由于这个原因,其可以非常轻松地完成像流体力学那样计算量非常大的物理模拟计算。该引擎可以在Windows,Linux,Xbox360,Playstation3,Mac等多种平台上运行。 到目前为止在X86-PC平台上,共有222种游戏采用PhysX引擎。被大家熟知的有雪域危机、虚幻竞技场3。 3. Bullet Bullet是一款开源的物理引擎,是AMD开放物理计划成员之一。同时其也是一个跨平台的物理引擎,支持Windows、Linux、MAC、Playstation3、XBOX360以及Nintendo Wii等主流平台。 使用Bullet物理引擎开发的游戏主要有侠盗猎车4,其效果如图10-5所示。同时使用该引擎制作的电影也不乏好莱坞大作,如2012就是使用的该引擎。 4. ODE ODE(Open Dynamic Engine)是一款免费的具有工业品质的刚体动力学引擎。其可以非常好的仿真现实中物体的移动、旋转等,具有快速、强健和可移植性,并且内置碰撞检测系统。ODE 目前可以支持球窝、铰链、滑块、定轴、角电机和 hinge-2等连接类型,还可以支持各种碰撞形式(如球面碰撞和平面碰撞)和多个碰撞空间。 应用不如前几种广泛。 5. Box2D Box2D是一款非常著名的2D物理引擎,主要用于2D刚体仿真。 有C++、Flash和Java等版本。 Box2D 会自动管理各个物体的碰撞、弹跳等物理状态,用户只需要创建各种刚体。 非常受欢迎的游戏《愤怒的小鸟》就是基于该引擎开发的。 / 2D的王者JBox2D JBox2D是开源的物理引擎Box2D的Java版本,可以直接用于Android。由于JBox2D的图形渲染使用的是Processing库,因此在Android平台上使用JBox2D时,图形渲染工作只能自行开发。该引擎能够根据开发人员设定的参数,如重力、密度、摩擦系数和弹性系数等,自动地进行2D刚体物理运动的全方位模拟。 Box2D核心概念 刚体(rigid body) 一块十分坚硬的物质,它上面的任何两点之间的距离都是完全不变的。? 形状(shape) 一块严格依附于物体(body)的 2D碰撞几何结构(collision geometry)。形状具有摩擦(friction)和恢复(restitution)的材料性质。 约束(constraint) 一个约束(constraint)就是消除物体自由度的物理连接。在 2D中,一个物体有 3个自由度。如果把一个物体钉在墙上(像摆锤那样),那就把它约束到了墙上。这样,此物体就只能绕着这个钉子旋转,所以这个约束消除了它 2个自由度。 ?接触约束(contact constraint) 一个防止刚体穿透,以及用
原创力文档


文档评论(0)