嗨,我正在用制作一个体素游戏,在研究我需要学习的所有不同的东西时,我注意到很多游戏都使用AABB进行碰撞检测。然后我还记得在“我的世界”中也看到过AABB。但是当我搜索AABB是什么时,它只提供其他人的代码,或者某个组织的历史书。Stackoverflow,AABB是什么?
发布于 2014-03-19 16:35:23
AABB代表“轴向包围盒”。
这是一种计算效率和内存效率相当高的表示卷的方法,通常用于查看两个对象是否有接触。
因为它是轴对齐,它不一定“适合”你真正的三维物体非常好。AABB检查通常被用作粗略的第一近似,以查看物体是否可能发生碰撞。然后,如果AABB检查通过,将进行更详细的检查。
示例:
想象一下你的世界是2D的,你把它画在一张图表纸上。你在这个世界上有一些东西(一个球,一棵树,什么的)。要为其中一个对象创建一个AABB,您可以在对象周围画一个矩形,使您的线条与纸上的网格线平行。
如果有两个对象的AABB,您可以做一些非常简单的计算,看看这些AABB是否重叠。如果它们不重叠,那么这两个物体就不可能是接触的,所以这对于你的碰撞算法来说是一个简单的早期解决方案。
这可以很容易地推广到3D (和更多的Ds)。
您可能也需要查看gamedev.stackexchange.com。
发布于 2014-03-19 16:35:08
轴向包围盒
基本上,它是最小的长方体,可以完全包含形状,通常由一对3d坐标定义。
检查两个AABB之间的碰撞非常快,因为您所需要做的就是检查拐角的X、Y和Z值的范围。
https://stackoverflow.com/questions/22512319
复制相似问题