【问题标题】:OpenGL Terrain Colission DetectionOpenGL地形碰撞检测
【发布时间】:2011-12-03 12:52:29
【问题描述】:

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

我有一个茶壶“飞机”,你可以用它(第三人称相机)飞来飞去

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

我不知道如何计算你是否与地形发生碰撞?

有什么想法吗?

【问题讨论】:

    标签: c++ opengl collision terrain heightmap


    【解决方案1】:

    地形图特别容易测试碰撞,因为地形图是从 2d 点 (x, y) 到地形高度 TERRAIN[x, y] 的地图。给定您的茶壶平面位于 (t_x, t_y, t_z),只需根据 (t_x, t_y) 处的地形高度测试其高度。也就是说,如果 t_z

    【讨论】:

    • 感谢您的提示!这是一个相当平滑的地形,因为我将平滑作为我的 LOD 算法的一部分。
    【解决方案2】:

    有整本专门用于碰撞检测的书籍,但在我正在开发的一个简单游戏中,我通过为定义其边界球体的每个实体创建一个半径来处理碰撞检测。在每一帧中,将所有实体与所有其他实体进行比较以找出它们之间的距离,如果距离小于两个实体的组合半径,则记录一次碰撞。

    为此,我将每个类(例如火箭、怪物、玩家、树等)作为实体的子类,该实体持有碰撞发生时的逻辑,这意味着当火箭发射时,它可以杀死怪物,但只会燃烧一棵树(假设我有火箭和树实体)。

    我遵循的一本很好的书,它更详细地解释了这一点:

    http://www.amazon.co.uk/Beginning-OpenGL-Game-Programming-Second/dp/159863528X/ref=dp_ob_title_bk

    【讨论】:

      猜你喜欢
      • 2015-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多