diff --git a/Engine/source/gui/3d/guiTSControl.cpp b/Engine/source/gui/3d/guiTSControl.cpp index 1a8046dd2..57c6d2fef 100644 --- a/Engine/source/gui/3d/guiTSControl.cpp +++ b/Engine/source/gui/3d/guiTSControl.cpp @@ -529,6 +529,8 @@ void GuiTSCtrl::onRender(Point2I offset, const RectI &updateRect) GFXTransformSaver saver; bool renderingToTarget = false; + mLastCameraQuery.displayDevice = NULL; + if (!processCameraQuery(&mLastCameraQuery)) { // We have no camera, but render the GUI children diff --git a/Engine/source/platform/input/openVR/openVRProvider.cpp b/Engine/source/platform/input/openVR/openVRProvider.cpp index 2f8524221..8c49ef49e 100644 --- a/Engine/source/platform/input/openVR/openVRProvider.cpp +++ b/Engine/source/platform/input/openVR/openVRProvider.cpp @@ -343,7 +343,7 @@ OpenVRProvider::OpenVRProvider() : INPUTMGR->registerDevice(this); dMemset(&mLUID, '\0', sizeof(mLUID)); - mTrackingSpace = vr::TrackingUniverseSeated; + mTrackingSpace = vr::TrackingUniverseStanding; } OpenVRProvider::~OpenVRProvider() @@ -586,7 +586,7 @@ void OpenVRProvider::getFrameEyePose(IDevicePose *pose, U32 eye) const { AssertFatal(eye >= 0 && eye < 2, "Out of bounds eye"); - MatrixF mat = mHMDRenderState.mHMDPose * mHMDRenderState.mEyePose[eye]; + MatrixF mat = mHMDRenderState.mEyePose[eye] * mHMDRenderState.mHMDPose; // same order as in the openvr example OpenVRTransformToRotPos(mat, pose->orientation, pose->position); pose->velocity = Point3F(0); @@ -603,6 +603,9 @@ void OpenVRProvider::getEyeOffsets(Point3F *dest) const { dest[0] = mHMDRenderState.mEyePose[0].getPosition(); dest[1] = mHMDRenderState.mEyePose[1].getPosition(); + + dest[0] = Point3F(-dest[0].x, dest[0].y, dest[0].z); // convert from vr-space + dest[1] = Point3F(-dest[1].x, dest[1].y, dest[1].z); } bool OpenVRProvider::providesFovPorts() const