【发布时间】:2016-03-10 08:51:43
【问题描述】:
我正在为一个项目的 stanford bunny 制作 OBB。我计算了协方差矩阵并找到了它的特征向量。特征向量矩阵的列是我的旋转矩阵的组成部分,例如第一个特征向量列是我的旋转矩阵的第一列。
为了找到将 OBB 移回中心的点平移量,我将包含我的中心点 (xc, yc, zc,1) 的向量乘以旋转矩阵(我认为这会给我新的中心点值)。然后我将这些值的负值添加为我的转换矩阵的平移元素。
然后,我使用与 x、y、z 轴相关的最大/最小点来渲染边界框。然后我进行逆变换。结果不是我所期望的。如您所见,盒子与新轴对齐,但方式不正确,并且它不适合螺丝刀......
我的理论有问题吗?还是矩阵没有正确相乘。如果我不使用任何平移,它似乎离中心很远,但是 AOBB 计算得很好。我很困惑。
【问题讨论】:
标签: c++ opengl matrix transformation bounding-box