游戏引擎之物理碰撞检测原理(AABB算法)

在游戏或者仿真虚拟环境中需要模拟现实中的物理碰撞,由于模型边缘复杂,在精确度不高的游戏中经常把它处理为正方体盒子,然后再检测物理碰撞,常用的算法为AABB碰撞盒算法

先遍历模型所有顶点遍历所有顶点,然后再不同方向上分别找出最大最小值来构成AABB盒子的最大最小顶点,模型就被处理成如下图的粗模型:

下面给出一个简化的原理图

如果物品没有发生碰撞的时候X轴上的顺序为X1,X2,X3,X4,但是X3和X2发生了交换,说明在X轴方向上面,物体的投影重合

同理在Y1,Y2,Y3,Y4上,Y2和Y3发生了交换,说明在Y轴方向上面,物体的投影重合

只有当物体在X轴和Y轴上发生投影重合的时候,说明两个图形有相交的部分

同理,在三维空间下,三个轴都发生投影重合的时候,说明两个盒子发生了穿透

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值