THREE.js斜率检测

时间:2013-01-10 14:56:50

标签: javascript three.js webgl

我想问一下我们如何检测汽车游戏中的坡度。因此,汽车将其检测为斜坡,而不是碰撞物体。我搜索了很多,但找不到任何有用或有帮助的东西。

1 个答案:

答案 0 :(得分:2)

你对情况的描述有点模糊,在物理包等方面(或者你的写作?),但总的来说,我会说定义倾斜地形的最简单方法是作为高度场 - 三角形的矩形网格。因此,制作一个不同高度的N x M阵列,然后让Three.js绘制三角形,其高度(Y)与数组的值匹配,并且间隔...但是你喜欢的距离很远,这取决于你可能需要的地形细节。

现在,对于任何给定的汽车位置,您可以在JS中快速确定网格中三个最接近的点,仅基于汽车位置的X和Z分量。这只是针对网格间距的几个分区。一旦你有了这些,那么你的JS代码可以将汽车的高度调整为三角形上该位置的适当Y,如果你有物理解决方案需要知道该位置的3D斜率,它也很容易计算。 Three.js本身甚至不需要被调用 - 所有关键信息都在原始地形阵列和汽车的2D映射到3D位置。

对于地形来说,这是特别的解决方案 - 如果您希望能够与任意几何体发生碰撞或碰撞,那么这将非常复杂。