Opengl 实现无投影矩阵的弧球旋转轴?

Opengl 实现无投影矩阵的弧球旋转轴?,opengl,rotation,axis,projection-matrix,arcball,Opengl,Rotation,Axis,Projection Matrix,Arcball,我有一个关于使用Android Studio在opengl es中实现arcball的问题 在计算旋转轴之后,我应该通过渲染管道将轴反转回对象空间,以便可以在对象空间中应用旋转 这一部分的内容如下: obj_rotateAxis = normalize(vec3(inverse(mat3(camera->projMatrix) * mat3(camera->viewMatrix) * mat3(teapot->worldMatrix)) * rotateAxis)); 但是,

我有一个关于使用Android Studio在opengl es中实现arcball的问题

在计算旋转轴之后,我应该通过渲染管道将轴反转回对象空间,以便可以在对象空间中应用旋转

这一部分的内容如下:

obj_rotateAxis = normalize(vec3(inverse(mat3(camera->projMatrix) * mat3(camera->viewMatrix) * mat3(teapot->worldMatrix)) * rotateAxis));
但是,我听说正确的形式应该是:

obj_rotateAxis = normalize(vec3(inverse(mat3(camera->viewMatrix) * mat3(teapot->worldMatrix)) * rotateAxis));

其中projMatrix被丢弃。为什么我们在执行ARCGARE时不考虑投影矩阵,尽管对对象进行投影变换?

< P>。据我所知,使用ARCARB计算一个旋转角度,您将应用到对象。要旋转对象时,需要使其从世界原点(世界矩阵)或视点(视图矩阵)旋转

投影矩阵不表示对象的实际位置。你所处的最远位置越小,你不希望深度对你的旋转产生影响

因此,从视点或原点计算旋转,然后让投影矩阵在渲染时执行其工作