我正在使用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轴的点?
答案 0 :(得分:0)
相当于trackedObject.transform.forward
:
public static Vector3D Forward(HmdMatrix34_t matrix)
{
return new Vector3D(matrix.m2, matrix.m6, matrix.m10);
}