Как получить вектор направления камеры? - PullRequest
0 голосов
/ 23 марта 2020

Как узнать направление камеры от положения камеры (x, y, z) и крена камеры, направления, шага?

QuaternionF cameraQuat(-xpCameraPos.roll, -xpCameraPos.heading, xpCameraPos.pitch);
    cameraQuat.normalize();
    const Vector3Df camera3DPosTranslationOffset(-xpCameraPos.x, -xpCameraPos.y, -xpCameraPos.z);
    const Matrix4F cameraMatrix(Matrix4F::translate(camera3DPosTranslationOffset) * cameraQuat.toMatrix());
    const Vector3Df cameraPosition(xpCameraPos.x, xpCameraPos.y, xpCameraPos.z);
    Matrix4F targetRot;

    targetRot = tarQuat.toMatrix();
    m3DPosition = mScenery->localToModel(cameraPosition);


    Vector3Df direction = targetRot * Vector3Df(0.0f, 0.0f, -1.0f);
    direction.normalize();
    Vector3Df upDirection = targetRot * Vector3Df(0.0f, 1.0f, 0.0f);
    upDirection.normalize();
    mOrientation.x = direction.x;
    mOrientation.y = direction.y;
    mOrientation.z = direction.z;
    mOrientation.ux = upDirection.x;
    mOrientation.uy = upDirection.y;
    mOrientation.uz = upDirection.z;

В этом коде есть ошибка в координатах y и z, пожалуйста, помогите мне получить правильная ориентация камеры

...