OpenGL转换矩阵无法正确翻译

时间:2018-01-11 23:41:52

标签: java opengl lwjgl linear-algebra

我一直在使用我一直在努力的3D引擎遇到问题。转换矩阵应用的翻译是不正确的,坦率地说,我不知道为什么。

我正在使用的转换矩阵:

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

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

原始矩形:

Original rectangle

扭曲的矩形:

Warped rectangle

P.S。 z轴(near / far)上的任何平移都能正常工作,只有x-(左/右)和y轴(上/下)扭曲立方体。

1 个答案:

答案 0 :(得分:2)

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

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

来源:https://stackoverflow.com/a/13294326/6163527