【问题标题】:How can I convert OpenGL projection matrix into Unity projection matrix?如何将 OpenGL 投影矩阵转换为 Unity 投影矩阵?
【发布时间】:2019-03-05 01:11:30
【问题描述】:

我正在研究与自定义扭曲投影相关的内容。为了尝试统一,我必须将 OpenGL 投影矩阵转换为 Unity 投影矩阵。

我想知道 Unity 使用的是左手坐标,但 OpenGL 使用的是右手坐标。并且顶点表示为行向量,而不是列向量。

我应该如何转换矩阵?

【问题讨论】:

  • 根据this Unity forum post,Unity 矩阵是列优先的(就像在 OpenGL 中一样),向量是列向量,并且使用右手坐标系。因此矩阵应该是相同的。

标签: unity3d opengl 3d


【解决方案1】:

要从列切换到行向量语义转置矩阵。从右手转换为左手(反之亦然)镜像其中一个轴(实际上并不重要,哪个轴,但通常的选择是 Z)。最后但并非最不重要的一点是,您可能必须通过在矩阵中的正确位置设置 1 或 -1 来调整轴。例如,镜像 Z 并置换 X→Y、Y→Z、Z→X,您可以使用

0  0 -1
1  0  0
0  1  0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    • 2015-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-14
    相关资源
    最近更新 更多