好吧,我有一些程序生成的地形(大致基于 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/