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