c++ - OpenGL 地形碰撞检测

标签 c++ opengl collision terrain heightmap

好吧,我有一些程序生成的地形(大致基于 http://www.swiftless.com/terraintuts.html )

我有一架茶壶“飞机”,你可以在里面飞来飞去(第三人称相机)

基本上,目标是飞过山谷等......而不坠毁。

我想不出来的是如何计算你是否与地形发生碰撞?

有什么想法吗?

最佳答案

地形图特别容易测试碰撞,因为地形图是从 2d 点 (x, y) 到该点地形高度 TERRAIN[x, y] 的 map 。给定您的茶壶平面位于 (t_x, t_y, t_z),只需根据 (t_x, t_y) 处地形的高度测试其高度。也就是说,如果 t_z < TERRAIN[x, y],那么你就崩溃了。您可以根据地形测试多个点(可能是以茶壶中心为中心的立方体的角),以获得更准确的结果。根据地形图的粗糙度,您可以选择附近的网格点,或线性插值以计算任意点处的地形高度。

关于c++ - OpenGL 地形碰撞检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8367764/

相关文章:

c++ - opencv安装错误ubuntu

c++ - std::map 迭代器和插入的行为

c++ - Access数据库-QODBC驱动程序对管理员执行授予

c - opengl中物体的旋转没有发生

c++ - 奇怪的 ATI vs Nvidia TRIANGLE_STRIP 问题

c++ - 为什么这些礼帽在这样使用时会有所不同?

c++ - glBufferData 带有一个顶点数组,每个顶点有 3 个 float (x、y 和 z)

c# - 碰撞响应 2d

javascript - Matter.js 未检测到碰撞

c++ - 2D Box Collisions - 我做错了什么? (C++)