代码之家  ›  专栏  ›  技术社区  ›  DavidG

优化截锥剔除

  •  2
  • DavidG  · 技术社区  · 17 年前

    我用C++写了一个游戏,有一个由许多单独的网格组成的层次,每个网格都有自己的顶点缓冲区。我正在使用vmmlib(brilliant free gl compat.vector/matrix library)创建我的平截头体剔除器,并针对级别中每个网格的边界球体对其进行测试。可悲的是,我的关卡可以由多达800个网格组成,并且每一帧都会很慢地遍历所有网格。优化代码的最佳方法是什么,这样我就不必在每次迭代中查看所有网格?截锥体内的边界体积?

    3 回复  |  直到 15 年前
        1
  •  4
  •   Adam Bellaire    17 年前

    是的,边界对象是最好的方法,您应该注意选择适当的边界体积,例如,对于像机器人一样在场景中移动且不躺下的网格,圆柱体是最好的体积,其他的最好由立方体表示(轴对齐与否)。

    然后创建一个四叉树或八叉树来按层次划分网格数据。

        2
  •  3
  •   Eugene Yokota    17 年前
        3
  •  3
  •   BigSandwich    17 年前

    我只是想补充一点,现在门户网站通常比BSP更受欢迎,或者与BSP联合使用,但我没有足够的声誉来编辑原始文章。

    推荐文章