AABB(axis-aligned bounding box) - CSDN博客
文章推薦指數: 80 %
在游戏中,为了简化物体之间的碰撞检测运算,通常会对物体创建一个规则的几何外形将其包围。
其中,AABB(axis-aligned bounding box)包围盒被称为轴对其 ...
AABB(axis-alignedboundingbox)
KenneySH
于 2016-03-1912:26:16 发布
11670
收藏
13
分类专栏:
碰撞检测
碰撞检测
专栏收录该内容
12篇文章
0订阅
订阅专栏
1.AABB包围盒
在游戏中,为了简化物体之间的碰撞检测运算,通常会对物体创建一个规则的几何外形将其包围。
其中,AABB(axis-aligned bounding box)包围盒被称为轴对其包围盒。
二维场景中的AABB包围盒具备特点:(注:由于Cocos2d-x是基于Opengl ES的,所以下图中的所有坐标系均采用右手直角坐标系)
(1) 表现形式为四边形,即用四边形包围物体。
(2) 四边形的每一条边,都会与坐标系的轴垂直。
如图 1-1 所示:
图1-1
三维场景中的AABB包围盒特点:
(1) 表现形式为六面体。
(2) 六面体中的每条边都平行于一个坐标平面。
如图 1-2 所示:
图 1-2(图片来源百度)
在图1-2中,为了更明显的展示AABB包围盒的特点,在最右侧展示了一个OBB(Oriented Bounding Box)包围盒,也称作有向包围盒。
可以看出,AABB包围盒与OBB包围盒的最直接的区别就是,AABB包围盒是不可以旋转的,而OBB包围盒是可以旋转的,也就是有向的。
2.二维场景中的AABB碰撞检测原理
首先来看一张二维场景中的物体碰撞图:
图 2-1
在图 2-1中,分别做物体A与物体B在X,Y轴方向的投影,物体A的Y轴方向最大点坐标为Y1,最小点坐标Y2,X轴方向最小点坐标X1,最大点坐标X2,物体B同理。
图中红色区域为物体A与物体B投影的重叠部分。
可以看出,AABB碰撞检测具有如下规则:
物体A与物体B分别沿两个坐标轴做投影,只有在两个坐标轴都发生重叠的情况下,两个物体才意味着发生了碰撞。
所以,在程序中做二维游戏的AABB碰撞检测时,只需验证物体A与物体B是否满足如下条件:
(1)物体A的Y轴方向最小值大于物体B的Y轴方向最大值;
(2)物体A的X轴方向最小值大于物体B的X轴方向最大值;
(3)物体B的Y轴方向最小值大于物体A的Y轴方向最大值;
(4)物体B的X轴方向最小值大于物体A的X轴方向最大值;
若满足上述条件,则证明物体A与物体B并未发生重合,反之,则证明物体A与物体B重合。
3.三维场景中的AABB碰撞检测原理
首先,再来看一下图2-1中的二维物体A和物体B的包围盒,可以发现实际上判断物体A与物体B是否发生重合只需要知道两个信息:
(1) 物体A的最小点的信息,即图2-1中A的左下角点;以及物体A的最大点的信息,即图2-1中A的右上角点。
(2) 物体B的最小点的信息,物体B的最大点的信息。
也就是说在二维场景的碰撞检测中,每个物体的顶点坐标信息都可以由两个坐标来确定,即两个坐标就可以标识一个物体了,所以两个物体的碰撞检测只需要获得到四个点坐标就可以了。
之前在图1-2中已经看到,三维场景中物体的AABB包围盒是一个六面体,其坐标系对于二维坐标系来讲只是多了一个Z轴,所以实际上在三维场景中物体的AABB碰撞检测依然可以采用四个点信息的判定来实现。
即从物体A的八个顶点与物体B的八个顶点分别选出两个最大与最小的顶点进行对比。
三维物体的AABB包围盒的八个顶点依旧可以用两个顶点来标识,如图 3-1 所示:
图3-1
只要确定了图中黑色点部分的坐标,就可以确定八个顶点的全部信息了。
KenneySH
关注
关注
9
点赞
踩
1
评论
13
收藏
扫一扫,分享内容
点击复制链接
专栏目录
【光线追踪系列十】光追加速结构(BVH树)
qq_35312463的博客
09-05
2734
本文主要参照RayTracing:TheNextWeek,其中只是主要精炼光追相关理论,具体实现可参照原文。
经过之前几部分的光追实现,我们大致可以实现了光追的效果,但其中有一个致命的bug就是:慢!!!本部分我们就来解决这个问题。
首先我们分析下:射线和物体的相交检测,是光线追踪器的主要时间瓶颈,目前时间复杂度是线性的。
有两种方法可以将时间复杂度降低到对数级别:一是空间划分,二是物体划分。
本节将用BVH实现物体划分,对当前的项目进行加速。
一、层次包围体BVH
Boundingvolume
AABB包围盒详解
m0_37329302的博客
05-15
5363
AABB盒,一个3D的AABB就是一个简单的六面体,每一边都平行于一个坐标平面,矩形边界框不一定都是立方体,它的长、宽、高可以彼此不同。
AABB的重要性质:
Ymin
Zmin
特别重要的两个顶点为:Pmin=[XminYminZmin],Pmax=[XmaxYmaxZmax].
先介绍AABB的表达方法,AABB内的点满足以下条
评论 1
您还未登录,请先
登录
后发表或查看评论
碰撞检测之AABB包围盒
weixin_43022263的博客
09-12
4762
1.包围盒描述
包围盒算法是一种求解离散点集最优包围空间的方法。
基本思想是用体积稍大且特性简单的几何体(称为包围盒)来近似地代替复杂的几何对象。
最常见的包围盒算法有AABB包围盒(Axis-alignedboundingbox),包围球(Sphere),方向包围盒OBB(Orientedboundingbox)以及固定方向凸包FDH(Fixeddirectionshulls或k-DOP)。
2、AABB包围盒
AABB包围盒就是采用一个长方体将物体包裹起来,进行两个物体的相交性检测时仅检
AABB和OBB包围盒简介
热门推荐
痞子龙3D编程
03-25
2万+
一、AABB立方体边界框检测
用球体去近似地代表物体运算量很小,但在游戏中的大多数物体是方的或者长条形的,应该用方盒来代表物体。
另一种常见的检测模型是立方体边界框,如图10-31展示了一个AABB检测盒和它里面的物体。
坐标轴平行(Axially-aligned)不仅指盒体与世界坐标轴平行,同时也指盒体的每个面都和一条坐标轴垂直,这样一个基本信息就能减少转换盒体时操作的次数。
AABB技术在当今
Ray-AABB问题:判断线段是否相交于轴对齐边界框(AxiallyAlignedBoundingBox,AABB)
Liber-coder的博客
06-24
694
Ray-AABB问题:判断线段是否相交于轴对齐边界框(AxiallyAlignedBoundingBox,AABB)
本文介绍了slab算法的实现,从一个简单实现开始,逐步优化slab算法,算法加速和并进行边界情况处理。
3d机器学习open3d学习教程3--点云2
qq_52095705的博客
01-18
3487
前言
接着上一节点云1
本节数据地址:链接:https://pan.baidu.com/s/1O4s8tFOvExhuKMl2OCv4Kg
提取码:82u1
1.点云裁剪
先上代码
importopen3daso3d
pcd=o3d.io.read_point_cloud("./test_data/Crop/fragment.ply")
val=o3d.visualization.read_selection_polygon_volume("./test_data/Crop/cropped.json
AxisAlignedBox矩形边界框
无敌的专栏
10-24
5392
矩形边界框
另一种常见的用来界定物体的几何图元是矩形边界框,矩形边界框可以是与轴对齐的或是任意方向的。
轴对齐矩形边界框有一个限制,就是它的边必须垂直于坐标轴。
缩写AABB常用来表示axiallyalignedboundingbox(轴对齐矩形边界框),OBB用来表示orientedboundingbox(方向矩形边界框)。
轴对齐矩形边界框不仅容易创建,而且易于使用。
一个3D的AAB
Open3d-Pointcloud(Open3D点云)
一只大鸽子的博客
04-12
344
Open3D点云基础教程。
翻译整理官网文档。
Open3d之计算点云边界框
ancy的博客
01-04
2914
核心函数
与Open3D中的其他几何类型一样,PointCloud几何类型具有边界框。
当前,Open3D实现了AxisAlignedBoundingBox和OrientedBoundingBox,它们也可用于裁剪几何。
AxisAlignedBoundingBox:返回几何的轴对齐边界框。
与Opencv中的cv2.boundingRect()相似
OrientedBoundingBox:返回几何体的定向边界框。
与Opencv中的cv2.minAreaRect()相似
代码展示
#-*-c..
AABB包围盒和OBB包围盒区别
baidu_38621657的博客
02-11
2148
1.问题
图形学中经常出现AABB包围盒、OBB包围盒、外接球等,这些概念初次接触时有点容易混淆;
2.概念
AABB:Axis-AlignedBoundingBox,轴对齐包围盒;
OBB:OrientedBoundingBox,有向包围盒;
包围球:外接球;
OBB比包围球和AABB更加逼近物体,能显著减少包围体的个数
3.其他
类似的概念还有凸包、最小外接轮廓等,有兴趣的可以查阅相关资料。
...
open3d.geometry.PointCloud有关函数(笔记)
最新发布
qq_42843081的博客
05-06
435
open3d自学笔记
AABB与OOB包围盒子
微小的鱼的博客
06-30
843
以前做过AABB这个简单没什么好说的主要是OBB比较复杂,需要数学功底更厚!想不到我们还可以基于OBB做LOD这个我第一次听说很不理解不过现在也大致了解了
Bounds(包围盒)详解-【AABB包围盒、Sphere包围球、OBB方向包围盒、FDH固定方向凸包】
随意的风的专栏
02-22
1万+
====================================================||
欢迎讨论技术的可以相互加微信:windgs(请备注csdn+xx职业)
====================================================||
目录
目录
欢迎讨论技术的可以相互加微信:windgs(请备注csdn...
aabb(第一讲)
w_45678910的博客
10-18
273
题目描述
输出所有形如aabb的4位完全平方数(即前两位数字相等,后两位数字也相等)。
输入
本题不需要输入
输出
输出aabb形式数字。
样例输入
样例输出
7744
#include
js28
创建一个实例AxisAlignedBoundingBox的最小值和最大值点沿着x,y和z轴。
名字
类型
默认的
描
二维AABBbox碰撞检测和优化
阿豪
11-22
57
原文链接:
二维AABBbox碰撞检测和优化
上一...
Bounds(包围盒)概述与AABB包围盒应用
SpringD
04-23
1万+
包围盒概述,Unity3d包围盒拓展方法,Unity3d包围盒应用
3D环境中碰撞检测
Philm_iOS的博客
07-23
4806
Axis-alignedboundingboxes(AABB包围盒)原文地址
在游戏中,为了简化物体之间的碰撞检测运算,通常会对物体创建一个规则的几何外形将其包围。
其中,AABB(axis-alignedboundingbox)包围盒被称为轴对齐包围盒。
与2D碰撞检测一样,轴对齐包围盒是判断两个物体是否重叠的最快算法,物体被包裹在一个非旋转的(因此轴对齐的)盒中,并检查这些盒在三维坐...
❤️UNITY实战进阶-三维AABB包围盒详解-6
欲望如海水,越喝越渴。
10-08
1396
前言
碰撞检测问题在虚拟现实、计算机辅助设计与制造、游戏、机器人等方面都有着广泛的应用,而包围盒算法是进行碰撞检测的重要方法之一。
而常见的包围盒有:
AABB包围盒(Axis-alignedboundingbox)
包围球(Sphere)
OBB包围盒(Orientedboundingbox)
凸包包围盒(ConvexHull)
...
在Unity中的Collider包含:
介绍
在游戏中,为了简化物体之间的碰...
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022CSDN
皮肤主题:大白
设计师:CSDN官方博客
返回首页
KenneySH
CSDN认证博客专家
CSDN认证企业博客
码龄8年
暂无认证
129
原创
9万+
周排名
153万+
总排名
11万+
访问
等级
1966
积分
16
粉丝
32
获赞
4
评论
84
收藏
私信
关注
热门文章
在Unity3D中使用全局变量
20738
AABB(axis-alignedboundingbox)
11667
OBB碰撞检测算法
9327
模型简化
6828
OpenGL入门——OpenGL分析调试工具gDEbugger
5914
分类专栏
OpenGL
30篇
DirectX
计算机图形
3篇
碰撞检测
12篇
内存管理
性能优化
C/C++/C#
36篇
其他
8篇
Unity3D
4篇
最新评论
在Unity3D中使用全局变量
与:
请问大佬,我想调用另一个脚本中update里面的量该怎么办呢?
在Unity3D中使用全局变量
Cznwtl:
厉害了博主!!完美解决我的问题
AABB(axis-alignedboundingbox)
Alxes_七局:
最后这个知道两个顶点位置,怎么确定的8个顶点全部信息?求算法思路
在Unity3D中使用全局变量
崔小妹儿Jessica:
没看懂啊
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
const对象
linuxmongo安装调试常见坑
linuxredis安装调试常见坑
2018年23篇
2016年72篇
2012年54篇
2011年19篇
目录
目录
分类专栏
OpenGL
30篇
DirectX
计算机图形
3篇
碰撞检测
12篇
内存管理
性能优化
C/C++/C#
36篇
其他
8篇
Unity3D
4篇
目录
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
0
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值
延伸文章資訊
- 1Bounding volume - Wikipedia
In computer graphics and computational geometry, a bounding volume for a set of objects is a clos...
- 2AABB(axis-aligned bounding box) - CSDN博客
在游戏中,为了简化物体之间的碰撞检测运算,通常会对物体创建一个规则的几何外形将其包围。 其中,AABB(axis-aligned bounding box)包围盒被称为轴对其 ...
- 33D collision detection - Game development - MDN Web Docs
As with 2D collision detection, axis-aligned bounding boxes (AABB) are the quickest algorithm to ...
- 4Minimum bounding box - Wikipedia
Arbitrarily oriented minimum bounding box
- 5An object within an Axis-Aligned Bounding Box (AABB).
... The novelty in Spatial Locks stems from the merging of two well-known concepts, namely Spatia...