diff --git a/src/headset/openxr_headset.cpp b/src/headset/openxr_headset.cpp index 4d298260afaf710e5896d0bf3fa0d164ce1fa216..b79ebbb518af2736228092fff213217d028d9775 100644 --- a/src/headset/openxr_headset.cpp +++ b/src/headset/openxr_headset.cpp @@ -760,8 +760,7 @@ bool OpenXRHeadset::update_views() XrQuaternionf quaternion = view.pose.orientation; XrVector3f position = view.pose.position; - glm::mat4 pose_transform = (glm::mat4)glm::inverse(glm::quat(quaternion.w, quaternion.x, quaternion.y, quaternion.z)); - pose_transform[3] = glm::vec4(-position.x, -position.y, -position.z, 1.0f); + glm::mat4 pose_transform = (glm::mat4) glm::inverse(glm::quat(quaternion.w, quaternion.x, quaternion.y, quaternion.z)) * glm::translate(glm::mat4(1.0f), glm::vec3(-position.x, -position.y, -position.z)); this->head_to_eye_matrices[index] = glm::diagonal4x4(glm::vec4(1.0f, -1.0f, 1.0f, 1.0f)) * pose_transform;