ORCA(动态避障)算法

  • 简介

ORCA算法会把移动的物体抽象成一个圆,圆心表示实体位置,半径表示实体大小 。ORCA算法的一个特点就是会考虑未来一段时间内的情况,通常是一秒或两秒,这个值可以根据移动物体的最大速度来修改。

算法认为,避障的责任是相互的,不是只有一方改变速度,可能在未来一段时间内发生碰撞的双方都会改变速度来避障。也就是说双方预测会发生碰撞时,双方都会采取行动来修正速度。

  • 在游戏开发中的应用:

在我们用AStar或NavMesh计算出路径之后,在沿着路径移动过程中,能够实时地避开其他的移动角色和障碍物。使用方式:在移动过程中,将角色当前的速度向量取出来,给到ORCA,由ORCA计算出新的速度向量,再将新的速度向量应用到角色上面。

  • 碰撞锥(碰撞区域)

 

上图中假设B物体处于静止状态,A物体沿着向量v1和v2移动,刚好能和B擦肩而过,不会发生碰撞;若V1和V2的夹角再小一点的话就一定会发生碰撞。此时会产生碰撞区域:  

红线画出来的锥形区域就是A相对于B的碰撞区

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值