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 }
来源:
我 运行 遇到了一个我一直在研究的 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 }
来源: