在openvr / steamvr中获取WMR控制器的跟踪状态

时间:2018-12-07 02:43:47

标签: openvr windows-mixed-reality steamvr

早上好, 不知道是否有人可以在这个问题上帮助我,但我的想法已经用尽,所以我不得不问。

我目前正在玩Matzman666的SteamVR VRInputEmulator。

我试图找出Windows Mixed Reality控制器何时超出HMD摄像机的视野。我认为最好的方法是从控制器获取源损失风险和/或位置准确性,但是我不知道如何做到这一点。

首先,我尝试在DeviceManipulationHandle :: handlePoseUpdate()中使用newPose.poseIsValid和newPose.result,但是据我猜,这并不代表我所需的信息。

第二,我尝试使用以下方法挂接到IVRServerDriverHost005Hooks :: IVRServerDriverHost005Hooks()中的VendorSpecificEvent中。

CREATE_MH_HOOK(vendorSpecificEventHook, _vendorSpecificEvent, "IVRServerDriverHost005::VendorSpecificEvent", iptr, 3);  //VV

void IVRServerDriverHost005Hooks::_vendorSpecificEvent(void* _this, uint32_t unWhichDevice, const vr::VREvent_Data_t & eventData, double eventTimeOffset) {
    LOG(INFO) << "TEST!!! " << unWhichDevice;
    vendorSpecificEventHook.origFunc(_this, unWhichDevice, eventData, eventTimeOffset);
}

但这似乎根本没有被调用。尽管也许我使用了错误的vTable索引,因为我对此并不十分熟悉。我尝试了许多不同的索引,它们要么导致错误,已经创建要么没有产生有意义的结果,或者根本不产生结果。

任何见识将不胜感激,谢谢!

0 个答案:

没有答案