AABB不是我想要的?

时间:2015-07-02 18:20:52

标签: graphics rendering physics

如果轴对齐的边界框轴必须与世界轴对齐,那么它们的数学可能不适用于旋转的框,因此它们不与世界轴对齐?

我如何克服这个问题?

编辑: this论文说:

  

每个模拟对象都表示为与轴对齐的边界框   世界,因此每个碰撞对象都有一个位置,以及高度,宽度和长度。   依次考虑轴,如果所有三个轴都有重叠,那么就是交叉点   已经发生了。

我是否抓住了这个错误?

1 个答案:

答案 0 :(得分:0)

您可以使用与任何坐标系对齐的边界框。只要它们都与同一系统对齐,您就可以使用AABB方法。

计算边界框相对较快。您可以在O(n)时间内对象中的点数进行此操作。

min_x = min_y = min_z = MAX_NUMBER
max_x = max_y = max_z = MIN_NUMBER
foreach(point in object):
    // transform point to desired coordinate system
    p2 = transform(point)
    if(p2.x < min_x ):
       min_x = p2.x
    if(p2.x > max_x ):
       max_x = p2.x
    if(p2.y < min_y ):
       min_y = p2.y
    if(p2.z > max_z ):
       max_z = p2.z
    if(p2.z < min_z ):
       min_z = p2.z
    if(p2.z > max_z ):
       max_z = p2.z

边界框将由(min_x,min_y,min_z)...(max_x,max_y,max_z)给出。