矩阵Matrix从Unity空间到UE4空间的转换推导
矩阵Matrix从Unity空间到UE4空间的转换推导
记录一次矩阵在引擎之间的转换过程。
已知
Unity空间中,一个待转换的矩阵 M = [(m00, m01, m02, m03), (m10, m11, m12, m13), (m20, m21, m22, m23), (m30, m31, m32, m33)]
假设函数f(v) 表示: 将Unity空间坐标v转为UE4空间的坐标f(v); f(v) = (v.z, v.x, v.y, 1)
假设Unity中任意坐标P = (X, Y, Z, 1), 则其在UE4中的坐标为U_P = f(P) = (Z, X, Y, 1);
目标
求一个ue4空间的矩阵T,让T满足:
f(P * M) = U_P * T
这个矩阵T就是矩阵M转换到UE4空间的结果
求解
f(P * M) = U_P * T => (
X*m02 + Y*m12 + Z*m22 + m32,
X*m00 + Y*m10 + Z*m20 + m30,
X*m01 + Y*m11 + Z*m21 + m31,
X*m03 + Y*m13 + Z*m23 + m33
) = (Z, X, Y, 1) * T
观察可得
T = [
(m22, m20, m21, m23),
(m02, m00, m01, m03),
(m12, m10, m11, m13),
(m32, m30, m31, m33)
]
浙公网安备 33010602011771号