开源的物理引擎.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
开源的物理引擎

开源的物理引擎 用开源构建可信世界 M. Tim Jones, 顾问工程师, Independent author M. Tim Jones 是一名嵌入式软件工程师,他是 Artificial Intelligence: A Systems Approach、GNU/Linux Application Programming(现已第二版)、AI Application Programming(现已第二版)和 BSD Sockets Programming from a Multilanguage Perspective 等书的作者。他的工程背景非常广泛,从同步宇宙飞船的内核开发到嵌入式架构设计,再到网络协议的开发。Tim 是 Intel 公司的平台架构师,也是居住在科罗拉多州 Longmont 的一名作家。 简介: 图形赋予游戏一种视觉的吸引力,但是能够让游戏的世界鲜活起来的还应该是内部的物理引擎。物理引擎 是一种软件组件,可仿真物理系统。这种仿真包括软体和刚体力学、流体力学以及碰撞检测。开源社区有一些可工作在 2D 和 3D 空间的有用物理引擎是专门针对游戏和仿真而设的。本文介绍了物理引擎的用处和基础知识并探究了两个现有的引擎:Box2D 和 Bullet。 标记本文! 发布日期: 2011 年 9 月 07 日 级别: 中级 原创语言: 英文 访问情况 : 3921 次浏览 评论: 0 (查看 | 添加评论 - 登录) 平均分 (3个评分) 为本文评分 物理引擎 是一种仿真程序,可用来创建一种虚拟环境,在其中集成来自物理世界的规律。在这个虚拟的环境中包括的物体,除了物体之间的相互作用(比如碰撞)外,还包括施加到它们身上的力(比如重力)。物理引擎可在仿真环境内模拟牛顿物理学并处理这些力和相互作用。 物理引擎最为人称道的应用之一就是在娱乐和游戏行业(参见 图 1),其中物理引擎提供了游戏环境的实时仿真(包括玩家和可能出现的其他物体)。在应用于游戏领域之前,物理引擎在科学领域早已有诸多应用,从天体的大型仿真到气候仿真,再到可视化纳米粒子的行为及其相关作用力的小型仿真。 图 1. 游戏应用中的物理引擎 这些应用之间的一个关键差别是:以游戏为中心的物理引擎侧重于实时近似,而科学仿真中的物理引擎则更多地侧重于精确计算以获得高准确性。科学物理引擎依赖于超级计算机的原始处理能力,而游戏物理引擎则可运行于更为资源受限的平台(比如手持型游戏设备和移动手机)。游戏物理引擎通过避免诸如布朗运动这样的东西来缩减仿真,进而最小化仿真的处理复杂性。这些引擎内所涉及到的数学和物理概念超出了本文的讨论范围之外,相关信息的链接可以在 参考资料 中找到。 目前已经有很多种游戏物理引擎,取决于各自的需求,但是它们全部都是相同主题的衍生。在游戏中,您可以找到 ragdoll physics(仿真一个复杂铰接系统的行为)和粒子系统(模拟了很多大大小小的粒子在对诸如爆炸等事件做出响应时的行为)。一个最早的软件物理引擎是 ENIAC 计算机,用来仿真给定了重量、角度、推力和风速变量的炮弹。Wikipedia 上对这个应用有一个有趣介绍,参考 参考资料 获得链接。 开源选项 物理引擎(尤其是实时和低精度的)的一个重要应用是游戏运行时的开发。根据这些软件框架的流行性,有很多开源选项可供选择。本文着重探讨其中的一些开源物理引擎并展示它们的简单应用。 Box2D Box2D 是一个简单却用途广泛的物理引擎。它最初由 Erin Catto 为了在 2006 年召开的 Game Developers Conference 上做物理学演示而设计。Box2D 起初被称为 Box2D Lite,但这个引擎现已被扩展,除了包括连续碰撞检测外,还增强了 API。 Box2D 是用 C++ 写的,其可移植性从它可用于的平台(Adobe? Flash?、 Apple iPhone 和 iPad、Nintendo DS 和 Wii 以及 Google Android)可见一斑。Box2D 为许多流行掌上游戏,包括愤怒的小鸟 和蜡笔物理学,提供了物理机制。 Box2D 提供了支持像圆形或多边形这样的几何形状的刚体仿真。Box2D 可用接头连接不同的形状,甚至可以包括关节马达和滑轮。在 Box2D 内,此引擎在处理碰撞检测和所产生的力学的同时可施加重力和摩擦力。 Box2D 可被定义为一个能提供多种服务的富 API。有了这些服务就得以定义一个由很多物体和属性组成的世界。定义了对象和属性后,接下来就可以以离散时间步长仿真该世界了。这个示例应用程序(基于 Erin Catto 的示例应用程序)研究的是一个立方体投掷到有重力的世界。 Box2D 示例 清单 1 展示了创建

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档