Flash物理引擎 王成

2,944 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,944
On SlideShare
0
From Embeds
0
Number of Embeds
142
Actions
Shares
0
Downloads
74
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Flash物理引擎 王成

  1. 1. 什么是物理引擎? 主讲人 : 盛大创新院 王成
  2. 2. 一个能模拟物理世界而又不和具体的应用场景相关的框架。 控制的对象:刚体或柔体 手段:平移、旋转、碰撞和连接 定义
  3. 3. 物理引擎都能做哪些事情
  4. 4. 物理引擎都做出了哪些游戏? 1 、切割类游戏 2 、探索解谜类游戏 3 、道具摆放类游戏 4 、绘制类游戏 5 、反弹类游戏 6 、平衡类游戏
  5. 5. 主流物理引擎类游戏 切割类游戏 1 、智慧齿轮之刃 2 Mechanism II 3 、冰破维京船 Ice Breaker
  6. 6. 主流物理引擎类游戏 探索解谜类游戏
  7. 7. 主流物理引擎类游戏 道具摆放类游戏
  8. 8. 主流物理引擎类游戏 绘制类游戏
  9. 9. 主流物理引擎类游戏 反弹类游戏 1 、点火 Pyroll 2 、炮打笑面人 Roly-Poly Cannon
  10. 10. 主流物理引擎类游戏 平衡类游戏
  11. 11. 物理游戏对物理引擎的使用 1 、世界 2 、弹力 3 、摩擦力 4 、重力 5 、连接关系
  12. 12. 目前物理引擎类游戏存在的问题 都是单机游戏… 不成系列…
  13. 13. 主流的 Flash 物理引擎都有 哪些 ?
  14. 14. 主流物理引擎 <ul><li>2D Flash 物理引擎 </li></ul><ul><ul><li>Box2DFlash 2.10alpha </li></ul></ul><ul><ul><li>APE 0.5alpha </li></ul></ul><ul><ul><li>Flade </li></ul></ul><ul><ul><li>FOAM 0.1alpha </li></ul></ul><ul><ul><li>Fisix 0.5alpha </li></ul></ul><ul><ul><li>Motor 2release </li></ul></ul><ul><ul><li>Ffilmation 1.3.3 </li></ul></ul><ul><li>3D Flash 物理引擎 </li></ul><ul><ul><li>WOW </li></ul></ul><ul><ul><li>JIGLib </li></ul></ul>
  15. 15. Box2DFlash & APE 比较 <ul><li>资源消耗 </li></ul><ul><ul><li>机器人 资源 消耗比较 </li></ul></ul>测试环境: Core2 Duo 3G , 2G 内存 , StageSize : 640*480 APE_24 APE_30 Box2D_24 Box2D_30
  16. 16. Box2DFlash & APE 比较 <ul><li>资源消耗 </li></ul><ul><ul><li>多刚体资源 消耗比较 </li></ul></ul>测试环境: Core2 Duo 3G , 2G 内存 StageSize : 640*480 刚体数量: 50 矩形, 50 圆 APE1 APE2 Box2D100
  17. 17. Box2DFlash & APE 比较 <ul><li>碰撞检测流程 </li></ul><ul><ul><li>Box2DFlash: </li></ul></ul><ul><ul><ul><li>BroadPhase :初测阶段,构建 pairManager 。 </li></ul></ul></ul><ul><ul><ul><li>NarrowPhase :精测阶段,根据 pairManager 的分布情况构建碰撞对象岛 (Island) ,之后对岛进行约束分析 , 做出碰撞响应。 </li></ul></ul></ul><ul><ul><li>APE </li></ul></ul><ul><ul><ul><li>没有初测阶段的前期处理,直接对 Group 进行碰撞检测。 </li></ul></ul></ul>
  18. 18. Box2DFlash & APE 比较 <ul><li>碰撞检测 </li></ul><ul><li>Box2dflash : Box2d 使用 CCD( 连续碰撞检测 ) 来防止静态物体被穿透。 </li></ul><ul><li>对于动态物体,引擎会查找扫描中的新碰撞,并为这些碰撞计算碰撞时间 (TOI) ,物体会先被移动到它的第一个 TOI ,然后继续模拟,直到时间步结束。 </li></ul><ul><li>APE : 速度快会穿透, constraintCollisionCycles 、 multisample 多次模拟 . </li></ul>
  19. 19. Box2DFlash & APE 比较 <ul><li>碰撞响应 </li></ul><ul><li>Box2dflash : Baumgarte 算法,算法复杂度最低,存在稳定性的问题。 </li></ul><ul><li>APE : 一锤子买卖,没有积分处理,效果不理想。 </li></ul>
  20. 20. Box2DFlash & APE 比较 <ul><li>功能比较 </li></ul><ul><ul><li>表 一 : 功能比较表 </li></ul></ul>Box2DFlash APE 多场景 支持 不支持 模型 模型多、功能强大 有基本模型,复杂模型需要自己实现 渲染 无渲染模型 有渲染模型 碰撞精确度 比较精确 有时存在视觉 bug 单位 MKS Pixel
  21. 21. Ffilmation <ul><li>1 、设计理念 </li></ul><ul><ul><li>不是纯粹的物理引擎,而是针对 2.5D 游戏的 lib </li></ul></ul><ul><li>2 、优点 </li></ul><ul><ul><li>功能强大:以 XML 构建地图和场景,包含灯光和投影 </li></ul></ul><ul><li>3 、缺陷 </li></ul><ul><ul><li>缺乏网络交互模块 </li></ul></ul><ul><ul><li>性能消耗严重 </li></ul></ul><ul><ul><li>存在破面 </li></ul></ul>Ffilmation_example1_light Ffilmation_example2 Ffilmation_example3_4lights
  22. 22. 如何对物理引擎进行扩展? <ul><li>形状扩展 </li></ul><ul><ul><li>建立自己的几何模型 </li></ul></ul><ul><ul><li>处理新增的几何模型和旧有的几何模型之间的碰撞检测关系 </li></ul></ul><ul><li>连接扩展 </li></ul><ul><ul><li>根据自己的需求重新实现刚体间速度和位置的约束 </li></ul></ul>
  23. 23. 我们该如何使用? <ul><li>一、如果需求比较复杂,需要使用较多复杂的物理模型则选用 Box2D 较好,或者对 Box2D 进行扩展和改进;如果项目较小,只需要使用一些常规的简单物理模型,则直接使用 APE ,或者对 APE 进行扩展。 </li></ul><ul><li>二、如考虑向其他语言或平台的延伸以及和 GIS 平台的对接,显然 Box2D 更具优势。 </li></ul><ul><li>三、 Ffilmation 怎么办 ? 关注、观望 或者 改造! </li></ul><ul><li>四、做联机的物理游戏。 </li></ul>
  24. 24. THANK YOU! Q&A

×