3D地形模型碰撞

时间:2014-03-16 04:33:54

标签: opengl model 3d collision terrain

因此,在尝试将heighmap地形加载到我的3D游戏环境并且失败之后,我有点欺骗并使用来自blender的模型将我的地形加载到我的3D游戏中而不是OBJ文件。我有点意识到这将是昂贵的,可能会在以后咬我的屁股,但当时我并不在乎。

所以现在,我正处于必须实现地形和模型碰撞的地步。通常,如果我用高度贴图加载我的地​​形,那将很容易,但现在我对如何实现地形模型碰撞感到不知所措,因为两者都是技术网格。

通常,从OBJ文件加载的网格物体将使用边界框或球体碰撞来检测模型到模型的碰撞。但就我而言,地形网格是巨大的,其他模型(坦克,人类,树木......)位于我的地形网格之上。所以这些方法都不起作用。

我的另一个尝试是直接从我的地形OBJ文件中检索所有80000顶点数据,将这些顶点数据与我的其他模型中的数据进行比较。但问题是它非常低效且昂贵,因为事实上,我必须在每个渲染周期检查所有80000顶点,导致大量FPS丢弃率并使游戏无法播放。

当从OBJ文件加载模型和地形并且是网格时,有没有人对如何实现地形模型碰撞有任何建议?还是我只需要从高度图上回到加载地形?

2 个答案:

答案 0 :(得分:0)

三角汤碰撞检测已经过深入研究,有几本出版物和书籍(例如http://realtimecollisiondetection.net/)。最重要的是,有相当高效的开源库为您完成工作。物理引擎开发人员中的一个流行选择似乎是OPCODE

答案 1 :(得分:0)

如果你有地形的高度图,你仍然可以用它来计算碰撞。使用三角形网格进行渲染和同时进行碰撞的高度贴图没有问题。

相关问题