-1

我的老板给了我这个源代码,让我添加刚体物理模拟支持。基本上,这个源代码模拟了一个大场景,里面有很多建筑物和交通。我检查了代码的碰撞部分,它只是使用一个边界框来检查碰撞,所以这是我的问题:

  1. 场景很大,有 500 多座建筑物,如果我想添加刚体物理,是否必须添加每个边界框来 ode 静态对象?这么新的物体,比如一个盒子,它可以与建筑物互动吗?

  2. 添加500边界框到ode,速度呢?还是我应该使用一些技巧来做到这一点?

  3. 如果我想保留旧的碰撞材料(例如汽车)对建筑物进行射线测试并保留该结果怎么办?如果可以的话,这个建筑也加到ode里了,是不是没必要?因为碰撞盒已经在ode里了,还是应该用ode ray test而不是internal ray check?我的意思是问题基本上是处理这两种碰撞的有效方法是什么?

4

1 回答 1

0

是的,您需要将每个建筑物的边界框(或网格)添加到 ODE。通常,您将使用包含所有建筑物的 QuadTree 空间或 Hash 空间。建筑物不需要实体,除非您希望它们实际移动。

你说的是“旧的碰撞东西”——现有源中是否已经有一些碰撞代码?

ODE 可以进行射线测试。如果您想对所有测试使用相同的方法,您可以更改代码以使用 ODE 射线测试,假设这就是您的问题所在。

ODE 根本不需要生成碰撞。如果您已经有良好的碰撞检测,并且只想要刚体模拟,则为每个帧生成正确的 dJointContact 关节以表示汽车与其环境之间的交互,并仅模拟(步骤)汽车的车身/ s,基于这些联系人。

于 2012-03-17T05:04:39.210 回答