我有一个输入 3D 矢量,以及相机的俯仰和偏航。任何人都可以描述或提供资源链接来帮助我理解和实现所需的转换和矩阵映射吗?
最佳答案
世界到相机的变换矩阵是相机到世界矩阵的逆矩阵。相机到世界矩阵是相机位置的平移和相机方向的旋转的组合。因此,如果 M 是对应于相机方向的 3x3 旋转矩阵,t 是相机位置,则 4x4 相机到世界矩阵为:
M00 M01 M02 tx M10 M11 M12 ty M20 M21 M22 tz 0 0 0 1
请注意,我假设向量是列向量,它们在右侧相乘以执行转换。如果您使用相反的约定,请确保转置矩阵。
要查找M,您可以使用 Wikipedia 上列出的公式之一,具体取决于您对横滚、俯仰和偏航的特定约定。请记住,这些公式使用向量是在左侧相乘的行向量的约定。
一种更有效(且数值稳定)的替代方案是直接计算世界到相机矩阵,而不是计算相机到世界矩阵并对其求逆。为此,只需反转相机的位置(通过否定所有 3 个坐标)及其方向(通过否定滚动角、俯仰角和偏航角,并将它们调整到适当的范围内),然后使用相同的方法计算矩阵算法。
关于math - 如何将世界坐标转换为相机坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/695043/