我找不到如何使用偏航、俯仰和滚动创建视图矩阵。我正在使用 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);