如何在 Unity Skybox 内部播放的 360 度视频中找到佩戴 VR 耳机的用户正在观看的坐标?

How can I find the co-ordinates where the user wearing a VR Headset is looking at in a 360 video playing insider Unity Skybox?

我正在尝试查找佩戴带有集成 Tobii Eyetracker 的 HTC Vive 的用户的注视坐标。用户正在观看在 Unity Skybox 中播放的 360 度视频。我正在使用 Tobii Pro SDK。

我使用了 Tobii 的 VREyeTracker Prefab,并在 XML 文件中获取参数和值(更多细节见下方结果)。 Unity 数据与原始数据有何不同?由于我找不到任何相关描述的文件,我不确定 XML 中获得的结果是否包含我要查找的信息。

统一数据:

GazeDirection Value="(-0.05267334, 0.01541138, 0.99848940)" Valid="True" />
<GazeOrigin Value="(-0.03057870, 0.00478235, -0.04329382)" Valid="True" />
<PupilDiameter Value="0.00168019" Valid="True" />
<GazeRayWorld Origin="(-0.40116220, 1.04663500, -0.38193990)" Direction="(0.24876200, 0.05519217, 0.96699090)" Valid="True" />

原始数据:

<GazeDirection UnitVector="(0.05267334, 0.01541138, 0.99848940)" Validity="Valid" />
<GazeOrigin PositionInHMDCoordinates="(30.57870000, 4.78234900, -43.29382000)" Validity="Valid" />
<Pupil PupilDiameter="1.68019100" Validity="Valid" />
PupilPosition PositionInTrackingArea="(0.55140850, 0.63337760)" Validity="Valid" />

如果比较两个数据集,您可以很容易地看到以下关系:

  • 统一数据

    <GazeDirection Value="(-0.05267334, 0.01541138, 0.99848940)" Valid="True" />
    

    有关

    原始数据

    <GazeDirection UnitVector="(0.05267334, 0.01541138, 0.99848940)" Validity="Valid" />
    

    但 X 轴倒转

  • 统一数据

    <GazeOrigin Value="(-0.03057870, 0.00478235, -0.04329382)" Valid="True" />
    

    被评为

    原始数据

    <GazeOrigin PositionInHMDCoordinates="(30.57870000, 4.78234900, -43.29382000)" Validity="Valid" />
    

    但 X 轴倒置且系数为 1000(Unity 以米为单位,tobii 以毫米为单位)。这个名字听起来像是注视射线相对于 head/hmd 设备的原点 -> 向左一点 (3cm),在头戴式显示器中心上方一点 (1.5cm),在设备后面 4cm。

  • 统一数据

    <PupilDiameter Value="0.00168019" Valid="True" />
    

    相关

    原始数据

    <Pupil PupilDiameter="1.68019100" Validity="Valid" />
    

    再次使用系数 1000

终于

统一数据

<GazeRayWorld Origin="(-0.40116220, 1.04663500, -0.38193990)" Direction="(0.24876200, 0.05519217, 0.96699090)" Valid="True" />

听起来它与 GazeOrigin 有关,但这次不是相对于 HDM,而是在世界坐标系中,其中 Direction 是世界 space 中的注视向量。意思是在世界坐标中,你正在向左看 25 厘米,向上 6 厘米,在位置 (-0.40116220, 1.04663500, -0.38193990) 前方 1 米处(听起来你坐着或者非常小;))在世界 space.