Sem*_*cus 42 collision-detection aabb
嗨,我正在用Java制作体素游戏,在研究我需要学习的所有不同的东西时,我注意到很多游戏都使用AABB进行碰撞检测.然后我记得在Minecraft中也看到了AABB.但是,当我谷歌AABB是什么时,它只提出了其他人的代码,或者历史书中的某些组织.Stackoverflow,什么是AABB?
jwd*_*jwd 46
AABB代表" Axis-Aligned Bounding Box".
它是一种相当计算和内存效率的表示卷的方式,通常用于查看两个对象是否可能正在触摸.
由于它是轴对齐的,因此它不一定非常适合您的真实3D对象.AABB检查通常用作粗略的第一近似值,以查看对象是否可能发生碰撞.然后,如果AABB检查通过,则进行更详细的检查.
例:
想象一下,你的世界是2D,你可以在一张方格纸上画它.你有一些世界上的物体(球,树,等等).要为其中一个对象创建AABB,可以在对象周围绘制一个矩形,使线条与纸张上的网格线平行.
如果您有两个对象的AABB,您可以做一些非常简单的数学运算来查看这些AABB是否重叠.如果它们不重叠,那么这两个对象可能无法触及,因此对于碰撞算法来说,这是一个简单的早期.
这很容易推广到3D(和更多Ds).
您也可以查看gamedev.stackexchange.com.
轴对齐边界框
基本上,它是可以完全包含形状的最小的长方体,通常由一对3d坐标定义。
检查两个AABB之间的碰撞是非常快的,因为您需要做的就是检查拐角处X,Y和Z值的范围。
| 归档时间: |
|
| 查看次数: |
38372 次 |
| 最近记录: |