在OpenGL中,如果先旋转并在之后进行平移,则所有对象都将围绕其自己的原点旋转。如果先翻译然后再旋转,则对象应围绕原点(相机)旋转。但这并没有发生。一切都围绕世界轴旋转,而不是相机。 这样:
transformationMatrix.setIdentity();
transformationMatrix.mul(rotationMatrixX);
transformationMatrix.mul(rotationMatrixZ);
transformationMatrix.mul(rotationMatrixY);
transformationMatrix.mul(translationMatrix);
不起作用。如何旋转相机周围的所有内容?对于位于"世界"中心的对象(在0,0,0处的立方体),平移和旋转是相对于相机。上面的代码旋转了整个世界,但世界的中心从未改变其相对于相机的坐标。相机始终保持相同的视角。
===========================================
增加:
没有lwjgl.util IN lwjgl 3 ANYMORE。所以没有找到功能。
我通过围绕任意轴旋转来解决问题。试图使用JOGL,但有些错误:JOGL setPerspective wrong?