【问题标题】:HoloLens2: I want to draw a target on the surface mesh where the user is lookingHoloLens2:我想在用户正在看的表面网格上绘制一个目标
【发布时间】:2019-05-01 16:16:02
【问题描述】:

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

【问题讨论】:

    标签: hololens mrtk


    【解决方案1】:

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

    Vector3 hitPosition = GazeManager.Instance.HitPosition;
    

    对于本地位置:

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

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

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

    【讨论】:

      【解决方案2】:

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

      Prefer Eye Gaze

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

      有关 MRTK v2 中眼动追踪的更多信息,请访问documentation

      【讨论】:

        【解决方案3】:

        The eye tracking 访问如下

        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;
            }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-03-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-02-05
          • 1970-01-01
          • 2019-09-14
          相关资源
          最近更新 更多