【Barequet99】给出了一种简化算法并对点集实现了最佳OBB的粗略逼近:首先计算点集的最小AABB。其中,选择包围盒中两个间距最大的平行面上的两个点,用以确定OBB的长度方向。于是,点集投影至垂直于OBB长度方向的平面上。采用相同的方法计算最小的轴对齐矩形,且利用其中两个间距最大的平行面上的顶点计算OBB的第2个轴。OBB的第3个轴则正交于前两个轴。虽然该算法易于编码,但实际应用中,常采用具有类似复杂度的其他算法获取(接近)最优的包围盒,这一类算法将在后文加以描述。
对于瘦长类型的物体对象,OBB轴应与物体的方向对齐;而对于扁平的物体对象,OBB轴应与扁平物体的法线方向对齐。上述方向对应于物体的主方向,而且4.3.3节中描述的主成分分析也可以应用于此处。
对于在空间内顶点均匀分布的模型来说,基于模型顶点的包围盒计算一般能够正常运行。然而,内部顶点产生的影响往往使协方差计算产生偏移,并使得OBB呈现任意方向——即使存在极值顶点。因此,应避免使用基于加权顶点位置的包围体计算方法。足以引起注意的一点是:最小包围体的特征定义(中心位置、维度以及方向)皆独立于物体顶点的点簇(clustering)。这一点可以通过对包围体添加(或去除)额外的内部或边界偏心顶点得到验证,该方法并不影响包围体的特征定义,因此也不会影响其计算结果。然而,以上述方式增加额外顶点却会改变顶点的协方差矩阵,从而改变了依据此矩阵计算出的OBB特征。这种情况可以通过只考查极值点加以改善,即只考虑使用物体对象模型上的凸顶点,从而消除内部顶点导致的OBB非对齐问题。然而,即使全部剩余顶点皆为极值顶点,基于顶点的分布状态,最终的OBB仍可出现不可预料的错误,其结果为:点簇仍使得指向自身的某一轴产生偏移。从另一个角度来看,即孤立地对顶点实施计算将无法生产稳定、可靠的协方差矩阵。
展开