Opengl 三维地形模型碰撞

Opengl 三维地形模型碰撞,opengl,model,3d,collision,terrain,Opengl,Model,3d,Collision,Terrain,因此,在尝试将heighmap地形加载到我的3D游戏环境中失败后,我用blender中的模型将地形加载到我的3D游戏中,而不是作为OBJ文件。我有点意识到这将是昂贵的,可能会咬我的屁股后,但在那个时候我真的不在乎 现在,我必须实现地形和模型碰撞。通常,如果我用高度贴图加载地形,这将很容易,但现在我不知道如何实现地形模型碰撞,因为两者在技术上都是网格 通常,从OBJ文件加载的网格将使用边界框或球体碰撞来检测模型之间的碰撞。但在我的例子中,地形网格非常庞大,其他模型(坦克、人、树……)位于地形网格的

因此,在尝试将heighmap地形加载到我的3D游戏环境中失败后,我用blender中的模型将地形加载到我的3D游戏中,而不是作为OBJ文件。我有点意识到这将是昂贵的,可能会咬我的屁股后,但在那个时候我真的不在乎

现在,我必须实现地形和模型碰撞。通常,如果我用高度贴图加载地形,这将很容易,但现在我不知道如何实现地形模型碰撞,因为两者在技术上都是网格

通常,从OBJ文件加载的网格将使用边界框或球体碰撞来检测模型之间的碰撞。但在我的例子中,地形网格非常庞大,其他模型(坦克、人、树……)位于地形网格的顶部。所以这些方法都不管用

我的另一个尝试是直接从我的terrain OBJ文件中检索所有80000个顶点数据,将这些顶点数据与我的其他模型中的数据进行比较。但问题是,由于我必须在每个渲染周期检查所有80000个顶点,所以这是非常低效和昂贵的,造成大量FPS下降率,使游戏无法播放


当模型和地形都是从OBJ文件加载并且是网格时,有人对如何实现地形模型碰撞有什么建议吗?还是我必须回到从高度地图加载地形上来?

三角汤碰撞检测已经得到了彻底的研究,有好几本关于它的出版物和书籍(例如)。最重要的是,有相当高效的开源库为您完成这项工作。物理引擎开发人员的一个流行选择似乎是

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

谢谢您提供的信息,但是我在加载操作码库和其他库时遇到了一些问题。对我来说,将其他库加载到我的项目中通常是非常烦人和困难的。除了操作码、RAPID和类似的库之外,还有其他更知名和有文档记录的库用于冲突吗?这就是问题所在。地形实际上是一个由搅拌机制成的模型。我只有纹理文件和地形的OBJ文件。没有海图。OBJ文件仅具有三角形化的顶点。我需要遍历所有三角形的所有顶点,然后使用这些垂直点进行碰撞检测如果你的地形没有洞穴等,那么你可以从网格烘焙高度贴图。我不知道如何在搅拌机里做到这一点,但这是可能的。此解决方案将比任何基于网格的解决方案快得多。除了有洞穴、柱子的沙漠。。。。。。顶点是三角网格。尽管从OBJ文件制作高度贴图肯定是个好主意,但想想看,有没有工具(如Blender)可以从OBJ文件创建bmp高度贴图?大多数工具(如Blender)都是从bmp文件创建3d模型,那么反过来呢?试试这个:您是否尝试过从网格生成高度贴图(从obj加载网格后)?