嗨,我正在制作一个体素游戏Java在研究我需要学习的所有不同东西时,我注意到很多游戏都使用AABB用于碰撞检测。然后我记得看到AABB在《我的世界》中也有。但是当我用谷歌搜索什么时AABB也就是说,它只是提出了其他人的代码,或者历史书上的某个组织。 Stackoverflow,什么是AABB?
AABB 代表“轴对齐边界框 http://en.wikipedia.org/wiki/Axis-aligned_bounding_box#Axis-aligned_minimum_bounding_box."
这是一种在计算和内存上相当高效的表示体积的方法,通常用于查看两个对象是否可能接触。
由于它是轴对齐的,因此它不一定非常“适合”您的真实 3D 对象。 AABB 检查通常用作粗略的第一近似,以查看对象是否可能发生碰撞。然后,如果 AABB 检查通过,则会进行更详细的检查。
Example:
想象你的世界是二维的,你把它画在一张方格纸上。
你在世界上有一些物体(一个球,一棵树,等等)。要为其中一个对象制作 AABB,请在该对象周围画一个矩形,使线条与纸上的网格线平行。
如果你有两个物体的 AABB,你可以做一些非常简单的数学来看看这些 AABB 是否重叠。如果它们不重叠,那么这两个对象就不可能接触,因此对于碰撞算法来说这是一个简单的早期退出。
这很容易推广到 3D(以及更多维)。
您可能想查看gamedev.stackexchange.com https://gamedev.stackexchange.com/, too.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)