我试图找到我的oculus触摸控制器指向OpenVR中任何给定时间点的方向。 (从控制器渲染光线指示器的方向) 我正在使用以下功能
GetControllerStateWithPose( TrackingUniverseStanding,deviceId,&controllerState, sizeof(controllerState),&trackedDevicePose);
在下图中,我了解到x,y和z的位置由m12 m13和M14来描述。但是,如何使用m0到m10的值来找到控制器在任何给定时间指向的方向向量。
由于我的新帐户而无法发布图片,但可以在此处找到 https://camo.githubusercontent.com/d83363a745afeeb1ac7265d10ad55544e15a8fe9/687474703a2f2f7777772e736f6e67686f2e63612f6f70656e676c2f66696c65732f676c5f616e676c6573746f6178657330312e706e67
我将这个矩阵简单地乘以[1,1,1,0] ^ T吗?或者也许[0,0,1,0] ^ T,因为Z轴被描述为前进方向
谢谢
答案 0 :(得分:0)
我也有这个问题(OpenVR Teleportation Problem (Forward direction calculation))。我知道这是一个非常古老的问题,但为了完整起见,我也想在这里给出答案。
这里的方法是正确的,但 OpenVR 将其控制器的前向向量定义为 vec4(0,0,-1,0)。您应该能够将姿势矩阵乘以这个向量来获得方向。请记住,这与 HMD 相关,并相应地进行转换。