游戏中的碰撞检测算法:从SAT到GJK

合集 · 游戏开发技术合集 (17)

  1. 6:22
    6分钟让你学会2D游戏水波特效
  2. 15:00
    RVO2(即ORCA)动态避障算法---精简版
  3. 11:41
    影子在游戏碰撞检测中的秘密
  4. 2:45
    向量场群体寻路算法(Vector Field Pathfinding,DEMO开源)
  5. 2:08
    《Boids算法》模拟鱼群鸟群(Demo开源)
  6. 2:24
    游戏单位寻路算法:A*算法(A Star)
  7. 2:01
    游戏空间划分技术之一四叉树(Quadtree)
  8. 5:13
    游戏中的碰撞检测算法:从SAT到GJK
  9. 2:33
    游戏空间划分技术之-KD树
  10. 7:21
    从零到一搞懂柏林噪声:数学、代码与自然的平衡
  11. 4:33
    从if-else地狱到逻辑之美:游戏AI行为树(Behavior Tree)
  12. 2:37
    游戏AI行为树(Behavior Tree):代码实战
  13. 3:08
    游戏中的碰撞检测算法:扫描与裁剪(SAP-Sweep And Prune)
  14. 2:12
    三消游戏:消除判定机制与算法流程
  15. 3:49
    贝塞尔曲线(Bézier Curve):用最简单的线性插值,勾勒出虚拟世界的灵魂
  16. 2:58
    为什么游戏里的液体能完美融合?轻松看懂Metaball
  17. 4:19
    游戏地图是怎么"长"出来的?波函数坍缩算法
Description
明明没碰到,为什么判定撞了?为什么角色会卡在墙里“穿模”? 碰撞检测是游戏引擎中最隐秘却又最核心的基石。很多初学者以为碰撞只是简单的坐标重叠,但当物体旋转、加速或者形状变得复杂时,简单的逻辑就会崩塌。
本期视频将带你从零开始,拆解物理引擎处理碰撞的“三部曲”:
01 粗筛阶段:AABB 的局限性 为什么 AABB(轴对齐包围盒)是性能之王?但在处理旋转物体时,它是如何产生“假阳性”误报的?
02 精筛阶段:SAT 分离轴定理
我们将碰撞逻辑比作“手电筒扫描”。通过点积(Dot Product)数学,看计算机如何通过投影的缝隙,精准判定凸多边形的交集。
03 终极方案:GJK 算法与闵可夫斯基差
不再纠结于边和面,我们将两个形状的碰撞,简化为“一个点(原点)是否在一段空间(闵可夫斯基差)内”。这是现代物理引擎处理复杂凸包的通用绝招。