我正在研究与自定义失真投影有关的内容。为了试验统一性,我必须将OpenGL投影矩阵转换为Unity投影矩阵。
我想知道Unity使用的是左手坐标,而OpenGL使用的是右手坐标。顶点表示为行向量,而不是列向量。
我应该如何转换矩阵?
答案 0 :(得分:1)
要从列向量语义切换到行向量语义,请对矩阵进行转置。要从右手转换为左手(反之亦然),请镜像其中一个轴(这并不重要,哪一个是轴,但通常的选择是Z)。最后但并非最不重要的一点是,您可能必须通过在矩阵的正确位置放置1或-1来使轴旋转。例如,要镜像Z并置换X→Y,Y→Z,Z→X,您可以使用
0 0 -1
1 0 0
0 1 0