2

我试图找到我的 oculus 触摸控制器指向 OpenVR 中任何给定时间点的方向。(从控制器渲染光线指针的方向)我正在使用以下函数

GetControllerStateWithPose(TrackingUniverseStanding, deviceId, &controllerState, sizeof(controllerState), &trackedDevicePose);

在下图中,我了解位置是用 m12 m13 和 M14 来描述 x、y 和 z 的。但是如何使用 m0 到 m10 的值来找到控制器在任何给定时间指向的方向向量。

Can't post images because of my new account but it can be found here https://camo.githubusercontent.com/d83363a745afeeb1ac7265d10ad55544e15a8fe9/687474703a2f2f7777772e736f6e67686f2e63612f6f70656e676c2f66696c65732f676c5f616e676c6573746f6178657330312e706e67

我可以简单地将这个矩阵乘以 [1,1,1,0]^T 吗?或者也许 [0,0,1,0]^T 因为 Z 轴被描述为正向

谢谢

4

1 回答 1

0

我也有这个问题(OpenVR Teleportation Problem (Forward direction calculation))。我知道这是一个非常古老的问题,但为了完整起见,我也想在这里给出答案。

这里的方法是正确的,但 OpenVR 将其控制器的前向向量定义为 vec4(0,0,-1,0)。您应该能够将姿势矩阵乘以该向量以获得方向。请记住,这与 HMD 相关,并相应地进行转换。

于 2021-01-10T22:54:18.013 回答