OpenGL 转换矩阵未正确转换

OpenGL transformation matrix not translating properly

我 运行 遇到了一个我一直在研究的 3D 引擎的问题。转换矩阵应用的翻译不正确,坦率地说,我不知道为什么。

我使用的变换矩阵:

{ 1f, 0, 0, 0,
  0, 1f, 0, 1f,
  0, 0, 1f, 0,
  0, 0, 0, 1f }

此变换矩阵应用于由两个三角形组成的普通立方体,然后扭曲立方体的边缘而不是应用平移。

原始矩形:


扭曲的矩形:


P.S。 z 轴 (near/far) 上的任何平移都正常工作,只有 x 轴 (left/right) 和 y 轴 (up/down) 扭曲立方体。

我是 OpenGL 的新手,但据我所知,OpenGL 中的矩阵是使用列主矩阵排序表示的:这意味着您应该使用转置变换矩阵:

{ 1f, 0, 0, 0,
  0, 1f, 0, 0,
  0, 0, 1f, 0,
  0, 1f, 0, 1f }

来源: