游戏软件开发中使用的包围盒

在游戏的开发中为了提高GPU的效率,通常都会将屏幕中看不到的那些游戏物体的数据舍弃掉(并非从内存中删除,只是不将这些模型的数据输入到渲染流水线中),让GPU只渲染屏幕中能看到的东西,这个时候就要使用包围盒去检测游戏物体是否在平截台体或者正交摄像机的可视范围内了。

1553249412-Fig16-1

包围盒的用处不仅仅只在这,还可以用在碰撞检测中,几乎所有的3D游戏都使用到了包围盒的技术,这个技术主要的原理就是使用一个简单的几何体(球、长方体等)去将游戏物体包围起来,然后只进行粗略的计算就可以算出两个包围盒子之间的关系,例如两个球形包围盒中心的距离大于它们半径之和,两个盒子就不会有交点。这个技术的优点就是只要简单的计算就可以大量物体之间的关系,但是对需要精确检测的游戏来说就不适应了,就需要使用更高级的技术。

  1. 包围盒
    • AABB(Axis-Aligned Bounding Box)包围盒被称为轴对其包围盒。其在坐标系中的表示如下图
    • OBB(Oriented Bounding Box)包围盒被称为定向包围盒/有向包围盒
    • K-DOP(K Discrete Oriented Polytope)被称为K离散定向多面体
  2. 包围球
    • 包围球

这里Sphere不需要怎么解释,AABB从名字上就可以知道这种包围盒的边必须要与坐标轴对齐,OBB叫做定向包围盒盒子自己带有方向不需要和坐标轴对齐,K-DOP其中K是轴对齐平面的数字,这种包围盒的资料比较少,你可以去其他地方找一下。

picture

未经允许不得转载:他日重逢 » 游戏软件开发中使用的包围盒

赞 (1) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

隐藏
变装