0

在 HoloLens 2 上,我想在用户正在查看的表面网格上绘制一个目标。如何获得代表眼睛光线的矢量指针?我相信光标已经找到了这个光线指针与表面网格碰撞的位置,但是,它从不使用眼睛光线。谢谢你。

4

3 回答 3

0

眼动追踪的访问方式如下

  1. 将“gazeInput”作为 Capability 添加到您的 appx 清单中

  2. 在调用任何眼动追踪 API 之前,请通过调用请求用户批准EyesPose.RequestAccessAsync()

  3. 采取凝视射线

if(Windows.Perception.People.EyesPose.IsSupported)
{
    var gaze = Windows.UI.Input.Spatial.SpatialPointerPose.TryGetAtTimestamp(coordinateSystem, DateTime.Now).Eyes.Gaze;
    if(gaze != null)
    {
        var dir = gaze.Direction;
        var org = gaze.Origin;
    }
}
于 2019-04-29T08:41:39.467 回答
0

对于 HoloLens 1 和 HoloToolKit,我使用了这个 - Worldposition:

Vector3 hitPosition = GazeManager.Instance.HitPosition;

对于本地位置:

Vector3 hitPosition = transform.InverseTransformPoint(GazeManager.Instance.HitPosition);

在新的 MRTK V2 中是否有类似 Gazemanager 的东西?在相机上应该是一个包含光线投射的脚本......

编辑:等等,你在寻找你眼睛的坐标吗(因为我读到 HoloLens 2 包括眼球追踪)?

于 2019-04-11T06:25:35.630 回答
0

如果您使用的是 MRTK v2,则需要查看 callMixedRealityToolkit.InputSystem.GazeProviderMixedRealityToolkit.InputSystem.EyeGazeProviderfrom 您的代码。如果您专门寻找眼睛凝视,则需要在询问凝视数据之前检查该IsEyeGazeValid属性。如果编辑器需要,您还需要确保您已在 GazeProvider 上选中 Prefer Eye Gaze,并在输入模拟配置文件中打开眼睛注视模拟。

偏爱注视

否则,如果您想要头部注视,HitPosition和相关属性应该提供您需要的信息。

有关 MRTK v2 中眼动追踪的更多信息,请参阅文档

于 2019-04-26T19:38:50.077 回答