早上好, 不知道是否有人可以在这个问题上帮助我,但我的想法已经用尽,所以我不得不问。
我目前正在玩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索引,因为我对此并不十分熟悉。我尝试了许多不同的索引,它们要么导致错误,已经创建要么没有产生有意义的结果,或者根本不产生结果。
任何见识将不胜感激,谢谢!