0

我正在使用 Vive 控制器进行 3D 数字化。我正在使用 OpenVR 与硬件对话,并PollNextEventWithPose在用户按下按钮时获取控制器的姿势。从姿势中,我想计算一个沿 Z 轴 177mm 的点,即我们的数字化点所在的位置。

在 Unity 下运行,我做了这样的事情:

var digitizerPosition = trackedObject.transform.position - trackedObject.transform.forward * 0.177f;

现在在 OpenVR 下,PollNextEventWithPose给我一个TrackedDevicePose_t包含mDeviceToAbsoluteTracking类型为的字段Valve.VR.HmdMatrix34_t。给定该矩阵,我如何计算沿 Z 轴的点?

4

1 回答 1

0

等价于trackedObject.transform.forward

    public static Vector3D Forward(HmdMatrix34_t matrix)
    {
        return new Vector3D(matrix.m2, matrix.m6, matrix.m10);
    }
于 2018-03-14T20:36:37.650 回答