首页> 中国专利> 基于预测扫视着陆点的动态图形渲染

基于预测扫视着陆点的动态图形渲染

摘要

一种用于预测头戴式显示器(HMD)中的眼动的方法。所述方法包括利用布置在所述HMD中的视线跟踪系统在多个样本点处跟踪用户的眼睛的运动。所述方法包括基于所述眼睛的所述运动确定所述运动的速度。所述方法包括在所述速度达到阈值速度时确定所述用户的眼睛处于扫视状态。所述方法包括在所述HMD的显示器上预测与所述扫视的眼睛方向相对应的着陆点。

著录项

  • 公开/公告号CN112400150A

    专利类型发明专利

  • 公开/公告日2021-02-23

    原文格式PDF

  • 申请/专利权人 索尼互动娱乐股份有限公司;

    申请/专利号CN201980046481.0

  • 发明设计人 A.扬;J.费尔南德斯里科;

    申请日2019-05-07

  • 分类号G06F3/01(20060101);G06F3/03(20060101);G06N3/04(20060101);G02B27/00(20060101);H04N13/383(20060101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人张晓明

  • 地址 日本东京都

  • 入库时间 2023-06-19 09:57:26

说明书

技术领域

本公开涉及计算机生成的图像,并且更具体地涉及计算机生成的图形的实时渲染。

背景技术

在渲染管道中对虚拟现实(VR)场景进行计算机渲染需要中央处理单元(CPU)和图形处理单元(GPU)资源。尽管仅显示了宽观看范围的一小部分,但可以在该观看范围内渲染VR场景。另外,VR场景可能比传统场景更复杂,并且可能还需要更高的帧速率来进行图像处理以避免晕动病,所有这些都导致高功耗率。

为了节省功率,可以以比其他部分更高的分辨率呈现显示器的部分。例如,用户可能注视的屏幕部分可以以比用户未注视的其他部分(诸如外围的那些区域)更高的分辨率呈现。在外围中显示器的较低分辨率部分处进行的渲染可以节省处理资源,并且由于用户不关注外围,因此低分辨率不会降低用户的观看体验。然而,观看VR场景的用户的眼睛的运动可能比通过渲染管道更新帧更快。这样,因为眼睛比计算机渲染管道快,所以当用户运动到场景的之前可能在外围中的一部分时,该部分仍可能以低分辨率呈现,直到更新赶上眼动为止。这导致图像对用户来说是模糊的。

正是在这种背景下,出现了本公开的实施方案。

发明内容

本公开的实施方案涉及预测与观看头戴式显示器(HMD)的显示器的用户相关联的扫视(saccade)的着陆点。下文描述了本公开的若干发明实施方案。

在一个实施方案中,公开了一种用于预测HMD中的眼动的方法。所述方法包括利用布置在所述HMD中的视线跟踪系统在多个样本点处跟踪用户的眼睛的运动。所述方法包括基于所述眼睛的所述运动确定所述运动的速度。所述方法包括在所述速度达到阈值速度时确定所述用户的眼睛处于扫视状态。所述方法包括在所述HMD的显示器上预测与所述扫视的眼睛方向相对应的着陆点。

在另一个实施方案中,公开了一种用于预测与观看显示器的用户相关联的扫视的着陆点的方法。所述方法包括利用眼睛跟踪系统来跟踪用户的眼睛的运动。眼睛跟踪系统被配置为在多个样本点处收集眼睛在物理观看空间内的眼睛取向数据。在跟踪期间,用户的眼睛正在观看通过执行应用而生成并呈现在显示器上的视频帧序列。所述方法包括在第一样本点处识别用户的眼睛处于扫视状态。所述方法包括在扫视识别之后访问眼睛取向数据。眼睛取向数据对应于从眼睛跟踪系统收集的样本点集合,其中所述集合中的至少一个样本点出现在扫视期间。所述方法包括基于样本点集合的眼睛取向数据来预测扫视结束时眼睛在物理观看空间中的最终注视方向。

在另一个实施方案中,公开了一种非暂时性计算机可读介质,其存储用于预测HMD中的眼动的计算机程序。所述计算机可读介质包括用于利用布置在HMD中的视线跟踪系统在多个样本点处跟踪用户的眼睛的运动的程序指令。所述计算机可读介质包括用于基于眼睛的运动确定运动的速度的程序指令。所述计算机可读介质包括用于在速度达到阈值速度时确定用户的眼睛处于扫视状态的程序指令。所述计算机可读介质包括用于在HMD的显示器上预测与扫视的眼睛方向相对应的着陆点的程序指令。

在又一个实施方案中,公开了一种计算机系统,其具有处理器和耦接到处理器的存储器,所述存储器中存储有指令,所述指令如果由所述计算机系统执行则使所述计算机系统执行用于预测HMD中的眼动的方法。所述方法包括利用布置在所述HMD中的视线跟踪系统在多个样本点处跟踪用户的眼睛的运动。所述方法包括基于所述眼睛的所述运动确定所述运动的速度。所述方法包括在所述速度达到阈值速度时确定所述用户的眼睛处于扫视状态。所述方法包括在所述HMD的显示器上预测与所述扫视的眼睛方向相对应的着陆点。

从以下结合附图的详细描述中,本公开的其他方面将变得显而易见,附图以示例的方式示出了本公开的原理。

附图说明

通过结合附图参考以下描述,可以最好地理解本公开,在附图中:

图1A示出了根据本公开的一个实施方案的被配置用于提供与VR内容的交互式体验并且用于预测与观看HMD的显示器的用户相关联的扫视的着陆点的系统,其中可以通过手持式控制器提供一些输入控制,并且可以通过跟踪身体部位(如通过相机实现的)来管理一些输入控制。

图1B示出了根据本公开的一个实施方案的被配置用于提供与VR内容的交互式体验并且用于预测与观看HMD的显示器的用户相关联的扫视的着陆点的系统,其中可以通过手持式控制器提供一些用于编辑的输入控制,并且可以通过跟踪身体部位(如通过相机实现的)来管理一些输入控制,其中相机还跟踪HMD的运动,以用于对将数据传输到HMD的RF发射器进行波束跟踪的目的。

图1C示出了根据本公开的一个实施方案的被配置用于提供与VR内容的交互式体验并且用于预测与观看HMD的显示器的用户相关联的扫视的着陆点的系统,其中可以通过手持式控制器提供一些用于编辑的输入控制,并且可以通过对身体部位进行磁跟踪(如通过磁源部分地实现的)来管理一些输入控制。

图2概念性地示出了根据本公开实施方案的与执行视频游戏相结合并且用于提供用于编辑3D数字内容的3D编辑空间的HMD的功能。

图3A至图3C示出了根据一个实施方案的当朝着内表面看时一个示例显示器壳体的视图,面部被设计成与显示器壳体在所述内表面处相接触,所述视图示出了包括眼睛跟踪传感器的HMD的内部。

图4A示出了根据本公开的一个实施方案的被配置用于预测与观看HMD的显示器的用户相关联的扫视的着陆点的预测引擎。

图4B示出了根据本公开的一个实施方案的用于预测与观看HMD的显示器的用户相关联的扫视的着陆点的循环神经网络。

图4C示出了根据本公开的一个实施方案的用于为观看HMD中的VR场景的一个或多个用户构建扫视运动模型的示例神经网络。

图5A示出了根据本公开的一个实施方案的没有扫视预测的渲染管道,所述渲染管道示出了帧更新如何比眼动慢,使得在完成眼动之后图像对用户来说是模糊的。

图5B示出了根据本公开的一个实施方案的渲染管道的所得效果,所述渲染管道配置有对观看HMD的显示器的用户的眼动的扫视预测,使得在完成眼动之后,通过在渲染管道中推进对高分辨率的中央凹区域的更新使图像对用户来说是清晰的。

图6A示出了根据本公开的一个实施方案的观看HMD的显示器的用户的扫视的眼睛位移和速度。

图6B示出了根据本公开的一个实施方案的在观看HMD的显示器的用户的扫视的速度图中的各个样本点处的眼睛取向数据的采样。

图6C示出了根据本公开的一个实施方案的用于预测与观看HMD的显示器的用户相关联的扫视的着陆点的一个或多个样本点集合的眼睛取向数据的收集。

图6D示出了根据本公开的一个实施方案的表格,所述表格列出了用于预测与观看HMD的显示器的用户相关联的扫视的着陆点的样本点集合的眼睛取向数据。

图6E示出了根据本公开的一个实施方案的用于确定用户的眼睛的速度的视线方向向量。

图7是根据本公开的一个实施方案的示出用于预测与观看HMD的显示器的用户相关联的扫视的着陆点的方法中的步骤的流程图,并且包括使用来自在扫视期间收集的样本点集合的眼睛取向数据对与观看HMD的显示器的用户相关联的扫视的着陆点进行的多次预测的收敛。

图8示出了可用于执行本公开的各种实施方案的各方面的示例装置的部件图9是示出根据本公开的实施方案的示出头戴式显示器的部件的图。

图9是示出根据本公开的实施方案的示出头戴式显示器的部件的图。

图10是根据本公开的各种实施方案的游戏系统的框图。

具体实施方式

虽然出于说明目的,以下详细说明包含许多具体细节,但是本领域的普通技术人员将会了解,以下细节的许多变化和更改在本公开的范围内。因此,在阐明以下所描述的本公开的各个方面时,此描述的随附权利要求书的概括性没有任何损失,并且不对此权利要求书施加任何限制。

一般而言,本公开的各种实施方案描述了用于在显示器上预测在与观看HMD的显示器的用户关联定义的扫视期间和/或结束时与用户眼睛的视线方向相关联的着陆点的系统和方法。具体地,当用户的视线以正常方式从一个注视点运动到另一注视点时,可使用限定用户的眼动的扫视的所测量部分的速度图来预测整个扫视的特性。这样,可以基于速度分析来预测一个或多个眼睛方向,其中所述眼睛方向对应于显示器上的一个或多个着陆点。一旦知道了显示器的目标着陆点,就可以考虑目标着陆点来更新渲染的帧以在HMD上显示。例如,可以更新显示器的与目标着陆点之处或周围的区域相对应的中央凹区域,使得眼睛的运动与中央凹区域在目标着陆点处的显示一致。中央凹区域(例如,眼睛聚焦并指向的位置)以高分辨率渲染,而非中央凹区域(例如,外围)可以以较低分辨率渲染。

通过对各种实施方案的以上一般理解,现在将参考各种附图来描述实施方案的示例细节。

在整个说明书中,对“游戏应用”的引用旨在表示通过输入命令的执行而定向的任何类型的交互式应用。仅出于说明的目的,交互式应用包括用于游戏、文字处理、视频处理、视频游戏处理等的应用。此外,术语视频游戏和游戏应用是可互换的。

在整个说明书中,参考了用户的扫视。通常,扫视是指当从显示器上的一个注视点移动到另一注视点时用户的眼睛进行的快速且同时的运动。眼睛的扫视运动通常在特定方向上进行,而不必以旋转方式进行。扫视运动可能达到每秒900度以上的峰值角速度,并持续20毫秒(ms)至200ms之间的任何时间。扫视期间眼睛的角位移(度)可能会向上变化到大约90度,但超过20度至50度的位移可能会伴随头部运动。

图1A示出了根据本公开的实施方案的用于游戏应用的交互式玩游戏过程的系统。示出了佩戴HMD 102的用户100,其中HMD 102以类似于眼镜、护目镜或头盔的方式佩戴,并且被配置为向用户100显示来自交互式游戏应用的视频游戏或来自交互式应用的其他内容。HMD 102由于其紧邻用户的眼睛提供显示机构而向用户提供了极具沉浸感的体验。因此,HMD 102可以向用户的每只眼睛提供占据用户的大部分或者甚至整个视野的显示区域。

图1A中的系统被配置为在HMD 102的显示器上更新目标着陆点,使得用户眼睛的运动与中央凹区域在显示器上在更新后的目标着陆点处的呈现一致。特别地,可以单独或组合地在HMD 102、计算机106和云游戏服务器114中的一个或多个处执行着陆点的扫视预测。预测由包括深度学习引擎190的扫视预测引擎300执行,所述深度学习引擎被配置为执行以下两项中的一项或两项:通过训练而基于为测试对象测量的扫视(例如,眼睛取向数据或参数的收集)生成扫视模型;以及将用户的当前扫视的眼睛取向数据与训练后的扫视模型进行比较,以在显示器上预测在扫视期间和/或结束时与用户的视线方向相关联的着陆点。

在一个实施方案中,HMD 102可以连接到计算机或游戏控制台106。与计算机106的连接可以是有线的或无线的。在一些实现方式中,HMD 102还可以通过替代机制或信道(诸如经由HMD 102和计算机106两者连接到的网络112)与计算机进行通信。计算机106可以是所属领域已知的任何通用或专用计算机,包括但不限于游戏控制台、个人计算机、膝上型计算机、平板计算机、移动装置、蜂窝电话、平板、瘦客户端、机顶盒、流媒体装置等。在一个实施方案中,计算机106可以被配置为执行游戏应用并从游戏应用输出视频和音频以供HMD102渲染。计算机106不限于执行游戏应用,而是还可以被配置为执行交互式应用,所述交互式应用输出VR内容191以供HMD 102渲染。在一个实施方案中,计算机106被配置为在HMD的显示器上预测在与观看显示器的用户关联定义的扫视期间和/或结束时与用户眼睛的视线方向相关联的着陆点。在其他实施方案中,可以单独或组合地由HMD 102、计算机106和云游戏服务器114中的一个或多个来执行着陆点的预测。

用户100可以操作控制器104以提供用于游戏应用的输入。与计算机106的连接可以是有线的或无线的。另外,相机108可以被配置为捕获用户100所处的交互式环境的一个或多个图像。可以分析这些所捕获的图像以确定用户100、用户的各部位(例如,跟踪针对输入命令的手势)、HMD 102和控制器104的位置和运动。在一个实施方案中,控制器104包括可以被跟踪以确定其位置和取向的灯或其他标记元件。另外,HMD 102可以包括可以被跟踪以确定HMD 102的位置和取向的一个或多个灯。如由相机108部分地实现的跟踪功能提供了通过控制器104和/或用户100的身体部位(例如,手)的运动而生成的输入命令。相机108可以包括一个或多个传声器以从交互式环境捕获声音。可以处理由传声器阵列捕获的声音以识别声源的位置。可以选择性地利用或处理来自所识别的位置的声音,以排除并非来自所识别的位置的其他声音。此外,相机108可以被定义为包括多个图像捕获装置(例如,立体相机对)、IR相机、深度相机及其组合。

在另一个实施方案中,计算机106在通过网络与云游戏提供商112的通信中用作瘦客户端。云游戏提供商112维护并执行用户102正在玩的游戏应用。计算机106将来自HMD102、控制器104和相机108的输入传输到云游戏提供商,所述云游戏提供商处理这些输入以影响正在执行的游戏应用的游戏状态。来自正在执行的游戏应用的输出(诸如视频数据、音频数据和触觉反馈数据)被传输到计算机106。计算机106还可以在传输之前处理数据,或者可以将数据直接传输到相关装置。例如,视频和音频流被提供给HMD 102,而触觉反馈数据用于生成提供给控制器104的振动反馈命令。

在一个实施方案中,HMD 102、控制器104和相机108本身可以是连接到网络110以与云游戏提供商112通信的联网装置。例如,计算机106可以是诸如路由器的本地网络装置,所述本地网络装置不以其他方式执行视频游戏处理,但是有助于传递网络流量。HMD 102、控制器104和相机(例如,图像捕获装置)108与网络的连接可以是有线的或无线的。

在又一个实施方案中,计算机106可以执行游戏应用的一部分,而游戏应用的其余部分可以在云游戏提供商112上执行。在其他实施方案中,游戏应用的部分也可以在HMD102上执行。例如,云游戏提供商112可以服务于从计算机106下载游戏应用的请求。当请求被服务时,云游戏提供商112可以执行游戏应用的一部分,并将游戏内容提供给计算机106以在HMD 102上进行渲染。计算机106可以通过网络110与云游戏提供商112通信。从HMD102、控制器104和相机108接收的输入被传输到云游戏提供商112,而游戏应用正在下载到计算机106上。云游戏提供商112处理输入以影响正在执行的游戏应用的游戏状态。来自正在执行的游戏应用的输出(诸如视频数据、音频数据和触觉反馈数据)被传输到计算机106以转交到相应装置。

一旦游戏应用已经被完全下载到计算机106,计算机106就可以执行游戏应用,并从云游戏提供商112上被中断的地方恢复游戏应用的玩游戏过程。来自HMD 102、控制器104和相机108的输入由计算机106处理,并且响应于从HMD 102、控制器104和相机108接收的输入来调整游戏应用的游戏状态。在此类实施方案中,计算机106处的游戏应用的游戏状态与云游戏提供商112处的游戏状态同步。可以周期性地进行同步,以在计算机106和云游戏提供商112两者处保持游戏应用的状态为最新。计算机106可以将输出数据直接传输到相关装置。例如,视频和音频流被提供给HMD 102,而触觉反馈数据用于生成提供给控制器104的振动反馈命令。

图1B示出了根据本公开的一个实施方案的被配置用于提供与VR内容的交互式体验并且用于提供用于编辑3D数字内容的3D编辑空间的系统。另外,系统(例如,HMD 102、计算机106和/或云114)被配置为更新HMD 102的显示器上的目标着陆点,使得用户眼睛的运动与中央凹区域(高分辨率区域)在显示器上在更新后的目标着陆点处的呈现一致。图1B与图1A中描述的系统类似,其中添加了被配置用于例如经由RF信号将数据传递到HMD 102的发送器/接收器(收发器)110。收发器110被配置为(通过有线连接或无线连接)将视频和音频从游戏应用传输到HMD 102以在其上进行渲染。另外,收发器110被配置为出于编辑的目的在3D编辑空间内传输3D数字内容的图像、视频和音频。在该实现方式中,根据本公开的一个实施方案,相机108可以被配置为跟踪HMD 102的运动,使得收发器110可以将其大部分RF功率(如通过RF辐射模式所传递的)射束转向到HMD 102(例如,出于传递数据目的)。

图1C示出了根据本公开的一个实施方案的被配置用于提供与VR内容的交互式体验的系统。另外,系统(例如,HMD 102、计算机106和/或云114)被配置为更新HMD 102的显示器上的目标着陆点,使得用户眼睛的运动与中央凹区域(高分辨率区域)在显示器上在更新后的目标着陆点处的呈现一致。图1C与图1A中描述的系统类似,其中添加了被配置为发射磁场以使得能够对HMD 102、控制器104(例如,被配置为接口控制器)或配置有磁传感器(例如,位于诸如手指等身体部位上的手套、条带)的任何对象进行磁跟踪的磁源116。例如,磁传感器可以是电感元件。特别地,磁传感器可以被配置为检测由磁源116发射的磁场(例如,强度、取向)。从磁传感器收集的信息可用于确定和跟踪HMD 102、控制器104和其他接口对象等的位置和/或取向,以便提供在3D编辑空间内执行的输入命令。在实施方案中,磁跟踪与通过HMD 102、控制器104和/或其他接口对象内的相机108和/或惯性传感器执行的跟踪相结合。

在一些实现方式中,相对于HMD 102跟踪接口对象(例如,控制器104)。例如,HMD102可以包括面向外部的相机,所述面向外部的相机捕获包括接口对象的图像。在其他实施方案中,HMD 102可以包括用于跟踪诸如接口对象之类的外部对象的IR发射器。可以分析所捕获的图像以确定接口对象相对于HMD 102的位置/取向,并使用HMD 102的已知位置/取向来确定接口对象在本地环境中的位置/取向和/或运动。

用户100与在HMD 102中显示的游戏应用或3D编辑空间的虚拟现实场景对接的方式可以变化,并且除接口对象(例如,控制器104)之外还可以使用其他接口装置。例如,可以使用各种类型的单手以及双手控制器104。在一些实现方式中,可以通过跟踪控制器中所包括的灯或跟踪与控制器104相关联的形状、传感器和惯性数据来跟踪控制器104本身。使用这些各种类型的控制器104或者甚至仅仅使用由一个或多个相机和磁传感器做出和捕获的手势,可以对接、控制、操纵、交互并参与HMD 102上呈现的虚拟现实游戏环境。

图2概念性地示出了根据本公开的实施方案的与VR内容291的生成相结合的HMD102的功能(例如,执行应用和/或视频游戏等),其包括在HMD 102的显示器上更新目标着陆点,使得用户眼睛的运动与中央凹区域(例如,高分辨率区域)在显示器上在更新后的目标着陆点处的呈现一致。可以单独或组合地由HMD 102、计算机106和云游戏服务器114中的一个或多个来执行着陆点的扫视预测。在实施方案中,VR内容引擎220正在HMD 102上执行。在其他实施方案中,VR内容引擎220正在通信地耦接至HMD 102和/或与HMD 102组合的计算机106(未示出)上执行。计算机可以位于HMD本地(例如,局域网的一部分),或者可以位于远程(例如,广域网、云网络等的一部分),并经由网络访问。HMD 102与计算机106之间的通信可以遵循有线或无线连接协议。在示例中,执行应用的VR内容引擎220可以是执行游戏应用的视频游戏引擎,并且被配置为接收输入以更新游戏应用的游戏状态。图2的以下描述是为了简洁和清楚起见在执行游戏应用的VR内容引擎220的背景下描述的,并且旨在表示能够生成VR内容291的任何应用的执行。可以至少部分地通过视频游戏的各种参数的值来定义游戏应用的游戏状态,所述参数定义当前玩游戏过程的各个方面,诸如对象的存在和位置、虚拟环境的状况、事件的触发、用户配置文件、视图视角等。

在所示实施方案中,通过示例方式,VR内容引擎220接收控制器输入261、音频输入262和运动输入263。可以从与HMD 102分离的游戏控制器(诸如手持游戏控制器104(例如Sony

在所示实施方案中,视频渲染模块283被定义为渲染视频流以呈现在HMD 102上。

HMD 102中的光学器件270的镜片被配置用于观看VR内容291。显示屏904布置在光学器件270的镜片后面,使得当用户佩戴HMD 102时,光学器件270的镜片在显示屏904与用户的眼睛260之间。以此方式,视频流可以由显示屏/投影仪机构904呈现,并由用户的眼睛260通过光学器件270观看。例如,HMD用户可以选择通过佩戴HMD来与交互式VR内容291(例如,VR视频源、视频游戏内容等)进行交互,以用于在3D编辑空间中编辑3D数字内容的目的。来自视频游戏的交互式虚拟现实(VR)场景可以被渲染在HMD的显示屏904上。以此方式,在游戏开发期间,HMD 102允许用户编辑和查看交互式VR场景。同样,在玩游戏过程期间(包括审阅编辑),HMD通过在用户眼睛附近提供HMD的显示机构来允许用户完全沉浸在玩游戏过程中。在HMD的显示屏中定义的用于渲染内容的显示区域可以占据用户的大部分或者甚至整个视野。典型地,每只眼睛由正在观看一个或多个显示屏的光学器件270的相关联镜片支撑。

音频渲染模块282被配置为渲染音频流以供用户收听。在一个实施方案中,音频流通过与HMD 102相关联的扬声器152输出。应明了,扬声器152可以采取露天扬声器、耳机或能够呈现音频的任何其他种类的扬声器的形式。

在一个实施方案中,视线跟踪传感器265被包括在HMD 102中以使得能够跟踪用户的视线。尽管仅包括一个视线跟踪传感器265,但是应注意,可以采用一个以上视线跟踪传感器来跟踪用户的视线,如将相对于图3A至图3C所描述的。例如,在一些实施方案中,仅跟踪一只眼睛(例如,使用一个传感器),而在其他实施方案中,利用多个传感器跟踪两只眼睛。视线跟踪传感器265可以是相机、光学传感器、红外传感器、EMG(肌电图)传感器、光学反射器传感器、距离传感器以及光流传感器、多普勒传感器、传声器等中的一个或多个。通常,传感器265可以被配置为检测快速眼动,诸如眼动方向、加速度和速度的变化。例如,视线跟踪相机捕获用户眼睛的图像,所述图像被分析以确定用户的视线方向。在一个实施方案中,关于用户的视线方向的信息可以用于影响视频渲染。例如,如果确定用户的眼睛正在观看特定方向,则可以优先考虑或强调针对该方向的视频渲染。在本公开的实施方案中,视线方向和/或其他眼睛取向数据可以用于在HMD的显示器上预测在与观看显示器的用户关联定义的扫视期间和/或结束时与用户眼睛的对应视线方向相关联的着陆点。扫视预测可以由扫视预测引擎400执行,这将相对于图4A至图4C进一步描述。扫视预测引擎400还可与深度学习引擎190结合使用,所述深度学习引擎被配置为执行重复的和计算密集的操作。具体地,深度学习引擎190可以包括并执行扫视建模和扫视预测的功能,以用于更新HMD 102的显示器上的目标着陆点,使得用户眼睛的运动与中央凹区域(高分辨率区域)在显示器上在更新后的目标着陆点处的呈现一致。应明了,可以相对于头戴式显示器、相对于用户所处的真实环境和/或相对于头戴式显示器上渲染的虚拟环境来定义用户的视线方向。由于可以相对于HMD的屏幕定义视线方向,所以可以将视线方向转换为屏幕上的位置。该位置可以是以高分辨率为帧渲染的中央凹区域的中心。

广义地说,对由视线跟踪传感器265捕获的图像的分析在单独考虑时提供了用户相对于HMD 102的视线方向。然而,当与跟踪的HMD 102的位置和取向结合考虑时,也可以确定用户的真实世界视线方向,因为HMD 102的位置和取向与用户头部的位置和取向同义。也就是说,可以从跟踪用户眼睛的位置运动以及跟踪HMD 102的位置和取向来确定用户的真实世界视线方向。当在HMD 102上渲染虚拟环境的视图时,可以应用用户的真实世界视线方向以确定用户在虚拟环境中的虚拟世界视线方向。

另外,触觉反馈模块281被配置为向被包括在HMD 102或由HMD用户操作的另一装置(诸如控制器104)中的触觉反馈硬件提供信号。触觉反馈可以采取各种类型的触觉的形式,诸如振动反馈、温度反馈、压力反馈等。

图3A至图3C示出了根据一个实施方案的当朝着内表面看时一个示例显示器壳体的视图,面部被设计成与显示器壳体在所述内表面处相接触,所述视图示出了包括眼睛跟踪传感器的HMD的内部。

特别地,图3A示出了当朝着内表面看时示例显示器壳体102a的视图,面部被设计成与显示器壳体102a在所述内表面处相接触。如图所示,界面表面102e围绕显示器壳体102a,使得在佩戴时,显示器壳体102a基本上覆盖用户的眼睛和围绕眼睛的面部特征。这减少了进入用户正在通过光学器件102b观看的区域中的光,因此提供了对由HMD 102提供的虚拟现实场景的更真实的观看。当将显示器壳体102a放置在用户头部上时,用户的鼻子可滑入或放入鼻子插入区域102d内。鼻子插入区域102d是在光学器件102b之间、在显示器壳体102a的下部处的区域。

挡片102c被设计成当用户的鼻子至少部分地放置在鼻子插入区域102d中时而进行运动或弯曲。如图所示,接近传感器206被集成在显示器壳体102a内并且指向鼻子插入区域102d中的区域,以便当用户的鼻子至少部分地放置在鼻子插入区域102d内时捕获信息。挡片102c被设计成装配在用户的鼻子附近,并且当显示器壳体102a被放置在用户的面部上时,挡片有助于防止朝向光学器件102b和用户的眼睛透光。

同样在图3A中示出,接近传感器302被集成到显示器壳体102a的内表面中,并且位于光学器件102b之间。因此,接近传感器302的放置将与用户的前额隔开,用户的前额可能更靠近界面表面102e。然而,可以由接近传感器302感测HMD 102中用户面部的存在。另外,当佩戴HMD 102时,接近传感器302还可以感测关于用户面部的距离、纹理、图像和/或一般特性的信息。如上所述,接近传感器302可以由多个传感器限定,所述多个传感器可以集成在显示器壳体102a内的相同位置或不同位置。

还示出了视线检测传感器265,其可以被集成在显示器壳体102a的光学器件102b之间的位置中。视线检测传感器265被配置为当通过光学器件102b观看时监测用户眼睛的运动。视线检测传感器可用于识别用户在VR空间中观看的位置。在另外的实施方案中,如果使用视线检测传感器265监测用户的眼睛,则该信息可以用于用户的虚拟形象面部,使得虚拟形象面部具有与用户眼睛的运动相似地运动的眼睛。视线检测传感器265还可以用于监测用户何时可能正在经历晕动症。

视线检测器传感器265被配置用于捕获与眼睛取向相关的一个或多个参数。来自视线检测器传感器265的信息可用于基于眼睛瞳孔的取向来确定用户眼睛的视线方向(例如,角度θ),其中瞳孔是在眼睛中央的开口,允许光线进入并照射视网膜。视线检测器传感器265可以结合一个或多个光源(未示出)一起工作,所述一个或多个光源发射用于照亮眼睛的一种或多种波长的不可见光(例如,红外)的能量。例如,光源可以是将光能引向眼睛的发光二极管(LED)。视线检测器传感器265可以用于捕获眼睛的瞳孔、角膜和/或虹膜的反射,其中然后对所述反射进行分析(例如,通过HMD 102中的处理器、计算机106等)以确定瞳孔的视线方向和/或取向,所述视线方向和/或取向可转换为眼睛的视线方向。可以相对于HMD 102和/或真实世界空间参考视线方向(例如,角度θ)。可以实现各种已知技术来确定视线取向和/或方向,诸如亮瞳孔跟踪、暗瞳孔跟踪等。图4A中示出了包括一个或多个光源401和所示出的一个或多个视线检测传感器265的视线跟踪系统820,所述视线跟踪系统被配置用于捕获用于确定用户的瞳孔和/或眼睛的方向和/或取向的眼睛取向数据。

另外,可以基于视线方向确定附加信息。例如,可以确定眼动数据,诸如眼睛的速度和加速度。跟踪的眼睛的运动可以用于确定用户的扫视。来自传感器的信息也可以用于跟踪用户的头部。例如,信息可以响应于头部的位置、运动、取向、取向的改变。该信息可用于确定现实世界环境内的视线方向。

图3B至图3C还示出了HMD 102的不同透视图,其示出了视线方向传感器265的各种放置位置。例如,图3B是放置在光学器件102b的外部中以便捕获眼睛视线的视线检测传感器265a和265b的示例。图3C包括位于光学器件102b之间的视线检测传感器265x和265y,以便捕获眼睛视线。视线检测传感器的位置可以在显示器壳体102a内变化,并且通常被定位成提供指向用户眼睛的视图。提供这些图示以示出视线检测传感器可以灵活地定位在HMD102内的不同位置中。

图4A示出了根据本公开的一个实施方案的被配置用于预测与观看HMD的显示器的用户相关联的扫视的着陆点的预测引擎400。如前所述,预测引擎400可以位于HMD 102、计算机106和云游戏服务器114中的一个或多个处。

如图所示,视线跟踪系统820被配置用于确定用户的瞳孔和/或眼睛的视线方向和/或取向。视线方向可以相对于显示器,诸如HMD 102的显示器。如前所述,视线跟踪系统820包括一个或多个光源401和一个或多个视线检测传感器265。特别地,在一个或多个样本点处收集来自视线跟踪系统820的信息。例如,可以周期性地收集信息,其周期足以在扫视期间对眼睛进行一次或多次采样。例如,信息可以包括眼睛在特定时刻的视线方向。针对一个或多个样本点的信息被保留在存储装置806中供以后访问,包括针对当前样本点的信息。

另外,针对当前样本点的信息作为输入被传递到预测引擎400。更具体地,在一个实施方案中,Δθ速度生成器410分析来自当前样本点402的信息和来自先前样本点403的信息(从存储装置806传递或保留在生成器410可访问的缓冲器405中)以确定眼动的速度。这样,速度生成器410被配置为基于来自当前样本点402的信息和来自先前样本点403的信息来确定特定样本点的眼动的速度。例如,所述信息可以是特定时间处的视线方向。在另一个实施方案中,执行中心差分速度估计,而不是向后差分。以此方式,可以延迟检测并使用先前位置和下一位置来获得更平滑的速度估计。在执行扫视检测时,这可能有助于减少误报。

速度信息(例如,dθ/dt)被作为输入提供到扫视识别器420。速度生成器410可以采用各种技术来确定用户的眼动何时处于扫视状态。在一个实施方案中,当速度达到和/或超过阈值时,眼睛和/或眼睛的眼动处于扫视状态。选择阈值以避免可能不一定指示眼睛正在进行扫视的有噪声信息。例如,阈值高于通常在眼睛进行平滑追踪时(诸如在跟踪对象时)发现的速度。仅为了说明,扫视检测可以在10ms内执行。

如前所述,扫视定义了当从显示器上的一个注视点移动到另一注视点时用户的眼睛进行的快速且同时的运动。扫视运动可能达到每秒900度以上的峰值角速度,并持续20毫秒(ms)至200ms之间的任何时间。以120赫兹(Hz)的帧速率,扫视可能会持续2至25帧之间的任何时间。例如,HMD以90Hz或120Hz的速率刷新以使用户的不适感(例如,由于晕动病)最小化。

一旦确定眼睛和/或眼动处于扫视状态,则预测引擎400被配置为在显示器上确定用户的视线方向指向的着陆点。也就是说,在扫视期间的特定点(例如,中点、终点等)处,着陆点可以由预测引擎400确定,并且更具体地由深度学习引擎190确定,如图4B所示。特别地,样本集收集器430从样本点集合收集信息,以包括来自当前样本点402的信息。还可以确定从样本点集合确定的速度信息,使得可以为用户经历的扫视生成全速度图的至少一部分。包括速度图的一部分的信息被作为输入提供到深度学习引擎190,以确定着陆点。

例如,图4B示出了根据本公开的一个实施方案的作为深度学习引擎190的循环神经网络,所述循环神经网络用于预测与观看HMD的显示器的用户相关联的扫视的着陆点。循环神经网络包括长短期记忆(LSTM)模块440和全连接多层网络450(例如,多层感知机)。特别地,深度学习引擎190被配置为将输入信息451(例如,速度图的一部分等)与由深度学习引擎190生成和/或知道的扫视模型进行比较。例如,将被分析的扫视的一部分与从测试对象的多次扫视构建的速度图进行比较。在其他实施方案中,对神经网络的输入可以包括除了速度以外的信息,诸如每个样本点处的速度、每个样本点处的视线方向以及每个样本点处的时间。以此方式,可以基于由深度学习引擎190构建和/或知道的扫视模型,针对扫视期间的任何点确定显示器上与用户眼睛的方向相对应的着陆点。如图所示,深度学习引擎190的输出452包括向量(X

图4C示出了根据本公开的一个实施方案的示例神经网络,所述神经网络例如用于基于测试对象的所测量的扫视构建扫视模型和/或那些扫视模型的速度图,并且在HMD的显示器上执行着陆点的预测,其中着陆点在与观看(例如,HMD的)显示器的用户关联定义的扫视期间和/或结束时与用户的任一只眼睛的视线方向相关联。具体地,扫视预测引擎400中的深度学习或机器学习引擎190被配置为接收与用户的眼睛取向数据相关的信息(例如,视线方向、时间、扫视的速度图的一部分等)作为输入。如前所述,深度学习引擎190利用人工智能(包括深度学习算法、强化学习或其他基于人工智能的算法)来构建扫视模型,诸如那些扫视模型的速度图,以识别用户当前正在经历的扫视并预测在扫视期间的任何点处视线方向指向的位置。

也就是说,在学习和/或建模阶段期间,深度学习引擎190使用输入数据(例如,测试对象的扫视的测量值)来创建扫视模型(包括那些扫视模型的速度图),所述扫视模型可以用于预测用户的眼睛所指向的显示器的着陆点。例如,输入数据可以包括测试对象的扫视的多个测量值,当被馈入深度学习引擎190时,所述测量值被配置为创建一个或多个扫视模型,并且对于每个扫视模型,可以使用扫视识别算法来识别当前扫视何时与该扫视模型匹配。

特别地,神经网络190表示用于分析数据集以确定对应用户的响应、动作、行为、需要和/或需求的自动化分析工具的示例。不同类型的神经网络190是可能的。在示例中,神经网络190支持深度学习。因此,可以实现使用监督训练或无监督训练的深度神经网络、卷积深度神经网络和/或循环神经网络。在另一个示例中,神经网络190包括支持强化学习的深度学习网络。例如,神经网络190被设置为支持强化学习算法的马尔可夫决策过程(MDP)。

通常,神经网络190表示互连节点的网络,诸如人工神经网络。每个节点都从数据中学习一些信息。可以通过互连在节点之间交换知识。对神经网络190的输入激活了一组节点。反过来,该组节点激活其他节点,从而传播关于输入的知识。跨其他节点重复该激活过程,直到提供输出为止。

如图所示,神经网络190包括节点的层次结构。在最低层次级别,存在输入层191。输入层191包括一组输入节点。例如,在监测正在经历对应扫视的测试用户/对象(例如,眼睛取向数据)期间,这些输入节点中的每一个被映射到通过致动器主动地收集或由传感器被动地收集的本地数据115。

在最高层次级别上,存在输出层193。输出层193包括一组输出节点。输出节点表示与当前经历的扫视的信息相关的决策(例如,预测)。如前所述,输出节点可以将用户经历的扫视与先前建模的扫视进行匹配,并且还识别在扫视期间和/或结束时用户的视线方向指向的(例如,HMD的)显示器的预测着陆点。

可以将这些结果与从先前的交互和对测试对象的监测中获得的预定和真实结果进行比较,以细化和/或修改深度学习引擎190使用的参数,以针对给定的一组输入迭代地确定合适的扫视模型以及与扫视期间和/或结束时用户的视线方向相对应的显示器的预测着陆点。也就是说,神经网络190中的节点学习扫视模型的参数,在细化参数时可使用所述扫视模型做出此类决策。

特别地,在输入层191与输出层193之间存在隐藏层192。隐藏层192包括“N”个隐藏层,其中“N”是大于或等于1的整数。反过来,每个隐藏层也包括一组隐藏节点。输入节点互连到隐藏节点。同样,隐藏节点互连到输出节点,使得输入节点不直接互连到输出节点。如果存在多个隐藏层,则输入节点互连到最低隐藏层的隐藏节点。反过来,这些隐藏节点互连到下一隐藏层的隐藏节点,依此类推。下一最高隐藏层的隐藏节点互连到输出节点。互连连接两个节点。互连具有可以学习的数值权重,使得神经网络190适应于输入并且能够学习。

通常,隐藏层192允许关于输入节点的知识在与输出节点相对应的所有任务之间共享。为此,在一个实现方式中,变换f通过隐藏层192应用于输入节点。在一个示例中,变换f是非线性的。可以使用不同的非线性变换f,包括例如线性整流函数f(x)=max(0,x)。

神经网络190还使用成本函数c来找到最优解。成本函数测量由神经网络190输出的预测(对于给定输入x,定义为f(x))与基础真值(ground truth)或目标值y(例如,预期结果)之间的偏差。最优解表示其中没有解的成本低于最优解的成本这一情况。对于可获得此类基础真值标签的数据,成本函数的示例是预测与基础真值之间的均方误差。在学习过程期间,神经网络190可以使用反向传播算法以采用不同的优化方法来学习使成本函数最小化的模型参数(例如,隐藏层192中的节点之间的互连的权重)。这种优化方法的一个示例是随机梯度下降。

在一个示例中,用于神经网络190的训练数据集可以来自相同的数据域。例如,对神经网络190进行训练以基于给定的一组输入或输入数据来学习测试对象的相似扫视的模式和/或特性。例如,数据域包括眼睛取向数据。在另一个示例中,训练数据集来自不同的数据域,以包括除基线以外的输入数据。这样,神经网络190可以使用眼睛取向数据来识别扫视,或者可以被配置为基于眼睛取向数据为给定扫视生成扫视模型。

图5A示出了根据本公开的一个实施方案的没有扫视预测的渲染管道501,所述渲染管道示出了帧更新如何比眼动慢,使得在完成眼动之后图像对用户来说是模糊的。如先前所描述,可以单独或组合地在HMD 102、计算机106和云游戏服务器114内实现渲染管道501。

尽管在图5A中示出了未启用着陆点预测的渲染管道501,但是应理解,在本公开的实施方案中,可以优化渲染管道501以分析视线跟踪信息,以便识别扫视和眼动,并在(例如,HMD 102的)显示器上预测在扫视期间和/或结束时用户的眼睛260的视线方向指向的着陆点(例如,打开),如图5B所示。也就是说,在图5B中,渲染管道501可以被配置为基于着陆点的预测来执行中央凹渲染,如以下将关于图5B进一步描述的。

特别地,渲染管道包括中央处理单元(CPU)802、图形处理单元(GPU)816和两者均可访问的存储器(例如,顶点缓冲器、索引缓冲器、深度或Z缓冲器、用于存储所渲染帧以传递到显示器的帧缓冲器等)。渲染管道(或图形管道)说明了渲染图像的一般过程,诸如在使用3D(三维)多边形渲染过程时。例如,针对所渲染图像的渲染管道501为显示器中的每个像素输出对应颜色信息,其中颜色信息可以表示纹理和着色(例如,颜色、阴影等)。

CPU 802通常可以被配置为执行对象动画。CPU 802接收与3D虚拟环境内的对象相对应的输入几何形状。输入几何形状可以表示为3D虚拟环境内的顶点,以及与每个顶点相对应的信息。例如,可以将3D虚拟环境内的对象表示为由顶点定义的多边形(例如,三角形),其中然后通过渲染管道501处理对应多边形的表面以达到最终效果(例如,颜色、纹理等)。CPU 802的操作是众所周知的,并且在本文中进行了总体描述。通常,CPU 802实现一个或多个着色器(例如,计算、顶点等)以根据施加到对象上和/或由对象施加的力(例如,诸如重力的外力,以及引起运动的对象的内力)来逐帧执行对象动画。例如,CPU 802在3D虚拟环境中执行对象的物理模拟和/或其他功能。然后,CPU 802发布由GPU 816执行的针对多边形顶点的绘制命令。

特别地,由CPU 802生成的动画结果可以存储到顶点缓冲器,然后被GPU 816访问,所述GPU被配置为执行多边形顶点到(例如,HMD的)显示器上的投影以及所投影多边形的镶嵌以用于渲染多边形顶点的目的。也就是说,GPU 816可以被配置为进一步构建构成3D虚拟环境内的对象的多边形和/或图元,以包括执行针对多边形的照明、阴影和着色计算,这取决于场景的照明。可以执行附加操作,诸如裁剪以识别和忽略视锥之外的图元,以及栅格化以将场景中的对象投影到显示器上(例如,将对象投影到与用户的视点相关联的图像平面)。在简化级别上,栅格化包括查看每个图元,并确定哪些像素受该图元影响。图元的片段化可以用于将图元分解为像素大小的片段,其中每个片段对应于显示器中的像素和/或与渲染视点相关联的参考平面。当在显示器上渲染帧时,一个或多个图元的一个或多个片段可能有助于像素的颜色。例如,对于给定的像素,将3D虚拟环境中所有图元的片段组合到显示器的像素中。也就是说,将对应像素的整体纹理和着色信息进行组合以输出像素的最终颜色值。这些颜色值可以存储在帧缓冲器中,当在逐帧的基础上显示场景的对应图像时,这些颜色值被扫描到对应像素。

渲染管道501可以包括视线跟踪系统820,其被配置为向CPU 802提供视线方向和/或取向信息。该视线方向信息可以用于执行中央凹渲染的目的,其中中央凹区域以高分辨率进行渲染并且对应于用户注视的方向。图5A示出了被配置用于中央凹渲染但没有扫视预测(即,扫视预测被关闭)的渲染管道501。也就是说,不执行着陆点预测,结果,在HMD上显示的帧具有与用户的眼动不一致的中央凹区域,因为每个计算出的中央凹区域在显示时都是过时的,尤其是在眼动时。另外,图5A示出了时间线520,所述时间线指示从渲染管道501中扫描输出序列中的帧(例如,F1至F8)的时间。帧F1至F8的序列也是观看显示器的用户的扫视的一部分。

如图5A所示,渲染管道示出为包括视线跟踪系统820、CPU 802、GPU 816和栅格引擎依次执行的操作,所述栅格引擎用于将所渲染帧扫描输出到显示器810。为了说明,示出了渲染管道序列591至595。由于空间限制,未示出其他管道序列,诸如帧F3至F22的序列。在如图5A所示的示例中,渲染管道501的每个部件以相同的频率操作。例如,视线跟踪系统820可以以120Hz输出视线方向和/或取向信息,所述频率可以与CPU 802和GPU 816的渲染管道使用的频率相同。这样,可以针对在渲染管道中扫描输出的每一帧来更新用户眼睛260的视线方向。在其他实施方案中,视线跟踪系统820不以相同的频率操作,使得视线方向信息可能不与正被扫描输出的所渲染帧对齐。在那种情况下,如果视线跟踪系统820的频率比CPU802和GPU 816所使用的频率慢,则视线方向信息可增加进一步的延迟。

视线跟踪信息可以用于确定以高分辨率渲染的中央凹区域。中央凹区域以外的区域以较低的分辨率显示。然而,如图5A所示,在没有扫视预测的情况下,等到使用视线跟踪信息来确定要扫描输出的帧时,已经过去了至少2个帧周期,并且最多三个帧周期,在这之后,使用视线跟踪信息的对应帧才被显示。例如,在渲染管道序列591中,视线跟踪信息在时间t-20(扫视的中点)处的第一帧周期中被确定,并且被传递到CPU 802。在时间t-21处的第二帧周期中,CPU 802对对象执行物理模拟,并将多边形图元与绘制指令一起传递给GPU816。在时间t-23处的第三帧周期中,GPU执行图元组装以生成所渲染帧(F23)。另外,GPU可以渲染与在时间t-20处的在第一帧周期中传递的视线方向相对应的中央凹区域,所述中央凹区域是在至少两个帧周期之前确定的。在时间t-23处的第四帧周期中扫描输出包括所述中央凹区域的帧F23。值得注意的是,在渲染管道序列591中,在时间t-20处确定的视线跟踪信息过时至少t-21和t-22处的帧周期(两个帧周期),以及可能第三帧周期的一部分。类似地,管道序列592在时间t-24处扫描输出帧F24,其中具有前面在时间t-21处的第一帧周期中定义的中央凹区域。同样,管道序列593在时间t-25处扫描输出帧F25,其中具有前面在时间t-22处的第一帧周期中定义的中央凹区域。此外,管道序列594在时间t-26处扫描输出帧F26,其中具有前面在时间t-23处的第一帧周期中定义的中央凹区域。并且,管道序列595在时间t-27处扫描输出帧F27,其中具有前面在时间t-24处的第一帧周期中定义的中央凹区域。

因为眼睛260持续运动经过为每个渲染管道检测到的点(例如,时间)(例如,在渲染管道序列591、或592或593等的开始处),所以所扫描的对应渲染管道序列(例如,序列595)的帧(例如,帧F27)中的中央凹区域可能过时至少2至3个帧周期。例如,在扫描输出时的所渲染帧F27将具有与用户的视线方向不一致的中央凹区域。具体地,所示显示器810示出了在时间t-27处的帧F27,其中扫视路径510(在帧F0与F27之间)被叠加到显示器810上并且示出了对应于扫视的开始的注视点A(例如,方向506和向量XF-

再者,因为不存在由渲染管道501执行的对扫视路径的预测,所以由视线跟踪系统820提供的视线方向信息过时了至少两个或三个帧周期。这样,当在时间t-27处为渲染管道序列595扫描输出帧F27时,尽管眼睛260注视在注视点B(眼睛方向507和向量X

图5B示出了根据本公开的一个实施方案的渲染管道的所得效果,所述渲染管道配置有对观看HMD的显示器的用户的眼动的扫视预测,使得在完成眼动之后,通过在渲染管道中推进对高分辨率的中央凹区域的更新使图像对用户来说是清晰的。例如,图5A中所示的渲染管道501现在启用了扫视预测,更具体地说是启用了着陆点预测。也就是说,渲染管道501现在被优化以分析视线跟踪信息,以便识别扫视和眼动,并且在(例如,HMD 102的)显示器上预测在扫视期间和/或结束时用户的眼睛260的视线方向指向的着陆点(例如,打开)。这样,在图5B中,现在将渲染管道501配置为基于着陆点的预测来执行中央凹渲染。仅出于说明目的,图5B示出了在一个实施方案中在扫视510结束时对着陆点的预测,但在其他实施方案中,在扫视期间预测着陆点是可能的(例如,预测着陆点超出当前样本点3至5个帧周期)。

特别地,示出了显示器810在时间t-27处呈现帧F27。扫视路径510叠加在显示器810上,并且示出了对应于扫视的开始的注视点A(例如,方向506和向量X

当扫描输出每一帧时,在渲染管道501内执行扫视预测。在一个实施方案中,扫视预测和/或着陆点预测可以在CPU 802、GPU 816或两者的组合内执行。在另一个实施方案中,扫视预测是远程执行的,并作为输入传递到渲染管道501中。一旦执行了预测,GPU 816就可以基于着陆点预测来渲染具有中央凹区域的帧。特别地,GPU 816可以修改中央凹渲染,使得代替如先前在图5A中描述的依赖于过时视线方向信息,使用预测着陆点来确定中央凹区域的位置。

特别地,将注视点B的预测着陆点叠加到显示器810上。这些着陆点是在先前的渲染管道序列中确定的。特别地,等到帧F8和后续帧被扫描输出时,扫视的预测着陆点已经收敛到例如注视点B。如图所示,在检测到扫视之后的某个时刻(例如,在时间t-5处扫描输出帧F5期间),执行了预测。例如,可以从帧F5和后续帧的渲染开始执行预测。扫视510先前在图5A中介绍过,并且包括作为起点的注视点A,以及注视点B(例如,作为终点或扫视内的预定义点,诸如将来的3至5个帧周期)。

当扫描输出帧F5时,预测着陆点(例如,以向量X

图6A示出了根据本公开的一个实施方案的示出观看HMD的显示器的用户的扫视的眼睛位移和速度的图600A。图600A包括示出在扫视期间眼动的角速度(dθ/dt)的垂直轴610A。另外,图600A包括示出角位移(θ)的另一垂直轴610B。图600A包括示出时间的水平轴615,并且包括在时间t-0与大约t-27和/或t-28之间的扫视的时间序列。

仅为了说明,图600A在线630中示出了扫视的角位移。如先前所介绍的,扫视定义了当从显示器上的一个注视点移动到另一注视点时用户的眼睛进行的快速且同时的运动。如图所示,如眼睛的位移线630所示的角运动是在特定方向上的(例如,从左到右)。也就是说,在图600A的示例中,在扫视期间,眼睛的视线方向在0度至30度之间运动。

相应地,仅为了说明,图600A在线620中示出了扫视期间的眼睛速度。不同扫视的速度图通常遵循线620中所示的相同形状。例如,在扫视开始时,扫视速度遵循线性进展(例如,在时间t-0与t-8之间)。在线性进展之后,速度可能会趋于平稳,诸如在时间t-8与t-17之间。线620中的速度图示出了在趋于平稳之后直到扫视结束为止(诸如在时间t-17与t-27之间)的速度的急剧下降。

本公开的实施方案将当前扫视的速度图的一部分(例如,线620的线性部分)与经建模扫视(例如,在训练深度学习引擎190时构建的)进行匹配。当前扫视的着陆点可以在扫视期间的任何点近似于经建模扫视的着陆点,并且可以针对当前扫视进行预测。

图6B示出了根据本公开的一个实施方案的在观看HMD的显示器的用户的扫视的速度图600B中的各个样本点处的眼睛取向/跟踪数据的采样。图600B遵循图6A的图600A,其包括示出扫视期间眼动的角速度(dθ/dt)的垂直轴610A、以及水平轴615,但是被剔出而仅在线620中示出扫视的速度。

特别地,在扫视期间的各个样本点处,从视线跟踪系统820收集眼睛取向/跟踪数据。仅出于说明目的,样本点可能至少出现在时间t-0、t-1、t-2、......、t-27、......、t-n处。例如,在线620上示出的样本点S

这样,在由速度线620指示的扫视期间,收集和/或确定针对至少样本点S

图6C示出了根据本公开的一个实施方案的用于预测与观看HMD的显示器的用户的眼睛260相关联的扫视的着陆点的一个或多个样本点集合的眼睛取向/跟踪数据的收集。图6C示出了使用在图6B的图600B中介绍的样本点处的信息来预测用户眼睛的扫视的着陆点。

如图所示,眼睛取向/跟踪数据是由眼睛260上的视线跟踪系统820在多个样本点650处(例如,在时间t-1至t-27中的每一者处的S

特别地,从每个样本点650的眼睛取向/跟踪数据收集和/或确定速度数据。突出显示样本点的圆圈640被放大示出,并且至少包括样本点S

出于预测目的,一旦识别出用户的眼睛处于扫视状态,便收集来自样本点集合的信息。出于说明目的,扫视识别可以发生在与样本点S

在扫视识别之后,执行对预定义着陆点的预测。具体地,对来自样本点集合的信息进行识别。至少,所述信息包括所测量和/或计算的角速度。所述集合可以包含预定义数量的样本点,包括当前样本点。例如,所述集合可以包含1至10个样本点。在一个实施方案中,所述集合可以包含3至5个样本点以减少误差。

出于说明目的,所述集合可以包含4个样本点,包括当前样本点,如图6C中所描述。示出了从样本点集合中收集信息的滑动窗口。例如,在对应于当前样本点S

先前相对于图5B描述了收敛。收敛的确认可以与对着陆点的后续预测一起发生,诸如对于窗口w5、......、w27。在一个实施方案中,一旦确认收敛,就可以禁用预测。

图6D示出了根据本公开的一个实施方案的表格600D,所述表格列出了用于预测与观看HMD的显示器的用户相关联的扫视的着陆点(例如,扫视结束点)的样本点集合的眼睛取向数据。图6D与图5B对齐,示出了在注视点B处的预测着陆点的预测和收敛。

特别地,列661示出了窗口名称(例如,w1至w5);列662示出了样本点集合;列663示出了与扫视的结束一致的预测着陆点,其中角位移参考了在注视点A处的扫视的起点;并且列664示出了预测扫视结束时间(例如,由帧或帧周期表示),其中预测结束时间参考了在注视点A处的扫视的开始时间。

例如,窗口w1使用来自包括样本点S

而且,窗口w2使用来自包括样本点S

窗口w3使用来自包括样本点S

窗口w4和w5示出了预测着陆点(例如,扫视结束点)的收敛。也就是说,与这些窗口相关联的预测示出了(例如,从注视点A)30度的着陆点。例如,窗口(w4)使用样本点S

通过对游戏控制台、HMD和云游戏服务器的各个模块的详细描述,现在根据本公开的一个实施方案相对于图7的流程图700描述用于在(例如,HMD的)显示器上预测与经历扫视的用户的眼睛的视线方向相关联的着陆点的方法,其中着陆点可以出现在扫视期间或结束时的任何点处。如前所述,流程图700示出了用于在HMD、游戏控制台和云游戏服务器中的一个或多个处预测着陆点所涉及的操作的过程和数据流。特别地,流程图300的方法可以至少部分地由图1A至图1C、图2和图4A至4C的扫视预测引擎400执行。

在710处,所述方法包括利用布置在HMD中的视线跟踪系统在多个样本点处跟踪用户的至少一只眼睛的运动。例如,可以收集眼睛取向/跟踪数据,以至少包括视线方向。例如,根据本公开的一个实施方案,可以在图6E中在t0至t5的各个时间处示出视线方向。在图6E中,在时间t0处,视线方向由向量X

在720处,所述方法包括基于跟踪确定运动的速度。如图6E所示的视线方向向量可用于确定用户眼睛的速度。也就是说,可以基于来自两个样本点的第一眼睛或视线方向和第二眼睛或视线方向来确定眼睛的速度。特别地,两个样本点之间的视线方向、两个视线方向之间的角度以及两个样本点之间的时间可以用于确定两个样本点之间的速度。例如,可以使用多种技术中的一种(包括以下等式中定义的三角函数)来确定两个样本点之间的角度(θ)。作为说明,在一个实施方案中,使用以下等式(1)来确定在时间t

等式1给出了在时间t

速度(每秒度数)=θ/(t

这样,可以使用向量X

在一个实施方案中,在730处,所述方法包括在速度达到阈值速度时确定用户的眼睛处于扫视状态。在其他实施方案中,可以使用其他方法来确定用户的眼睛处于扫视状态。如前所述,阈值速度是预定义的,以避免在眼睛可能正在经历另一种类型的运动(例如,平滑追踪)时或在数据有噪声时识别扫视。

在740处,所述方法包括在HMD的显示器上预测与扫视的眼睛方向相对应的着陆点。在一个实施方案中,所述方向对应于眼睛的视线方向。由于可以相对于HMD的屏幕定义视线方向,所以可以将视线方向转换为屏幕上的位置,其中所述位置是着陆点。着陆点可以用作以高分辨率为帧渲染的中央凹区域的中心。在一个实施方案中,着陆点可以出现在扫视期间的任何点处,以包括与眼睛的中间方向相对应的扫视的中点。例如,在一个实施方案中,着陆点可以出现在超出当前帧周期预定义数量的帧周期。在另一个实施方案中,着陆点可以出现在扫视结束时并且对应于眼睛的注视方向。

着陆点的预测可以包括:当针对样本点集合跟踪眼睛的运动时,收集眼睛取向/跟踪数据。也就是说,使用来自样本点集合的信息预测着陆点。眼睛取向/跟踪数据至少包括相对于HMD的眼睛和/或视线方向,其中所述集合的至少一个样本点出现在扫视期间。如先前所述,可以从眼睛取向/跟踪数据确定速度信息,其中速度数据也可以用于预测着陆点。另外,样本点集合的眼睛取向/跟踪数据被作为输入提供到循环神经网络(例如,深度学习引擎)。例如,基于测试对象的多次扫视的先前所测量的眼睛取向数据来训练神经网络。在一个实施方案中,循环神经网络包括长短期记忆神经网络和全连接多层感知机网络。循环神经网络可以被配置为将从样本点集合的眼睛取向数据构建的眼睛速度图的一部分与从测试对象的多次扫视构建的眼睛速度图进行比较。可以利用循环神经网络中的训练后的扫视来进行用户的扫视的眼睛速度图的各部分之间的匹配。一旦进行匹配,用户的扫视的一个或多个预测着陆点可以近似于训练后的扫视的一个或多个着陆点。这样,可以使用循环神经网络使用来自样本点集合的信息来预测扫视的着陆点(例如,扫视结束点、或扫视期间的中间点)。

另外,可以使用不同的样本点集合数据利用后续预测来更新着陆点的预测。例如,在741处与第一当前样本点相关联地预测第一着陆点。对第一着陆点的预测是基于包括第一样本点和至少一个先前样本点的第一样本点集合的眼睛取向数据。眼睛取向数据包括相对于HMD的眼睛和/或视线方向。在742处,与扫视中第一样本点之后的第二当前样本点相关联地执行更新后的预测。着陆点的更新包括基于包括第二样本点和至少一个先前样本点(例如,第一样本点)的第二样本点集合的眼睛取向数据预测第二着陆点。

在决策步骤743处,所述方法确定是否存在预测着陆点的收敛。例如,当两个预测着陆点在阈值测量值(例如,显示器上两个预测着陆点之间的增量距离)之内时,可能会出现收敛。在一个实施方案中,当两个预测着陆点相同时,会出现收敛。

如果没有收敛,则所述方法进行到744,其中执行另一预测。特别地,在先前样本点之后的下一样本点处,基于来自下一样本点和至少一个先前样本点的眼睛取向/跟踪数据预测下一着陆点。所述方法返回到决策步骤743以确定是否存在收敛。

另一方面,如果存在收敛,则所述方法进行到745,其中选择最后一个预测着陆点作为扫视预测的着陆点。也就是说,由于收敛,因此使用最后计算出的着陆点作为预测着陆点。

在一个实施方案中,可以基于预测着陆点来执行中央凹渲染。例如,可以渲染第一视频帧以进行显示,其中第一视频帧包括以显示器上的预测着陆点为中心的中央凹区域。可以以高分辨率渲染中央凹区域。另外,显示器的非中央凹区域包括显示器的其余部分,并以较低的分辨率渲染。此外,将具有中央凹区域的第一视频帧呈现在HMD的显示器上,其中在显示第一视频帧时,预测眼睛的取向朝向着陆点(即,对应于中央凹区域)。

在另一个实施方案中,当对帧进行渲染以在HMD上显示时,可以采取附加措施来减少功耗。特别地,在扫视期间,用户可能无法观看渲染和显示的中间帧,因为眼动可能太快。这样,可以终止中间视频帧中的至少一个的渲染,以节省否则将用于渲染的计算资源。也就是说,所述方法包括终止在扫视期间的要在第一视频帧之前渲染的至少一个视频帧的渲染。

在又一个实施方案中,当对帧进行渲染以在HMD上显示时,可以采取另一种措施来减少功耗。特别地,由于用户可能无法查看在扫视期间渲染和显示的中间帧,因此整个视频帧可能以较低分辨率或低分辨率进行渲染。也就是说,没有为该帧渲染中央凹区域。换句话说,所述方法包括以低分辨率渲染在扫视期间的要在第一视频帧之前渲染的至少一个视频帧。

图8示出了可以用于执行本公开的各种实施方案的各方面的示例装置800的部件。例如,图8示出了根据一个实施方案的适合于实现一种装置的示例性硬件系统,所述装置被配置用于预测和更新显示器上的目标着陆点,使得用户眼睛的运动与中央凹区域在显示器上的更新后的目标着陆点处的呈现一致。一般地描述了示例装置800,因为可以在HMD以及更传统的显示器的背景下执行着陆点的预测。该框图示出了可以结合或可以是适合于实践本公开的实施方案的个人计算机、视频游戏控制台、个人数字助理或其他数字装置的装置800。装置800包括用于运行软件应用和任选地操作系统的中央处理单元(CPU)802。CPU 802可包括一个或多个同构型或异构型处理核心。例如,CPU 802是具有一个或多个处理核心的一个或多个通用微处理器。可以使用具有微处理器体系结构的一个或多个CPU来实现其他实施方案,所述微处理器体系结构特别适合于高度并行和计算密集的应用,诸如媒体和交互式娱乐应用、或者被配置用于提供在显示器上预测在与观看显示器的用户关联定义的扫视期间和/或结束时与用户眼睛的视线方向相关联的着陆点的应用,如前所述。

存储器804存储供CPU 802使用的应用和数据。存储装置806为应用和数据提供非易失性存储和其他计算机可读介质,并且可包括固定磁盘驱动器、可移动磁盘驱动器、快闪存储器装置、及CD-ROM、DVD-ROM、蓝光光盘、HD-DVD或其他光学存储装置,以及信号传输和存储介质。用户输入装置808将用户输入从一个或多个用户传送至装置800,用户输入装置的示例可包括键盘、鼠标、操纵杆、触摸板、触摸屏、静态或视频录像机/相机、用于识别手势的跟踪装置和/或传声器。网络接口814允许装置800经由电子通信网络与其他计算机系统通信,并且可包括在局域网和诸如互联网的广域网上的有线或无线通信。音频处理器812适于从由CPU 802、存储器804和/或存储装置806提供的指令和/或数据生成模拟或数字音频输出。装置800的部件,包括CPU 802、存储器804、数据存储装置806、用户输入装置808、网络接口810和音频处理器812,经由一个或多个数据总线822连接。

图形子系统814还与数据总线822和装置800的部件连接。图形子系统814包括图形处理单元(GPU)816和图形存储器818。图形存储器818包括用于存储输出图像的每个像素的像素数据的显示存储器(例如帧缓冲器)。图形存储器818可以与GPU 816集成在同一装置中、作为单独的装置与GPU 816连接和/或在存储器804内实现。像素数据可以直接从CPU802被提供给图形存储器818。可替代地,CPU 802为GPU 816提供限定期望的输出图像的数据和/或指令,GPU 816从所述数据和/或指令生成一个或多个输出图像的像素数据。限定期望的输出图像的数据和/或指令可以存储在存储器804和/或图形存储器818中。在实施方案中,GPU 816包括用于从指令和数据生成输出图像的像素数据的3D渲染能力,所述指令和数据限定场景的几何形状、照明、着色、纹理、运动和/或相机参数。GPU 816还可以包括能够执行着色器程序的一个或多个可编程执行单元。

图形子系统814从图形存储器818周期性地输出图像的像素数据,以显示在显示装置810上或由投影系统840投影。显示装置810可以是能够响应于来自装置800的信号来显示视觉信息的任何装置,包括CRT、LCD、等离子体和OLED显示器。例如,装置800可以向显示装置810提供模拟或数字信号。

另外,装置800包括视线跟踪系统820,所述视线跟踪系统包括视线跟踪传感器265和光源(例如,发射不可见的红外光),如前所述。

应理解,本文描述的实施方案可以在任何类型的客户端装置上执行。在一些实施方案中,客户端装置是头戴式显示器(HMD)或投影系统。图9是示出根据本公开的实施方案的示出头戴式显示器102的部件的图。HMD 102可以被配置为在HMD的显示器上预测在与观看显示器的用户关联定义的扫视期间和/或结束时与用户眼睛的视线方向相关联的着陆点。

头戴式显示器102包括用于执行程序指令的处理器900。存储器902被提供用于存储目的,并且可以包括易失性和非易失性存储器两者。包括显示器904,所述显示器提供用户可以观看的视觉界面。电池906被提供作为头戴式显示器102的电源。运动检测模块908可以包括各种类型的运动敏感型硬件中的任一者,诸如磁力计910A、加速度计912和陀螺仪914。

加速度计是用于测量加速度和重力感应反作用力的装置。单轴和多轴模型可以用于检测不同方向上的加速度的量值和方向。加速度计用于感测倾斜度、振动和冲击。在一个实施方案中,使用三个加速度计912来提供重力方向,所述重力方向给出两个角度(世界空间俯仰角和世界空间滚转角)的绝对基准。

磁力计测量头戴式显示器附近磁场的强度和方向。在一个实施方案中,在头戴式显示器内使用三个磁力计910A,从而确保世界空间偏航角的绝对基准。在一个实施方案中,磁力计被设计为跨越±80微特斯拉的地球磁场。磁力计受金属影响,并且提供随实际偏航角单调变化的偏航角测量结果。磁场可能由于环境中的金属而扭曲,这导致偏航角测量结果的扭曲。如有必要,可以使用来自诸如陀螺仪或相机之类的其他传感器的信息来校准这种扭曲。在一个实施方案中,加速度计912与磁力计910A一起用于获得头戴式显示器102的倾斜度和方位角。

陀螺仪是用于基于角动量原理来测量或维持取向的装置。在一个实施方案中,三个陀螺仪914基于惯性感测提供关于跨相应轴(x、y和z)的运动的信息。陀螺仪有助于检测快速旋转。然而,陀螺仪可以在没有绝对基准的情况下随时间漂移。这需要周期性地重置陀螺仪,这可以使用其他可用信息来完成,诸如基于对象的视觉跟踪、加速度计、磁力计等进行的位置/取向确定。

提供相机916以用于捕获真实环境的图像和图像流。头戴式显示器102中可以包括一个以上相机,包括朝后的相机(当用户正在观看头戴式显示器102的显示器时远离用户指向的相机),以及朝前的相机(当用户正在观看头戴式显示器102的显示器时朝向用户指向的相机)。另外,深度相机918可以被包括在头戴式显示器102中以用于感测真实环境中的对象的深度信息。

在一个实施方案中,集成在HMD的正面上的相机可以用于提供关于安全的警告。例如,如果用户正在接近墙壁或物体,则可以警告用户。在一个实施方案中,可以为用户提供房间中的物理对象的轮廓图,以警告用户它们的存在。轮廓可以例如是虚拟环境中的叠加。在一些实施方案中,可以向HMD用户提供叠加在例如地板中的参考标记的视图。例如,标记可以向用户提供用户正在玩游戏的房间的中心在哪里的参考。例如,这可以向用户提供用户应该移动到何处以避免撞到房间中的墙壁或其他物体的视觉信息。还可以向用户提供触觉警告和/或音频警告,以在用户佩戴HMD并用HMD玩游戏或导览内容时提供更高的安全性。

头戴式显示器102包括用于提供音频输出的扬声器252。而且,可以包括传声器251以用于捕获来自真实环境的音频,包括来自周围环境的声音、用户发出的语音等。头戴式显示器102包括用于向用户提供触觉反馈的触觉反馈模块281。在一个实施方案中,触觉反馈模块281能够引起头戴式显示器102的运动和/或振动,以便向用户提供触觉反馈。

提供LED 926作为头戴式显示器102的状态的视觉指示器。例如,LED可以指示电池电量、通电等。提供读卡器928以使得头戴式显示器102能够从存储卡读取信息和向存储卡写入信息。USB接口930被包括作为用于实现外围装置的连接或与诸如其他便携式装置、计算机等其他装置的连接的接口的一个示例。在头戴式显示器102的各种实施方案中,可以包括各种类型的接口中的任一者以实现头戴式显示器102的更大连接性。

包括Wi-Fi模块932以使得能够经由无线联网技术连接到互联网。而且,头戴式显示器102包括用于实现与其他装置的无线连接的蓝牙模块934。还可以包括通信链路936以用于连接到其他装置。在一个实施方案中,通信链路936利用红外传输进行无线通信。在其他实施方案中,通信链路936可以利用各种无线或有线传输协议中的任一者来与其他装置进行通信。

包括输入按钮/传感器938来为用户提供输入接口。可以包括各种类型的输入接口中的任一者,诸如按钮、触摸板、操纵杆、轨迹球等。超声波通信模块940可以被包括在头戴式显示器102中以有助于经由超声波技术与其他装置进行通信。

包括生物传感器942以使得能够检测来自用户的生理数据。在一个实施方案中,生物传感器942包括一个或多个干电极以用于通过用户的皮肤检测用户的生物电信号。

包括光电传感器944以响应来自放置在三维物理环境中的发射器(例如,红外基站)的信号。游戏控制台分析来自光电传感器944和发射器的信息,以确定与头戴式显示器102相关的位置和取向信息。

另外,视线跟踪系统820被包括并且被配置为使得能够跟踪用户的视线。例如,系统820可以包括视线跟踪相机(例如传感器)以捕获用户眼睛的图像,然后对所述图像进行分析以确定用户的视线方向。在一个实施方案中,关于用户的视线方向的信息可以被用来影响视频渲染和/或在显示器上预测在扫视期间或结束时用户的视线指向的着陆点。同样,可以优先考虑或强调视线方向上的视频渲染,诸如通过中央凹渲染提供更多细节更高分辨率、在中央凹区域中显示的更高分辨率的粒子系统效果、在中央凹区域外部显示的更低分辨率的粒子系统效果、或者用户正在观看的区域中的更快更新。

头戴式显示器102的前述部件仅被描述为可以被包括在头戴式显示器102中的示例性部件。在本公开的各种实施方案中,头戴式显示器102可以包括或可以不包括各种上述部件中的一些部件。头戴式显示器102的实施方案可以另外包括当前未描述但所属领域已知的其他部件,以用于有助于如本文所述的本公开的各方面的目的。

本领域技术人员将了解,在本公开的各种实施方案中,上述头戴式装置可以与显示在显示器上的交互式应用结合使用,以提供各种交互式功能。本文描述的示例性实施方案仅通过示例而非限制的方式提供。

应注意,在广阔的地理区域上递送的访问服务(诸如提供对当前实施方案的游戏的访问)经常使用云计算。云计算是一种计算风格,其中动态可扩展和通常虚拟化的资源通过互联网作为服务提供。用户不需要成为支持他们的“云”中的技术基础设施方面的专家。云计算可以分为不同的服务,诸如基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。云计算服务通常提供在线的从web浏览器访问的通用应用(诸如视频游戏),而软件和数据则存储在云中的服务器上。基于计算机网络图中互联网的描绘方式,术语云被用作互联网的隐喻,并且是对它所隐藏的复杂基础设施的抽象概念。

游戏客户端使用游戏处理服务器(GPS)(或简称为“游戏服务器”)来玩单玩家和多玩家视频游戏。互联网上进行的大多数视频游戏都是经由与游戏服务器的连接来运行的。通常,游戏使用专用的服务器应用,所述应用从玩家收集数据并将其分发给其他玩家。这比对等布置更有效且高效,但它需要单独的服务器来托管服务器应用。在另一个实施方案中,GPS在玩家与他们各自的玩游戏装置之间建立通信,以在不依赖于集中式GPS的情况下交换信息。

专用GPS是独立于客户端运行的服务器。这样的服务器通常在位于数据中心内的专用硬件上运行,从而提供更多的带宽和专用的处理能力。对于大多数基于PC的多玩家游戏,专用服务器是托管游戏服务器的优选方法。大型多玩家在线游戏在专用服务器上运行,所述服务器通常由拥有游戏标题的软件公司托管,从而允许他们控制和更新内容。

用户利用客户端装置访问远程服务,客户端装置至少包括CPU、显示器和I/O。客户端装置可以是PC、移动电话、上网本、PDA等。在一个实施方案中,在游戏服务器上执行的网络识别客户端使用的装置类型并调整所采用的通信方法。在其他情况下,客户端装置使用标准通信方法(诸如html)来通过互联网访问游戏服务器上的应用。

本公开的实施方案可以用包括手持装置、微处理器系统、基于微处理器的或可编程的消费性电子产品、小型计算机、大型计算机等的各种计算机系统配置来实践。还可以在分布式计算环境中实践本公开,在所述分布式计算环境中,由通过有线或无线网络链接的远程处理装置执行任务。

应理解,可以针对特定平台和特定相关联的控制器装置开发给定的视频游戏或游戏应用。然而,当此类游戏通过本文呈现的游戏云系统可用时,用户可以使用不同的控制器装置来访问视频游戏。例如,游戏可能是为游戏控制台及其相关联控制器开发的,而用户可能正在利用键盘和鼠标从个人计算机访问基于云的游戏版本。在这种情况下,输入参数配置可以定义从可由用户可用的控制器装置(在这种情况下,为键盘和鼠标)生成的输入到执行视频游戏可接受的输入的映射。

在另一个示例中,用户可以经由平板计算装置、触摸屏智能手机或其他触摸屏驱动装置来访问云游戏系统。在这种情况下,客户端装置和控制器装置一起集成在同一装置中,其中通过检测到的触摸屏输入/手势来提供输入。对于此类装置,输入参数配置可以定义与针对视频游戏的游戏输入相对应的特定触摸屏输入。例如,在视频游戏运行期间,可以显示或叠加按钮、方向键或其他类型的输入元件,以指示触摸屏上用户可以触摸以产生游戏输入的位置。诸如在特定方向上的滑动或特定触摸运动之类的手势也可以被检测为游戏输入。在一个实施方案中,可以(例如)在开始视频游戏的玩游戏过程之前向用户提供指示如何经由触摸屏提供输入以便玩游戏的指南,以便使用户适应在触摸屏上操作控件。

在一些实施方案中,客户端装置用作控制器装置的连接点。也就是说,控制器装置经由无线或有线连接与客户端装置通信,以将输入从控制器装置传输到客户端装置。继而,客户端装置可以处理这些输入,然后经由网络(例如,经由诸如路由器之类的本地联网装置访问的网络)将输入数据传输到云游戏服务器。然而,在其他实施方案中,控制器本身可以是联网装置,具有直接经由网络将输入传送到云游戏服务器的能力,而无需首先通过客户端装置传送此类输入。例如,控制器可以连接到本地联网装置(诸如上述路由器)以向云游戏服务器发送数据和从云游戏服务器接收数据。因此,尽管仍然可能要求客户端装置接收来自基于云的视频游戏的视频输出并在本地显示器上对其进行渲染,但是通过允许控制器绕过客户端装置直接通过网络将输入发送到云游戏服务器,可以减少输入延迟。

在一个实施方案中,联网控制器和客户端装置可以被配置为将某些类型的输入直接从控制器发送到云游戏服务器,以及经由客户端装置发送其他类型的输入。例如,其检测不依赖于控制器本身以外的任何附加硬件或处理的输入可以绕过客户端装置经由网络直接从控制器发送到云游戏服务器。此类输入可以包括按钮输入、操纵杆输入、嵌入式运动检测输入(例如,加速度计、磁力计、陀螺仪)等。然而,利用附加硬件或需要客户端装置进行处理的输入可以由客户端装置发送到云游戏服务器。这些可能包括从游戏环境捕获的视频或音频,所述视频或音频在被发送到云游戏服务器之前可能会被客户端装置处理。另外,来自控制器的运动检测硬件的输入可以由客户端装置结合所捕获的视频进行处理,以检测控制器的位置和运动,这随后将由客户端装置传送到云游戏服务器。应理解,根据各种实施方案的控制器装置还可以从客户端装置或直接从云游戏服务器接收数据(例如,反馈数据)。

特别地,图10是根据本公开的各种实施方案的游戏系统1000的框图。游戏系统1000被配置为经由网络1015向一个或多个客户端1010提供视频流,诸如在单玩家模式或多玩家模式中。游戏系统1000通常包括视频服务器系统1020和任选的游戏服务器1025。视频服务器系统1020被配置为以最低服务质量向一个或多个客户端1010提供视频流。例如,视频服务器系统1020可以接收改变视频游戏的状态或视频游戏内的视角的游戏命令,并以最小滞后时间向客户端1010提供反映这种状态变化的更新后的视频流。视频服务器系统1020可以被配置为以各种各样的替代视频格式(包括尚未定义的格式)提供视频流。此外,视频流可以包括被配置为以各种各样的帧速率呈现给用户的视频帧。典型的帧速率是每秒30帧、每秒80帧和每秒820帧。但在本公开的替代实施方案中包括更高或更低的帧速率。

客户端1010(本文中单独称为1010A、1010B等)可以包括头戴式显示器、终端、个人计算机、游戏控制台、平板计算机、电话、机顶盒、信息亭、无线装置、数字键盘、独立装置、手持式玩游戏装置等。通常,客户端1010被配置为接收经编码的(例如,压缩的)视频流、对视频流进行解码,并将所得视频呈现给用户,例如游戏玩家。接收经编码的视频流和/或对视频流进行解码的过程通常包括将各个视频帧存储在客户端的接收缓冲器中。视频流可以在与客户端1010成一体的显示器上或在诸如监视器或电视机之类的单独装置上呈现给用户。客户端1010任选地被配置为支持一个以上游戏玩家。例如,游戏控制台可以被配置为支持两个、三个、四个或更多个同时玩家。这些玩家中的每一者可以接收单独的视频流,或者单个视频流可以包括专门为每个玩家生成的帧区域,例如基于每个玩家的视角生成的帧区域。客户端1010任选地在地理上是分散的。游戏系统1000中所包括的客户端的数量可以在从一或两个至数千、数万或更大的范围内大幅变化。如本文中所使用的,术语“游戏玩家”用于指玩游戏的人,并且术语“玩游戏装置”用于指用于玩游戏的装置。在一些实施方案中,玩游戏装置可以指协作以向用户传递游戏体验的多个计算装置。例如,游戏控制台和HMD可以与视频服务器系统1020协作以传递通过HMD观看的游戏。在一个实施方案中,游戏控制台从视频服务器系统1020接收视频流,并且游戏控制台将视频流或对视频流的更新转发到HMD以进行渲染。

客户端1010被配置为经由网络1015接收视频流。网络1015可以是任何类型的通信网络,包括电话网络、互联网、无线网络、电力线网络、局域网、广域网、专用网络等。在典型的实施方案中,所述视频流经由标准协议(诸如TCP/IP或UDP/IP)来传送。可替代地,视频流经由专有标准进行传送。

客户端1010的典型示例是包括处理器、非易失性存储器、显示器、解码逻辑、网络通信能力和输入装置的个人计算机。解码逻辑可以包括存储在计算机可读介质上的硬件、固件和/或软件。用于对视频流进行解码(和编码)的系统在所属领域中是公知的,并且根据所使用的特定编码方案而变化。

客户端1010还可以(但不要求)包括被配置用于修改接收到的视频的系统。例如,客户端可以被配置为执行进一步的渲染,将一个视频图像叠加在另一个视频图像上,裁剪视频图像等。例如,客户端1010可以被配置为接收各种类型的视频帧,诸如I帧、P帧和B帧,并且将这些帧处理为图像以显示给用户。在一些实施方案中,客户端1010的成员被配置为对视频流执行进一步的渲染、着色、到3D的转换或类似的操作。客户端1010的成员任选地被配置为接收一个以上音频或视频流。客户端1010的输入装置可以包括例如单手游戏控制器、双手游戏控制器、手势识别系统、视线识别系统、语音识别系统、键盘、操纵杆、指向装置、力反馈装置、运动和/或位置感测装置、鼠标、触摸屏、神经接口、相机、尚待开发的输入装置等。

客户端1010接收到的视频流(以及任选的音频流)由视频服务器系统1020生成并提供。如本文其他地方进一步描述的,该视频流包括视频帧(而音频流包括音频帧)。视频帧被配置(例如,它们包括适当数据结构中的像素信息)成对显示给用户的图像作出有意义的贡献。如本文所使用,术语“视频帧”用于指主要包括被配置成对示出给用户的图像作出贡献(例如,实现所述图像)的信息的帧。本文中关于“视频帧”的大多数教导也可以应用于“音频帧”。

客户端1010通常被配置为从用户接收输入。这些输入可以包括被配置为改变视频游戏的状态或以其他方式影响玩游戏过程的游戏命令。游戏命令可以使用输入装置来接收和/或可以通过在客户端1010上执行的计算指令而自动生成。接收到的游戏命令经由网络1015从客户端1010传送到视频服务器系统1020和/或游戏服务器1025。例如,在一些实施方案中,游戏命令经由视频服务器系统1020被传送到游戏服务器1025。在一些实施方案中,游戏命令的单独副本被从客户端1010传送到游戏服务器1025和视频服务器系统1020。游戏命令的传送任选地取决于命令的标识。任选地,通过用于向客户端1010A提供音频或视频流的不同路由或通信信道,从客户端1010A传送游戏命令。

游戏服务器1025任选地由与视频服务器系统1020不同的实体来操作。例如,游戏服务器1025可以由多玩家游戏的发行者来操作。在该示例中,视频服务器系统1020任选地被游戏服务器1025视为客户端,并且任选地被配置为从游戏服务器1025的视角看来是执行现有技术游戏引擎的现有技术客户端。视频服务器系统1020与游戏服务器1025之间的通信任选地经由网络1015进行。因此,游戏服务器1025可以是将游戏状态信息发送到多个客户端的现有技术多玩家游戏服务器,所述多个客户端中的一个客户端是游戏服务器系统1020。视频服务器系统1020可以被配置为同时与游戏服务器1025的多个实例进行通信。例如,视频服务器系统1020可以被配置为向不同的用户提供多个不同的视频游戏。这些不同的视频游戏中的每一者都可以由不同的游戏服务器1025支持和/或由不同实体发布。在一些实施方案中,视频服务器系统1020的若干在地理上分散的实例被配置为向多个不同的用户提供游戏视频。视频服务器系统1020的这些实例中的每一者都可以与游戏服务器1025的相同实例进行通信。视频服务器系统1020与一个或多个游戏服务器1025之间的通信任选地经由专用通信信道而发生。例如,视频服务器系统1020可以经由高带宽信道连接到游戏服务器1025,所述高带宽信道专用于这两个系统之间的通信。

视频服务器系统1020至少包括视频源1030、I/O装置1045、处理器1050和非暂时性存储装置1055。视频服务器系统1020可以包括一个计算装置或分布在多个计算装置之间。这些计算装置任选地经由诸如局域网之类的通信系统连接。

视频源1030被配置为提供视频流,例如流视频或形成动态图片的一系列视频帧。在一些实施方案中,视频源1030包括视频游戏引擎和渲染逻辑。视频游戏引擎被配置为从玩家接收游戏命令,并基于接收到的命令来维持视频游戏状态的副本。该游戏状态包括对象在游戏环境中的位置,以及通常包括视角。游戏状态还可以包括对象的性质、图像、颜色和/或纹理。

通常基于游戏规则以及诸如移动、转身、攻击、设置焦点、交互、使用等游戏命令来维持游戏状态。游戏引擎的一部分任选地设置在游戏服务器1025内。游戏服务器1025可以基于使用地理上分散的客户端从多个玩家接收到的游戏命令来维护游戏状态的副本。在这些情况下,游戏状态由游戏服务器1025提供给视频源1030,其中存储游戏状态的副本并执行渲染。游戏服务器1025可以经由网络1015直接从客户端1010接收游戏命令,和/或可以经由视频服务器系统1020接收游戏命令。

视频源1030通常包括渲染逻辑,例如存储在诸如存储装置1055之类的计算机可读介质上的硬件、固件和/或软件。该渲染逻辑被配置为基于游戏状态创建视频流的视频帧。全部或部分渲染逻辑任选地设置在图形处理单元(GPU)中。渲染逻辑通常包括处理阶段,所述处理阶段被配置为基于游戏状态和视角来确定对象之间的三维空间关系和/或应用适当的纹理等。渲染逻辑产生原始视频,然后通常在所述原始视频传送给客户端1010之前对其进行编码。例如,原始视频可以根据以下各项进行编码:Adobe

在替代实施方案中,视频源1030包括视频记录装置,诸如相机。该相机可以用于生成延迟的视频或实时视频,所述视频可以被包括在计算机游戏的视频流中。所得视频流任选地包括所渲染的图像和使用静态相机或摄像机记录的图像两者。视频源1030还可以包括存储装置,所述存储装置被配置为存储要包括在视频流中的先前记录的视频。视频源1030还可以包括被配置为检测对象(例如,人)的运动或位置的运动或定位感测装置,以及被配置为基于检测到的运动和/或位置来确定游戏状态或产生视频的逻辑。

视频源1030任选地被配置为提供被配置为放置在其他视频上的叠加。例如,这些叠加可以包括命令接口、登录说明、给游戏玩家的消息、其他游戏玩家的图像、其他游戏玩家的视频馈送(例如,网络摄像头视频)。在包括触摸屏接口或视线检测接口的客户端1010A的实施方案中,叠加可以包括虚拟键盘、操纵杆、触摸板等。在叠加的一个示例中,玩家的语音被叠加在音频流上。视频源1030任选地还包括一个或多个音频源。

在其中视频服务器系统1020被配置为基于来自一个以上玩家的输入来维持游戏状态的实施方案中,每个玩家都可以具有包括观看的位置和方向的不同视角。视频源1030任选地被配置为基于每个玩家的视角为每个玩家提供单独的视频流。此外,视频源1030可以被配置为向客户端1010中的每一者提供不同的帧大小、帧数据大小和/或编码。视频源1030任选地被配置为提供3D视频。

I/O装置1045被配置用于使视频服务器系统1020发送和/或接收信息,诸如视频、命令、信息请求、游戏状态、视线信息、装置运动、装置位置、用户运动、客户端标识、玩家标识、游戏命令、安全性信息、音频等。I/O装置1045通常包括通信硬件,诸如网卡或调制解调器。I/O装置1045被配置为与游戏服务器1025、网络1015和/或客户端1010进行通信。

处理器1050被配置为执行被包括在本文讨论的视频服务器系统1020的各个部件内的逻辑,例如软件。例如,处理器1050可以用软件指令编程,以便执行视频源1030、游戏服务器1025和/或客户端限定器1060的功能。视频服务器系统1020任选地包括处理器1050的一个以上实例。处理器1050也可以用软件指令编程,以便执行由视频服务器系统1020接收的命令,或协调本文讨论的游戏系统1000的各个元件的操作。处理器1050可以包括一个或多个硬件装置。处理器1050是电子处理器。

存储装置1055包括非暂时性模拟和/或数字存储装置。例如,存储装置1055可以包括被配置为存储视频帧的模拟存储装置。存储装置1055可以包括计算机可读数字存储装置,例如,硬盘驱动器、光盘驱动器或固态存储装置。存储装置1055被配置为(例如,通过适当的数据结构或文件系统)存储视频帧、人工帧、包括视频帧和人工帧两者的视频流、音频帧、音频流等。存储装置1055任选地分布在多个装置之间。在一些实施方案中,存储装置1055被配置为存储本文其他地方讨论的视频源1030的软件部件。这些部件可以按在需要时准备提供的格式存储。

视频服务器系统1020任选地还包括客户端限定器1060。客户端限定器1060被配置用于远程地确定诸如客户端1010A或1010B之类的客户端的能力。这些能力可以包括客户端1010A本身的能力以及客户端1010A与视频服务器系统1020之间的一个或多个通信信道的能力。例如,客户端限定器1060可以被配置为通过网络1015测试通信信道。

客户端限定器1060可以手动或自动确定(例如,发现)客户端1010A的能力。手动确定包括与客户端1010A的用户通信并要求用户提供能力。例如,在一些实施方案中,客户端限定器1060被配置为在客户端1010A的浏览器内显示图像、文本等。在一个实施方案中,客户端1010A是包括浏览器的HMD。在另一个实施方案中,客户端1010A是具有浏览器的游戏控制台,其可以显示在所述HMD上。所显示的对象请求用户输入信息,诸如客户端1010A的操作系统、处理器、视频解码器类型、网络连接类型、显示分辨率等。由用户输入的信息被传送回客户端限定器1060。

自动确定可以例如通过在客户端1010A上执行代理和/或通过将测试视频发送到客户端1010A而发生。所述代理可以包括嵌入在网页中或作为后加件安装的计算指令,诸如java脚本。代理任选地由客户端限定器1060提供。在各种实施方案中,所述代理可以找出客户端1010A的处理能力、客户端1010A的解码和显示能力、客户端1010A与视频服务器系统1020之间的通信信道的滞后时间可靠性和带宽、客户端1010A的显示类型、客户端1010A上存在的防火墙、客户端1010A的硬件、在客户端1010A上执行的软件、客户端1010A内的注册表项等。

客户端限定器1060包括存储在计算机可读介质上的硬件、固件和/或软件。客户端限定器1060任选地设置在与视频服务器系统1020的一个或多个其他元件分离的计算装置上。例如,在一些实施方案中,客户端限定器1060被配置为确定客户端1010与视频服务器系统1020的一个以上实例之间的通信信道的特性。在这些实施方案中,由客户端限定器发现的信息可以用于确定视频服务器系统1020的哪个实例最适合向客户端1010中的一个客户端传递流视频。

尽管已经提供了特定的实施方案来演示在显示器上预测和更新目标着陆点,使得用户眼睛的运动与中央凹区域在显示器上在更新后的目标着陆点上的呈现一致,但是这些是通过示例而非限制的方式来描述的。阅读了本公开的本领域技术人员将认识到落入本公开的精神和范围内的其他实施方案。

应理解,可以使用本文公开的各种特征将本文定义的各种实施方案组合或组装到特定的实现方式中。因此,提供的示例仅仅是一些可能的示例,而不限于通过组合各种元件以定义更多实现方式而可能的各种实现方式。在一些示例中,一些实现方式可以包括更少的元件,而不背离所公开或等效实现方式的精神。

本公开的实施方案可以用包括手持装置、微处理器系统、基于微处理器的或可编程的消费性电子产品、小型计算机、大型计算机等的各种计算机系统配置来实践。还可以在分布式计算环境中实践本公开的实施方案,在所述分布式计算环境中,由通过有线或无线网络链接的远程处理装置执行任务。

考虑到上述实施方案,应理解,本公开的实施方案可以采用涉及存储在计算机系统中的数据的各种计算机实现的操作。这些操作是需要物理地操纵物理量的那些操作。本文描述的形成本公开的实施方案的一部分的任何操作都是有用的机器操作。本公开的实施方案还涉及用于执行这些操作的装置或设备。可以针对所需目的专门构造所述设备,或者所述设备可以是由存储在计算机中的计算机程序选择性地激活或配置的通用计算机。具体地,各种通用机器可以与根据本文的教导编写的计算机程序一起使用,或者构造更专门的设备来执行所需的操作可能更方便。

本公开还可以实施为计算机可读介质上的计算机可读代码。计算机可读介质是可以存储数据的任何数据存储装置,所述数据此后可以被计算机系统读取。计算机可读介质的示例包括硬盘驱动器、网络附接存储装置(NAS)、只读存储器、随机存取存储器、CD-ROM、CD-R、CD-RW、磁带以及其他光学和非光学数据存储装置。所述计算机可读介质可以包括分布在网络耦合的计算机系统上的计算机可读有形介质,使得以分布式方式存储和执行计算机可读代码。

虽然以特定的顺序描述了方法操作,但是应当理解,可以在操作之间执行其他内务操作,或者可以调整操作,使得它们在稍微不同的时间发生,或者可以将操作分布在系统中,只要以期望的方式执行叠加操作的处理,所述系统便允许以与处理相关联的各种间隔发生处理操作。

尽管为了清楚理解的目的,已经对前述公开进行了一些详细的描述,但是将显而易见的是,可在所附权利要求的范围内实践一些改变和修改。因此,本实施方案被认为是说明性的而非限制性的,并且本公开的实施方案不限于本文给出的细节,而是可在所附权利要求的范围和等效物内进行修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号