为什么我的OpenGL程序使用矩阵旋转什么都不显示?

时间:2013-02-19 12:54:47

标签: opengl lwjgl

我无法找到如何使用偏航,俯仰和滚动创建视图矩阵。我正在使用LWJGL,并且可以使用旋转功能。

    viewMatrix.setZero();
    viewMatrix.rotate(pitch, new Vector3f(1.0f, 0.0f, 0.0f));
    viewMatrix.rotate(yaw, new Vector3f(0.0f, 1.0f, 0.0f));
    viewMatrix.rotate(roll, new Vector3f(0.0f, 0.0f, 1.0f));
    viewMatrix.m33 = 1.0f;
    viewMatrix.translate(position);

我正在做一些根本错误的事情,而且我讨厌我无法解决这个问题,因为缺乏文档(或者我缺乏谷歌技能)。

我没有转置矩阵。

作为一个注释,位置是一个零向量,我在屏幕上看不到任何东西(当视图矩阵为零时,我这样做。)

补充:我正在努力达到以下目标:

    GL11.glRotatef(pitch, 1.0f, 0.0f, 0.0f);
    GL11.glRotatef(yaw, 0.0f, 1.0f, 0.0f);
    GL11.glRotatef(roll, 0.0f, 0.0f, 1.0f);
    GL11.glTranslatef(position.x, position.y, position.z);

2 个答案:

答案 0 :(得分:3)

您应该使用viewMatrix.setIdentity()代替viewMatrix.setZero()来初始将矩阵设置为单位矩阵,而不是将矩阵归零。

答案 1 :(得分:0)

复合这样的旋转是错误的方法,试试这个:http://tutorialrandom.blogspot.com/2012/08/how-to-rotate-in-3d-using-opengl-proper.html