【发布时间】:2016-11-02 00:07:02
【问题描述】:
我想知道如何在 android 上使用 opengl 来解决这个问题。我有四元数的相机,它描述了它的旋转。我想要一个对象 f.e. Cube 会在同一个屏幕上的相对位置。所以,我想旋转它并使用这个四元数围绕相机位置平移。它类似于游戏中的十字准线,但我不想将其用于叠加,而是用于 3D 对象的拖放功能。
【问题讨论】:
我想知道如何在 android 上使用 opengl 来解决这个问题。我有四元数的相机,它描述了它的旋转。我想要一个对象 f.e. Cube 会在同一个屏幕上的相对位置。所以,我想旋转它并使用这个四元数围绕相机位置平移。它类似于游戏中的十字准线,但我不想将其用于叠加,而是用于 3D 对象的拖放功能。
【问题讨论】:
您试图在给定距离的四元数表示的方向上找到一个点。为此,您不能像对向量那样直接使用四元数。
您可以将四元数转换为矩阵,然后执行与以下相同的逻辑。
glm::mat4 rotate = glm::mat4_cast(rotationQuat);
glm::vec4 newPosition = rotate * vector;
【讨论】: