Opengl 绕相机旋转
在OpenGL中,如果先旋转,然后平移,则所有对象都将围绕其自身的原点旋转。如果先平移然后旋转,对象应围绕原点(摄影机)旋转。但这并没有发生。一切都围绕世界轴旋转,而不是相机。 这: 不起作用。我如何旋转相机周围的一切?对于“世界”中心的对象(0,0,0处的立方体),平移和旋转是相对于摄影机的。上面的代码旋转整个世界,但世界中心从未改变其相对于相机的坐标。摄影机始终具有相同的观察方向 =========================================== 增加: lwjgl 3中不再有lwjgl.util。所以没有lookat函数Opengl 绕相机旋转,opengl,matrix,camera,rotation,Opengl,Matrix,Camera,Rotation,在OpenGL中,如果先旋转,然后平移,则所有对象都将围绕其自身的原点旋转。如果先平移然后旋转,对象应围绕原点(摄影机)旋转。但这并没有发生。一切都围绕世界轴旋转,而不是相机。 这: 不起作用。我如何旋转相机周围的一切?对于“世界”中心的对象(0,0,0处的立方体),平移和旋转是相对于摄影机的。上面的代码旋转整个世界,但世界中心从未改变其相对于相机的坐标。摄影机始终具有相同的观察方向 =========================================== 增加: lwjgl 3中
我通过绕任意轴旋转解决了这个问题。尝试使用JOGL,但出现了一些错误:我已修复了您问题的语言。请验证内容是否符合您的预期。还请包括您的相机来自何处。你有另一个相机矩阵吗?因此,您基本上希望旋转相机(并保持世界不变)?GLOOKAT(GLdouble eyeX,GLdouble EYY,GLdouble EYZ,GLdouble centerX,GLdouble centerY,GLdouble upX,GLdouble upY,GLdouble upZ);设置您的相机参数我已修复您的问题语言。请验证内容是否符合您的预期。还请包括您的相机来自何处。你有另一个相机矩阵吗?因此,您基本上希望旋转相机(并保持世界不变)?GLOOKAT(GLdouble eyeX,GLdouble EYY,GLdouble EYZ,GLdouble centerX,GLdouble centerY,GLdouble upX,GLdouble upY,GLdouble upZ);设置相机参数
transformationMatrix.setIdentity();
transformationMatrix.mul(rotationMatrixX);
transformationMatrix.mul(rotationMatrixZ);
transformationMatrix.mul(rotationMatrixY);
transformationMatrix.mul(translationMatrix);