我的轴对齐边界框表示为2个3D矢量,一个保持左下 - 后点(最小),一个保持右上 - 前点(最大)。
在向任何方向旋转物体后,必须重新计算包围它的aabb以使其适合。以此图片为例:
这可以使用我拥有的两个起点和旋转的角度+方向来计算吗?如果是这样的话?什么是最有效的方式?
P.S。我使用glm作为我的数学,所以任何使用glm做到这一点的方法都非常有用!
答案 0 :(得分:4)
您可以通过现有AABB的轮换计算新的AABB吗?是。它涉及转换所有8个点,然后从中计算AABB。您可以找到每个维度的最大范围,即每个维度的最大/最小值。
但是,这不会给你显示的图片效果。原因很明显。图片是从它所包含的实际网格的旋转重新计算AABB。而你想要通过旋转矩形重新计算它。
基于盒子的重新计算将始终大于严格必要的重新计算。从实际网格中重新计算AABB将产生更紧密的AABB。
答案 1 :(得分:3)