本文介绍: – 物理引擎的用途: – 碰撞检测 – 解决碰撞、其它约束限制 – 更新所有物体的世界坐标(world Transform)
Collision Detection
- 碰撞检测:东西是否撞上了
碰撞检测的两个阶段 | 方法 | |
---|---|---|
粗筛 | 1. 直接用AABB找到相交的刚体
2. 找到潜在的重叠刚体对 |
1. BVH Tree
2. Sort and Sweep |
细筛 | 1. 进一步检测重叠
2. 得到相交信息 1. 相交点 2. 相交法线 3. 穿透深度 |
1. Basic Shape Intersection Test
2. MinkowskiDifference-based Methods 3. Separating Axis Theorem |
- Basic Shape Intersection Test
圆与圆碰撞 | 圆与胶囊体碰撞 | 胶囊体与胶囊体碰撞 |
---|---|---|
- MinkowskiDifference-based Methods
碰撞 | 未碰撞 |
---|---|
- Separating Axis Theorem(SAT)
- 一定能找到一根轴,分离两个凸包
碰撞 | 不碰撞 | |
---|---|---|
2D 情况 | ||
3D 情况 |
- 连续碰撞检测 Continuous Collision Detection(CCD)
Collision Resolution
- 如何处理碰撞?分离
方法 | 具体方法 | |
---|---|---|
加入Penalty Force分离 | 加一个反向的惩罚力 | |
转为约束问题 | 解决速度约束 | 不断尝试给一个冲量 |
解决位置约束 | 见 ragdoll – joint constraints |
应用与实践
Character controller
- 反物理的系统:摩擦力无穷大
- 用 Kinematic Actor
- 不受物理规则影响
- 推动别的物体
- 形状
- 双层胶囊
- Sweep test
- 与物体碰撞后,往旁边平移
- Stepping 爬楼梯
- 尝试往上提,再往前走
Ragdoll
- 人体的 joint 约束(joint constraints)
Hinge
铰链 |
Ball-and-socket 球窝 | Pivot 枢轴 | Saddle
鞍状 |
Condyloid
髁状突 |
Gliding
滑行 |
原文地址:https://blog.csdn.net/iteapoy/article/details/135620516
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_57334.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。