包围盒在碰撞检测等方面有着非常重要的应用,网上关于OBB包围盒的介绍很多,介绍的很好的一篇文章为https://blog.youkuaiyun.com/qing101hua/article/details/53100112这篇,想了解原理的话可以仔细看一看这篇文章。
最近在科研的过程中,碰到了求解模型的OOB包围盒的问题,因为自己使用的是OSG平台,所以就去网上找,发现基本没有能用的,就自己在GitHub上找了计算包围盒的代码,结合以前写的获取模型中所有的坐标点的代码,写了一个现实模型各个节点的AABB包围盒和OBB包围盒的程序,放到这里供大家参考。
首先先来绘制模型的AABB包围盒,在OSG中非常简单,只需要获取节点的BoundingBox,然后利用OSG中自带的Box几何体绘制显示即可。来看一下效果。这里有六个完全相同的建筑物结构,给其绘制AABB包围盒,可以明显的看到,六个包围盒的大小不一样大,这正是AABB包围盒的局限所在。当模型发生旋转时(下面的六个模型可以看成是其中的一个模型经过平移旋转得到的),AABB包围盒的就会随之变化。