包围体之AABB、球体的定义+相交测试

包围体是啥?
我们直观觉得碰撞往往是两个多边形相交,但是在计算机中这么算是很复杂的,特别是边很多的物体时
为了减少计算,就需要把几何体用一个简单的体空间包围起来(简单体是指:长方体、球体)
PS:包围体的英文名叫:BV

如图所示:(来自百度图片)

注意:包围体具有低消耗的相交测试的好处同时,也会占用额外的内存(需要存储包围的数据),不过影响不大


在游戏开发中,一般都会对其进行简化

Unity里面也提供了集中包围体的Collider,比如BoxCollider、ShpereCollider等,同时官方也并不推荐你使用MeshCollider

那么详细说一下各种包围体,如图所示:

1.球体
球体是一种很常见的包围体,只需要存储圆心点以及半径
数据定义如下:

public struct Sphere
{
   
    public FPVector2 center; //圆心
    public FP radius; //半径
}

其优点就是计算相交速度非常之快,也不会受到旋转变换的影响
相交测试代码:

//圆心距离是否小于两者半径之和
public static bool<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值