Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl 绕相机旋转_Opengl_Matrix_Camera_Rotation - Fatal编程技术网

Opengl 绕相机旋转

Opengl 绕相机旋转,opengl,matrix,camera,rotation,Opengl,Matrix,Camera,Rotation,在OpenGL中,如果先旋转,然后平移,则所有对象都将围绕其自身的原点旋转。如果先平移然后旋转,对象应围绕原点(摄影机)旋转。但这并没有发生。一切都围绕世界轴旋转,而不是相机。 这: 不起作用。我如何旋转相机周围的一切?对于“世界”中心的对象(0,0,0处的立方体),平移和旋转是相对于摄影机的。上面的代码旋转整个世界,但世界中心从未改变其相对于相机的坐标。摄影机始终具有相同的观察方向 =========================================== 增加: lwjgl 3中

在OpenGL中,如果先旋转,然后平移,则所有对象都将围绕其自身的原点旋转。如果先平移然后旋转,对象应围绕原点(摄影机)旋转。但这并没有发生。一切都围绕世界轴旋转,而不是相机。 这:

不起作用。我如何旋转相机周围的一切?对于“世界”中心的对象(0,0,0处的立方体),平移和旋转是相对于摄影机的。上面的代码旋转整个世界,但世界中心从未改变其相对于相机的坐标。摄影机始终具有相同的观察方向

===========================================

增加:

lwjgl 3中不再有lwjgl.util。所以没有lookat函数


我通过绕任意轴旋转解决了这个问题。尝试使用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);