- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经阅读了一些关于它的内容,我想用它来做一些实现。但我有几个疑问。 de AABB 的问题是对象必须是轴对齐的,否则你必须每帧重新计算 bbox,对吗?重新计算成本高吗?还有精度怎么样,能不能做个碰撞树分割bbox?它如何与 AABB 一起使用?
OBB 是面向对象旋转的,对吧?您必须在游戏初始化之前构建树。我读了它更难实现并且有点贵,但我在精度上获得了很多。但是如果对象在游戏中旋转,bbox 会不会“自动”重新计算它的旋转呢?
哪一种最常用于游戏,为什么?
先感谢您 :)
最佳答案
AABB、OBB、球体、胶囊……之间的选择取决于您正在运行的模拟类型以及您的约束(通常是实时应用程序)是什么。
您需要评估利弊并做出相应的选择。例如,使用 AABB 的测试非常快,但您需要在对象旋转时重新计算 AABB。但是,如果您正在处理非常复杂的对象并处理 BVH ,更新 AABB 树非常快,因为您只需要重新计算(“从头开始”)底部的 AABB,较高的 AABB 是从子 AABB 构建的。使用 OBB,测试成本更高,但如果您正在处理刚性对象,则无需重新计算 OBB。
如果您决定使用可变形对象,AABB 树(或球体树)绝对是一个更好的主意,因为无论如何您的树都需要更新。
问题是:更新 AABB 树或与 OBB 重叠测试产生的开销会更昂贵吗?所有这一切都取决于您的模拟:对象复杂性、每秒平均 CD 测试等……您可以找到一些基于不同方法(BVH、网格...)的不同 CD 库的基准,具有不同的形状,针对特定问题进行测试。 Here是一个您可能会觉得有趣的示例。
关于实现,由于所有这些都是多年前研究过并在许多库中实现的,因此您应该不会遇到任何麻烦。你可以看看 Christer Ericson 的实时碰撞检测,所有这些问题都得到了非常清楚的回答和解释。
您还可以使用不同形状之间的混合,例如一个用于宽相,另一个用于窄相(一旦你到达叶子),但你可能不需要这样的东西。
关于collision-detection - 使用 AABB 或 OBB 进行碰撞检测的疑惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7548153/
我有以下变量: string str1 = "1"; string str2 = "asd"; string str3 = "3.5"; string str4 = "a"; 现在我需要找到每个字符串
这个问题在这里已经有了答案: Is Java "pass-by-reference" or "pass-by-value"? (92 个回答) 关闭 8 年前。 public class progr
我对这种行为有些疑惑。谁能解释一下 void Decrement(int* x){ *x--; //using this line, the output is 5
您好 StackOverflow 用户(或 Stackoverflowers?): 我正在通过编写 WPF 代码来学习。我阅读了几篇文章/看到了几个截屏视频,并且来自 WEB 开发背景,我启动了 VS
在阅读 HTML5 IndexedDB Specification 时我对它的异步请求模型有些怀疑。查看 request api example 时, open 方法用于启动异步请求。 var req
有几个问题,首先是这个方法,它将 int[] 转换为 byte[]: public static byte[] intToByte(int[] input){ ByteBuffer byteB
我是一名优秀的程序员,十分优秀!