两种网格间斜面生成的碰撞检测技术

时间:2011-05-18 13:15:13

标签: c++ collision-detection physics bulletphysics

我在game SEmath SE都提出了这个问题,但回应并不那么令人鼓舞。所以我再次重新考虑,更多的是扭曲。

我有一个由mesh定义的地形。并且在整个地形中分布着许多其他多边形面,它们可以位于地形的上方或下方或切割地形。您可以将这些面孔视为平台。

下面的截图应该澄清我的意思。尽管看起来很光滑,但所有网格实际上都是由小元素(数字> 10k)组合在一起组成,给出了平滑的错误外观。显而易见的断开区域是平台。

enter image description here

我的问题是,如何生成平台与其他平台/地形之间连接的平面?以下是生成一系列倾斜平面的规则:

  1. 他们可以向上或向下,取决于哪个方向会让他们首先击中地形/邻近平台。
  2. 平面生成规则是,平面将从平台的边缘开始,并相对于z轴向上/向下移动45度一定长度,然后它将相对于z轴移动0度另一个长度,并重复。所以它将是一系列零碎的飞机,直到在飞机的某些点上,障碍物被击中。
  3. 该算法应专注于平面生成和平面生成;我不希望它被绑定到任何渲染器(例如,opengl和诸如此类的东西),我可以自己渲染它。
  4. 简而言之,我想生成一组“平面”,实际上就像一段楼梯或一块瓦楞纸,从空间的一个点向上或向下引导直到它与给定网格接触

    听起来像物理模拟中常见的直接碰撞检测问题,对吧?我可以使用任何游戏/物理库来解决这个问题吗?

    请注意,因为我没有做任何动画,所以逐帧更新和所有这些东西都与我无关;这就是为什么我对使用像bullet这样的现有游戏物理库犹豫不决。与我相关的是如何根据上述规则使用现有库生成这些连接平面。

0 个答案:

没有答案