- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
嗨,我正在用Java制作一个体素游戏,在研究我需要学习的所有不同东西时,我注意到很多游戏都使用AABB用于碰撞检测。然后我记得在 Minecraft 中也看到过AABB。但是当我用谷歌搜索AABB是什么时,它只会出现其他人的代码,或者历史书上的某个组织。 Stackoverflow,什么是 AABB?
最佳答案
AABB 代表“Axis-Aligned Bounding Box 。”
这是一种在计算和内存方面相当高效的表示体积的方法,通常用于查看两个对象是否可能接触。
由于它是轴对齐的,因此它不一定非常“适合”您的真实 3D 对象。 AABB 检查通常用作粗略的第一近似,以查看对象是否可能发生碰撞。然后,如果 AABB 检查通过,则会进行更详细的检查。
示例:
想象你的世界是二维的,你把它画在一张方格纸上。你在世界上有一些物体(一个球,一棵树,等等)。要为其中一个对象制作 AABB,请在该对象周围绘制一个矩形,使线条与纸上的网格线平行。
如果你有两个对象的 AABB,你可以做一些非常简单的数学来看看这些 AABB 是否重叠。如果它们不重叠,这两个对象就不可能接触,因此对于碰撞算法来说这是一个简单的早期退出。
这很容易推广到 3D(以及更多维)。
您可能想查看gamedev.stackexchange.com ,也是。
关于collision-detection - 什么是 AABB - 碰撞检测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22512319/
哪个交叉路口测试通常更快?一个与另一个轴对齐的边界框?或者带有三角形的轴对齐边界框。 我假设 AABB-AABB 但我听到了不同的意见。 最佳答案 可以在任何标准 CPU 上使用(最多)六个比较和六个
我有许多对象需要渲染到 HTML5 Canvas 上。我的输入是轴对齐边界框的有序列表。这些盒子经常重叠,但也经常在它们之间留下大面积的空白空间。 我想尽量减少我必须创建的 Canvas 表面区域的数
我有一组动态的 AABB 框,它们的位置和大小不断更新。我可以使用什么结构来获取其中哪些 AABB 框与任意 AABB 框发生碰撞? 最佳答案 使用动态 AABB 树。 Here's some sou
我正在寻找一种简单的算法来检测 aabb 的区域是否与圆弧(由绳索闭合)或饼图(通过圆心闭合)的区域重叠。 我已经找到了这个答案:Intersection of rectangle and circl
我有一个在对象空间中由中心点和半径表示的球体。球体通过变换矩阵变换到世界空间,变换矩阵可能包括缩放、旋转和平移。我需要为世界空间中的球体构建一个轴对齐的边界框,但我不知道该怎么做。 这是我目前的方法,
我希望计算应用了变换矩阵(旋转、缩放、平移等)的 2D 椭圆的轴对齐边界框 (AABB) 类似于此解决方案的内容:Calculating an AABB for a transformed spher
您好,我是 C++ SFML 的新手。我应该绘制一些矩形并在旋转时渲染它们的 AABB,我想检测为它们设置的尺寸是否与另一个旋转的 AABB 矩形相交。这是我用来检测它们的方法。如果它们在旋转,以这种
我需要一个由轴对齐边界框 (AABB) 填充的世界组成的引擎。将执行连续循环,执行以下操作: for box_a in world box_a = do_something(box_a)
我有一个问题,我需要将一个 AABB 分成许多小的 AABB。我需要在每个较小的 AABB 中找到最小值和最大值。 如果我们以这个长方体为例,我们可以看到它被分成了64个更小的长方体。我需要计算所有这
当我的 AABB 物理引擎解析交叉点时,它会找到穿透较小的轴,然后“推出”该轴上的实体。 考虑“向左跳跃”的例子: 如果 velocityX 大于 velocityY,AABB 会将实体推出 Y 轴,
因此,我目前正在通过尝试为我的游戏引擎制作一个简单的物理引擎来重新发明轮子(并学到很多东西)。我一直在网上搜索,试图(但未能)解决我当前的问题。关于这个主题有很多资源,但我发现的资源似乎都不适用于我的
我正在制作一个游戏,其中玩家是一个直立的圆柱体,世界是轴对齐的边界框。鉴于此,我如何检查圆柱体是否与盒子相交? 谢谢 最佳答案 这主要是一个二维问题。 对于每个 AABB,测试圆柱体的垂直尺寸是否与
旋转物体时,围绕腿的 AABB 不会随腿移动。相反,它们相对于物体停留在同一位置,只是简单地增加尺寸以将腿保持在 AABB 中,而不是随腿移动。这是由于这些 AABB 中的每一个都具有相同的位置,即主
更新 再次更改了碰撞代码并为AABB制作了一个组件,现在看来问题仅在于水平碰撞,它没有将物体推到它认为足够的位置但是与Y轴的代码相同所以它不应该成为一个问题。 (它确实检测到水平碰撞分辨率是问题) v
我正在学习PhysicsJS ,我尝试使用 union像这样: // Window bounds var rect1 = Physics.aabb(0, 100, 300, 200); var rec
我正在编写用于在 3D 空间中进行鼠标拾取的代码。到目前为止,我已经开设了 Ray 和 AABB 类(class)。我需要的是 Ray-AABB 相交的函数。我知道如何编写并使其工作,我的问题是哪个类
我在这里看到过这个话题,但它并没有真正帮助我解决问题:(使用 glLoadIdentity() 因为我正在使用 libqglviewer 并且由于一些奇怪的原因如果我使用 glLoadIdentity
我目前正在努力编写一个基于空间分割的系统(用于游戏),我需要能够测试一个圆是否完全包含一个正方形。 为了加分,我应该指出我的系统在 N 维中工作,所以如果你的算法通过循环遍历每个维度并做某事来工作,请
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
我认为扫过意味着确定物体是否会在某个时刻发生碰撞,而不仅仅是它们当前是否正在碰撞,但如果我错了请告诉我。 我有带边界框的对象,它们在轴上对齐。物体的盒子可以有不同的大小,但它们总是矩形的。 我已经尝试
我是一名优秀的程序员,十分优秀!