unity底层运行机制_深入理解Unity的碰撞检测机制

本文深入探讨Unity的碰撞检测机制,介绍如何通过BSP、BHV、八叉树和四叉树等空间划分技术优化大量物体间的碰撞检测。针对物体位移导致的树结构调整,以及动态碰撞网格可能导致的碰撞失效问题,提出了相应的解决方案,并讨论了连续碰撞检测的算法和应用。
摘要由CSDN通过智能技术生成

unity的检测流程

碰撞检测,就是检测两个物体是否相交,如果物体非常规则,比如球体,直接检测圆心距离是否小于半径和即可,计算量十分小,但是,如果物体不规则,比如一个角色,进行十分细致的碰撞检测就会变的十分困难,这时候,我们一般会用简单几何体去逼近复杂网格

image.png

如上图所示,我用4个圆去逼近一个多边形,注意,下层圆圆心位于根圆到顶点连线上,且圆心位于上层圆边上的,类比到3d空间也是如此,可以用球体去趋近网格,这里需要注意,凹多边形的逼近是难计算的,所以内部会将其拆分成多个凸多边形

image.png

现在,假如有两个物体,那么,我们只需要检测这两个物体是否相交即可,如果有3个物体a,b,c ,那么,我们要比较ab ac bc,如果有四个物体abcd,我们要比较ab ac ad bc bd cd,可见,有n个物体,我们要比较(n-1)+(n-2)……+(1)次,

如果物体相当多,那么比较次数也会及其可怕。

为了解决这个问题,unity里使用了空间划分技术,目前主流的划分技术有BSP,BHV,八叉树,四叉树

这几种算法都用到了树结构,下面分别简单介绍一下

BSP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值