我无法找到如何使用偏航,俯仰和滚动创建视图矩阵。我正在使用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);
答案 0 :(得分:3)
您应该使用viewMatrix.setIdentity()
代替viewMatrix.setZero()
来初始将矩阵设置为单位矩阵,而不是将矩阵归零。
答案 1 :(得分:0)