用于提供快速加载的快捷方式的方法和系统与流程

文档序号:18461071发布日期:2019-08-17 02:02阅读:278来源:国知局
用于提供快速加载的快捷方式的方法和系统与流程

本公开涉及在服务器上执行的交互式应用程序,且具体来说涉及提供用于更快地访问交互式应用程序的不同场景或部分的快捷方式。



背景技术:

计算机技术的进步促进了基于云的处理、视频游戏技术等的进步。随着基于云的处理的进步(即,使用高功率图形处理器、存储器以及其它处理和通信资源),向用户呈现期望的且最佳的交互式体验。例如,基于云的系统为执行例如视频游戏的交互式应用程序提供无限处理能力和系统资源。在视频游戏的情况下,基于云的系统为用户提供大量传统和新的视频游戏,用户无需升级自己的装置就可以访问和玩这些视频游戏。这些基于云的系统实现将内容流式传输到远程客户端,其中大部分处理在可以是分布式的服务器上完成。因此,例如游戏的基于云的交互式应用程序越来越受欢迎,因为用户发现更容易访问更多视频游戏片头,而没有复杂硬件限制,并且游戏供应商发现更容易从集中位置管理游戏代码。

在更个人的层面上,正在开发装置以帮助用户选择在基于云的系统的远程服务器上或在例如游戏控制台或本地计算机的本地装置上可用的内容并与所述内容交互。例如,抬头显示器(hmd)已被开发并且越来越受欢迎,因为hmd通过允许用户与呈现在hmd的显示器上的内容交互来允许用户具有身临其境的交互式体验,例如,身临其境的游戏体验。类似地,已经开发了例如控制器的各种输入装置,以帮助用户将输入提供到交互式内容。云系统可以使得更容易地引入更新的装置,因为大多数处理在服务器级完成,并且更新的装置可以容易地集成在云级处,而不是个别系统级处。

当用户选择要查看或交互的交互式应用程序时,向用户提供来自交互式应用程序的初始场景的内容。当用户与内容交互并且前进到下一场景时,用户必须等到第二场景加载。通常,等待是明显的,因为一些应用程序包括图形密集内容,从而导致不太理想的体验。

在这种背景下提出本发明的实施方案。



技术实现要素:

本发明的实施方案公开用于提供快捷方式以使得能够更快地访问在系统的服务器上执行的交互式应用程序的不同场景的方法和系统。虚拟场景中可用的视觉选项用于访问附加虚拟场景。通过基于用户与虚拟场景中的不同视觉选项的预测交互来预加载对应附加虚拟场景的内容,可更快地访问每个附加虚拟场景。一旦用户选择对应视觉选项,与不同视觉选项相关联的附加虚拟场景的预加载内容就准备好执行,以实现用户交互性的对应虚拟场景的完全再现。预加载允许更快地访问不同虚拟场景的内容,而不会导致用户的不必要等待。所述系统包括与服务器通信的抬头显示器(hmd),所述hmd可以是经由网络访问的基于云的系统的一部分。所述hmd被配置成渲染所述交互式应用程序的所述虚拟场景。所述系统被配置成使用可用于云系统的资源托管用于用户交互的多个在线交互式应用程序(例如,视频游戏应用程序和其它交互式应用程序-单用户和多用户应用程序两者)。

所述系统检测交互式应用程序的选择,并且作为响应,将初始虚拟场景的内容提供到用户的所述hmd以进行渲染。所述虚拟场景包括视觉选项,其中每个视觉选项被配置成访问所述交互式应用程序的不同虚拟场景。所述系统跟踪用户在所述虚拟场景中的交互性,并且处理所述交互性以识别与包括在所述虚拟场景中的不同视觉选项的预测交互。所述处理包括评估用户的所述交互性,直到达到指示特定视觉选项的选择的动作阈值。基于达到所述阈值,所述系统识别并预加载与所述特定视觉选项相关联的对应虚拟场景的内容。在用户选择所述特定视觉选项之前完成所述预加载,使得当用户选择所述特定视觉选项时,执行预加载的所述内容,以实现用于用户交互性的所述对应虚拟场景的完全渲染。

在一个实施方式中,提供一种方法。所述方法包括从佩戴抬头显示器的用户接收对用于用户交互的交互式应用程序的选择。所述选择使所述交互式应用程序的虚拟场景的内容将被提供用于在所述抬头显示器上渲染。所述虚拟场景的所述内容包括用于访问所述交互式应用程序的附加虚拟场景的视觉选项。检测所述虚拟场景中的用户交互性。处理在所述虚拟场景中检测到的所述交互性,以识别与所述虚拟场景中的视觉选项的预测交互。当用户在所述虚拟场景中交互时所述处理继续,直到达到指示所述虚拟场景中可用的一个视觉选项的即时选择的行动阈值为止。基于实现阈值,预加载与识别成即时选择的所述视觉选项相关联的第二虚拟场景。当用户选择与所述第二虚拟场景相关联的所述视觉选项时,使用预加载内容执行所述第二虚拟场景,以便实现用于用户交互的所述第二虚拟场景的完全渲染。所述虚拟场景和所述第二虚拟场景是所述交互式应用程序的一部分。

在另一实施方式中,提供一种方法。所述方法包括从抬头显示器(hmd)的用户接收对交互式应用程序的选择。所述选择使所述交互式应用程序的虚拟场景的内容将被提供用于在用户佩戴的所述hmd上渲染。所述虚拟场景的所述内容包括用于访问所述交互式应用程序的附加虚拟场景的视觉选项。分析为所述交互式应用程序保存的用户的使用历史。在所述虚拟场景中的用户的交互性期间,使用所述分析预测来自所述虚拟场景内可用的多个视觉选项中的第一视觉选项的即时选择。预加载与预测为由用户即时选择的所述第一视觉选项相关联的第二虚拟场景。监视所述虚拟场景中的用户交互性。当用户在所述虚拟场景中交互时连续地处理所监视交互性,直到达到指示所述视觉选项中的特定视觉选项的即时选择的行动阈值。所述方法继续以下操作:确定识别用于即时选择的所述视觉选项中的所述特定视觉选项是否与同预加载的所述第二虚拟场景相关联的所述视觉选项匹配。当所述视觉选项中的所述特定视觉选项与同所述第二虚拟场景相关联的所述第一视觉选项匹配时,执行预加载的所述第二虚拟场景的内容,以在所述虚拟场景中的交互性期间由用户选择所述第一视觉选项时,实现用于用户交互性的所述第二虚拟场景的完全渲染。

通过以下结合附图的详细描述,本发明的其它方面和优点对于所属领域技术人员将变得显而易见,附图通过实例的方式说明本发明的原理。

附图说明

通过参考结合附图进行的以下描述,可以最好地理解本发明以及本发明的另外优点。

图1示出根据本发明的实施方式的实例系统的简化框图,所述实例系统用于评估用户在虚拟场景中的各种视觉选项处提供的提示,用于预加载后续虚拟场景。

图2示出根据本发明的实施方式的实例系统架构,所述实例系统架构采用应用程序预加载器模块来响应于用户提供的视觉提示而识别、选择、加载和执行交互式应用程序的特定虚拟场景。

图3示出在本发明的一个实施方式中在用户界面上渲染的虚拟家庭场景上提供的各种选项的简单框图。

图3a至图3d示出在本发明的一些实施方式中可以在交互式应用程序中的用户交互期间访问的不同虚拟场景的实例。

图4示出在本发明的一个实施方式中通过处理图3a的虚拟场景中的用户交互性计算的交互预测的实例。

图5a至图5d示出在本发明的一些实施方式中的概率图的实例,所述概率图基于在图3a的初始虚拟场景中提供的各种视觉选项处从用户检测到的提示而随时间动态地调整。

图5e至图5f示出在本发明的一些实施方式中的概率图的实例,所述概率图基于在用户在与交互式应用程序交互期间已导航到的后续虚拟场景(例如,场景b)中提供的各种视觉选项处从用户检测到的提示而随时间调整。

图6a至图6b示出在本发明的一些实施方式中的交互式应用程序的各种场景的映射。

图7a至图7b示出根据本发明的不同实施方式的用于预加载交互式应用程序的虚拟场景的方法的过程操作。

图8示出根据本发明的替代实施方式的用于从各种虚拟场景接收内容的抬头显示器的组件。

图9示出根据本发明的各种实施方式的例如游戏系统的实例交互式应用程序系统的简化框图。

图10示出根据本发明的一个实施方式的用于向地理上分散并经由网络连接的用户传递信息内容和服务的示例性信息服务提供商架构。

具体实施方式

在以下描述中,阐述许多特定细节以便提供对本发明的透彻理解。然而,对于所属领域技术人员显而易见的是,可以在没有这些具体细节中的一些或全部的情况下实践本公开。在其它情况下,没有详细描述公知的过程操作,以免不必要地模糊本发明。

根据本发明的各种实施方式,佩戴抬头显示器(hmd)的用户例如通过用户账户访问本地服务器或云系统上的远程服务器,并且选择例如视频游戏的交互式应用程序。响应于请求,服务器识别交互式应用程序的虚拟场景,并且提供虚拟场景的内容以在hmd的显示屏上渲染。虚拟场景可以是交互式应用程序的第一虚拟场景或在交互式应用程序的先前会话期间用户所处的最后一个虚拟场景,并且服务器可以基于为用户保存的先前会话的当前状态而识别虚拟场景。作为服务于请求的一部分,服务器使用请求中包括的用户的标识符来从用户的先前会话(如果有的话)中检索交互式应用程序的当前状态,以识别虚拟场景。将来自交互式应用程序的虚拟场景的内容提供给用户以进行交互。虚拟场景包括用于访问交互式应用程序的其它虚拟场景的一个或多个视觉选项。处理虚拟场景中的用户提供的交互性,以识别与虚拟场景中包括的各种视觉选项的预测交互,从而识别虚拟场景中的虚拟选项中的特定虚拟选项的即时选择。识别和预加载与通过用户交互性识别的虚拟选项中的特定虚拟选项相关联的第二虚拟场景。提前完成第二虚拟场景的预加载,使得当用户实际上选择视觉选项中与第二虚拟场景相关联的特定视觉选项时,执行第二虚拟场景的预加载内容,从而使用户能够无需等待即可访问并开始与第二虚拟场景交互。

交互性的处理允许系统确定在与虚拟场景的内容交互期间用户对通过各种动作表达的特定视觉选项的当前兴趣。通过评估在与虚拟场景的内容的用户交互期间捕获的多个交互式指示器中的每个交互式指示器来确定当前兴趣,以将特定视觉选项识别为用户进行即时选择的目标。系统使用各种交互式指示器(以提示的形式提供)预测视觉选项的选择,并且基于此预测准备用于用户交互的交互式应用程序的后续虚拟场景。

在预加载与视觉选项的预测选择相关联的虚拟场景的内容之后,系统继续处理用户交互性以确定用户继续表达对特定视觉选项的兴趣,还是已切换到不同视觉选项。当系统检测到即时选择中从视觉选项到不同视觉选项的转变时,系统动态地确定变化并且预加载与不同视觉选项对应的不同虚拟场景。在一些实施方式中,作为预加载不同虚拟场景的一部分,系统可以响应于用户对于对应视觉选项的初始兴趣而卸载已预加载的第二虚拟场景。

在一些实施方式中,当用户前进穿过各种虚拟场景时,可以卸载被加载和执行的某些初始虚拟场景,以减少内存使用。卸载的某些虚拟场景可以基于在后续虚拟场景中可用的视觉选项。可以经由hmd查看的虚拟空间是扩展的。因此,必须加载许多内容以供用户导航。此外,在hmd中呈现的内容提供于三维(3d)空间中并且提供视锥体。在一些实施方式中,视锥体(另外称为捕获视场,例如相机)被定义为投影在显示屏上的3d建模世界的空间区域。通常通过获取视觉金字塔的锥体(即,具有平行平面的截断)来获得所述视锥体。由于三维格式的性质,必须加载大量内容以便用户具有完全身临其境的体验。因此,即使当某些内容当前未在hmd处渲染时,也必须高速缓存、加载和准备好处理所述内容以生成新的帧,以便用户在3d空间中导航时所述内容可供用户使用。在二维(2d)环境中不是这种情况。在2d环境中,每一帧具有用户需要查看的所有内容。例如,如果角色在2d环境中移动,则单个帧可以用于捕获此信息并且呈现给用户。然而,在3d环境中,这些细节在多个帧中捕获并且必须可用于用户。

因此,根据各种实施方式,为了向用户提供完全身临其境的体验同时确保系统资源的最佳使用,系统收集用户的各种提示,例如注视方向、移动方向、在虚拟场景内的运动、佩戴可穿戴装置的用户身体部分的扩展、使用控制器的触发器等,并且处理这些提示以预测用户在虚拟场景中的下一移动或选择,包括视觉选项的选择、朝向虚拟对象的移动方向等。基于视觉选项选择的预测,在用户选择视觉选项之前,将与视觉选项相关联的不同虚拟场景的内容预加载和缓存到存储器中以访问不同虚拟场景,使得内容可以易于渲染并可供用户交互。

任何虚拟场景的内容包括图形密集内容,例如,插图、3d图形、3d动态角色、人工智能(ai)角色等。在一些实施方式中,将与内容相关的数据作为输入提供到图形处理器中,所述图形处理器使用随机发生器技术来生成内容的变化,包括不同角色或对象的受控移动的变化,以便渲染不同视角的内容变化。基于提示的评估对虚拟场景进行预加载允许系统及时地预加载仅用于用户交互的所需内容,并且不会过载未被访问或不需要的内容。各种实施方式使系统能够明智地分配网络和系统资源,同时最小化用户的等待时间,从而为用户带来最佳交互式体验。

本文所描述的各种实施方式的其它优点对所属领域技术人员将是显而易见的。通过对本发明的一般理解,现在将参考各种附图描述特定实施方式。

图1示出用于检测对例如游戏应用程序的交互式应用程序的内容的请求的系统简化框图。应注意,尽管参考游戏应用程序详细描述各种实施方式,但是实施方式不限于游戏应用程序,而是还可以扩展到例如虚拟旅游等其它类型的交互式应用程序。从用户的客户端装置,例如用户佩戴的抬头显示器(hmd)接收请求。hmd104以通信方式连接至例如应用程序服务器112的服务器。应用程序服务器112可以是hmd104本地的,或可以是可以经由网络110访问的远程服务器。实例网络包括局域网、广域网、无线局域网、个域网、城域网,或所述实例网络可以是分布在一个或多个远程数据中心中的包括服务器、游戏控制台等的云网络的一部分,并且可以通过例如因特网的网络110访问。服务器112(即,云服务器)可以是数据中心中的多个服务器中的一个服务器。

hmd104包括处理模块(即,处理器)、存储器和用于连接到通过网络访问的计算装置(例如,控制台)或服务器的网络或通信连接,并且包括用于与服务器侧应用程序通信的合适应用程序编程接口(api)。在一些实施方式中,hmd104的处理器能够执行客户端侧应用程序,所述客户端侧应用程序可以独立运行或可以通过经由有线或无线连接而连接到本地服务器计算装置(例如,计算机106)来与服务器侧应用程序交互。在其它实施方式中,hmd104可以使用网络连接来连接到网络110,并且使用应用程序编程接口(api)来与远程服务器112(例如,远程云服务器)上托管的服务器侧应用程序通信或访问所述服务器侧应用程序。如在先前实施方式中,网络连接可以是有线或无线网络连接。各种实施方式不限于图1的hmd104,而是还可以包括其它客户端装置(例如,瘦客户端、通用计算机、专用计算机、游戏控制台、个人计算机、膝上型计算机、平板计算装置、移动计算装置、便携式游戏装置、蜂窝电话、智能电话、机顶盒、流媒体接口/装置、智能电视或网络显示器,或可以用于连接到本地或远程可用的服务器以访问交互式应用程序的任何其它计算装置)。

所使用的网络连接和/或通信协议使hmd104能够与服务器通信以从服务器接收内容,包括多媒体内容的视频帧的流。通过服务器流式传输的视频帧可能已使用服务器侧处的编码器进行压缩。因此,hmd104可以包括解码器,用于对表示通过服务器(例如,应用程序服务器)传输的应用程序内容的视频帧的流进行解压缩,并且在hmd104的显示屏上渲染图像。渲染图像识别例如游戏应用程序的交互式应用程序的当前状态。应用程序的当前状态在应用程序服务器上基本上保存和执行,其中hmd主要用于从应用程序服务器接收、解码、渲染音频和/或视频数据,并且将用户输入传送回应用程序服务器。

本申请中使用的应用程序服务器可以是本地服务器计算装置(例如,计算机106)、控制台服务器、虚拟计算机、云服务器112、数字媒体服务器、用于提供游戏开发商或游戏赞助商或应用程序开发商或应用程序提供商的网上连锁商店的服务器、网络服务器、终端服务器、远程服务器,或能够托管一个或多个交互式应用程序(例如,游戏应用程序、虚拟旅游等),包括提供或分配用于执行在使用期间用户可以访问和交互的交互式应用程序的处理资源的任何其它类型或形式的服务器计算装置。应用程序服务器可以包括编码器,用于压缩视频帧中的数据,并且使用遵循特定类型的通信协议的api调用将数据流中的压缩视频帧转发到hmd。

应用程序服务器(例如,计算机106、云服务器112等)执行可用于用户账户的各种交互式应用程序(例如,游戏、虚拟旅游等)、识别交互式应用程序的当前状态,并且基于从用户接收的请求而从交互式应用程序中的特定交互式应用程序提供适当内容以在hmd处渲染。内容包括流媒体视频数据,包括图像数据、音频数据、触觉数据等。在应用程序服务器处接收和处理经由hmd提供的用户输入,以影响交互式应用程序的结果。交互式应用程序的结果提供交互式应用程序的当前状态。交互式应用程序可以是单用户或多用户应用程序,并且服务器通过实例化在从用户接收的请求中识别的交互式应用程序并提供虚拟场景的内容来促进用户交互。虚拟场景可以对应于为用户保存的交互式应用程序的当前状态。

在一些实施方式中,集成在计算机106内或安装在外部的相机108可以用于在用户正与提供于hmd104上的内容交互时捕获用户的图像。相机108可以通信方式连接到计算机106和/或hmd104,以接收信号用于捕获图像并提供图像以供进一步处理。在一些实施方式中,用户的所捕获图像可以用于影响交互式应用程序的结果。

使用本文描述的系统架构执行的操作形成技术操作,所述技术操作需要一个或多个服务器和/或执行平台来实现快速访问用户的特定内容。服务器可以使用任何数目的压缩技术,以在将虚拟场景的内容压缩到hmd之前压缩虚拟场景的内容。压缩技术可以使用标准编码器,所述标准编码器随后允许hmd上的标准解码器访问、解码和渲染hmd上的图像、视频和音频数据,以使用户能够与内容交互。管理交互式应用程序的执行以及内容到hmd的分布可以涉及多个方向服务器、服务质量测试器或引擎等。这些操作和任务可以利用专用服务器计算机,所述专用服务器计算机设计用于流式传输和低延迟,同时远程地执行游戏并且将分布在广泛地理位置上的数据传递到hmd104。尽管已参考hmd104描述实施方式,但是实施方式可以扩展到其它客户端计算装置,包括其它可穿戴装置、移动计算装置、个人计算装置等。

通过系统的一般描述,现在将参考其它附图描述本发明的具体实施方式。

图2示出实例应用程序服务器112,所述实例应用程序服务器响应于对内容的请求而使各种应用程序模块参与识别、处理、验证内容并将内容提供给用户。例如,应用程序服务器112包括用户账户数据处理模块113和应用程序预加载器模块115。用户账户数据处理模块113用于验证来自用户的请求。验证包括识别请求中包括的用户的用户标识符,以及针对服务器112上的用户账户数据库131中保存的用户账户证实用户标识符,以确保请求来自有效用户。在成功的用户验证之后,将请求转发到应用程序预加载器模块115以供处理。应用程序预加载器模块115被配置成处理交互式应用程序的请求;加载、缓存和执行交互式应用程序合适虚拟场景;以及将交互式应用程序的相关内容提供到客户端装置以供渲染。

在一些实施方式中,在提供交互式应用程序的合适内容之前,应用程序预加载器模块115可以执行请求的进一步验证。作为进一步验证的一部分,可以从请求中提取交互式应用程序的应用程序标识符,并且可以针对应用程序数据存储装置133证实所提取标识符,以(a)确定请求是否用于应用程序数据存储装置133中可用的应用程序,以及(b)确定用户是否被授权访问应用程序。在成功地验证请求之后,应用程序预加载器模块(或另外称为“预加载器模块”)115处理请求,以从交互式应用程序识别虚拟场景来呈现给用户。

当用户第一次选择交互式应用程序时,向用户提供交互式应用程序的第一虚拟场景。第一虚拟场景可以是虚拟“主页”场景,其向用户提供用于设置应用程序以进行交互的选项。所述选项可以包括自定义选项和设置选项,以设置应用程序来进行用户交互。除了用于设置应用程序的上述选项之外,还可以在主页场景中提供来自交互式应用程序的一个或多个虚拟场景。可以选择和提供一个或多个虚拟场景,以允许用户“采样”应用程序的虚拟场景中的选择性虚拟场景。在交互式应用程序的后续访问期间,可以在主页场景中提供的一个或多个虚拟场景可以是最后和/或频繁访问的虚拟场景。

交互式应用程序可以包括多个虚拟场景,其中每个虚拟场景具有用于访问交互式应用程序的附加虚拟场景的多个视觉选项。在每个虚拟场景中提供的视觉选项特定于特定虚拟场景,并且在一些情况下,可以特定于用户。视觉选项允许用户访问交互式应用程序内的一个或多个附加虚拟场景。

图3示出实例虚拟“主页”场景300的简化框图,当用户最初访问用于用户交互的应用程序时,可以向用户提供所述虚拟“主页”场景。主页场景300包括:设置菜单选项301,用于帮助用户最初设置用于用户交互的应用程序;用户自定义选项302,用于允许用户自定义交互式应用程序的一些方面,例如,内容的亮度、渲染速度、内容的清晰度、用于在虚拟场景中交互的虚拟对象、用于表示交互式应用程序中的用户的替身等。除了设置选项(301、302)之外,可以提供“退出”(离开)选项315,以退出或离开交互式会话。还可以提供附加选项303、304和305以分别访问虚拟场景a、b和c中的特定虚拟场景。在主页场景300中提供的虚拟场景中的特定虚拟场景可以是交互式应用程序的连续或不连续虚拟场景。例如,在用户正第一次选择应用程序的情况下,可以在主页场景中提供的虚拟场景可以包括从应用程序开始起的连续一组虚拟场景,如图3中所示。在用户已在先前会话中与应用程序交互的情况下,在主页场景中提供的选项可以用于不连续的虚拟场景。例如,在主页场景中提供的虚拟场景选项可以包括由用户或由作为用户的社交联系人的其它用户、与应用程序相关的联系人、具有与用户类似属性的其它用户,或共享相似人口或来自相同社区或地区的其它用户等频繁访问的虚拟场景。在一些情况下,通过首先包括从开始以及在一个或多个交互式会话之后访问虚拟场景中的连续虚拟场景的选项、更新主页场景以包括用户或其它用户的一些喜欢或经常交互的虚拟场景来为用户动态地调整主页场景。与用户的选择相关的信息可以保存在使用历史数据库135中,并且用于在用户的每个后续交互式会话期间填充应用程序的主页场景。

返回参考图2,主页场景中的各种选项处的用户选择用于在用户交互期间设置和自定义应用程序。在初始应用程序设置之后,预加载器模块115的虚拟场景选择器子模块117选择应用程序的虚拟场景,并呈现用于用户交互的虚拟场景的相关内容。如果用户先前已与应用程序交互,则虚拟场景选择器117可以基于应用程序的当前状态识别虚拟场景。例如,虚拟场景选择器117可以与使用历史数据库135交互,以从用户的先前交互式会话获得应用程序的当前状态并且识别合适虚拟场景来呈现给用户。虚拟场景处的用户交互用于推动应用程序的进展。

交互预测器模块119基本上实时地接收和处理交互式应用程序的虚拟场景中的用户交互。处理交互以识别用户对虚拟场景中提供的一个或多个视觉选项的预测交互,其中一个或多个视觉选项用于访问应用程序的附加虚拟场景。视觉选项可以呈按钮、虚拟对象(例如,门的虚拟图像、电梯的虚拟图像、一层楼梯的虚拟图像等)的交互式图像,或场景的交互式图像,或浮动菜单选项形式,用于访问不同虚拟场景。

图3a至图3d示出用于访问其它虚拟场景的在交互式应用程序的虚拟场景中可用的视觉选项的一些实例。例如,图3a示出交互式应用程序的虚拟场景,即场景a303。场景a可以是在主页场景之后的交互式应用程序的第一虚拟场景,并且可以在用户使用主页场景中的选项完成设置操作之后提供,或者虚拟场景可以基于从用户的最后一个会话获得的交互式应用程序的状态来提供,或者可以响应于主页场景中由用户选择的选项来提供。场景a包括用于访问应用程序的不同虚拟场景的多个视觉选项。视觉选项可以分布在虚拟场景内并且可以基于视锥体(例如,视场)可见。例如,虚拟场景内的视觉选项可以包括用于访问虚拟场景b的虚拟门304的图像、用于访问虚拟场景c的电梯门305的图像、用于访问虚拟场景g的场景310的图像,以及用于访问与其相关联的虚拟场景的在浮动菜单311中提供的一组视觉选项。例如,浮动菜单311可以包括交互式视觉选项,用于返回到主页场景(场景d306)、访问喜欢的场景(场景e307)、下一场景(场景fn308)或前一场景(场景fp309)等。当然,在图3a中以及浮动菜单311中示出的选项仅仅是实例,并且可以提供更少或更多相似或不同类型的视觉选项以允许用户访问交互式应用程序的各种虚拟场景。

当用户正提供与在hmd104的显示器上渲染的应用程序的内容的交互时,处理交互以确定与视觉选项的预测性交互。在一段时间内累积各种视觉选项处的预测性交互,以确定预测交互是否超过阈值以及交互阈值是否指示用户将即时选择的视觉选项中的特定视觉选项。在一个实施方式中,用户在虚拟场景中提供的预测性交互可以包括注视方向、用户的替身或用户表示在虚拟场景内的移动、运动方向、可以通过跟踪可穿戴装置、控制器的触发器等确定的用户的手伸入虚拟场景中,或指示用户对不同视觉选项的兴趣的任何其它提示(即,信号),其中这些交互是由用户提供的动作,而没有实际选择视觉选项。例如,处理用户在应用程序的虚拟场景中的交互性可以检测到用户的注视指向视觉选项304(即,提供对虚拟场景b(例如,娱乐区)的访问的门的虚拟图像)。作为处理的一部分,交互预测器模块119可以累积用户对所有视觉选项的交互性,并且使用累积的交互性来预测用户对虚拟场景中的视觉选项中的特定视觉选项的即时选择并预加载对应虚拟场景用于用户交互。将参考图4详细地论述预测用户对视觉选项中的特定视觉选项的即时选择的细节。

图3b示出与视觉选项中的特定视觉选项相关联的虚拟场景的一个实例,基于与图3a中所示的虚拟场景a303中可用的视觉选项的预测交互的评估,针对即时选择识别所述虚拟场景。在图3b中所示的实例中,预测交互的处理将用户的即时选择识别为指向视觉选项304,并且对应虚拟场景被识别为娱乐区(即,虚拟场景b)。在此实例中,虚拟场景b可以是场景a的连续或不连续虚拟场景。交互预测器模块119可以在用户正在虚拟场景中交互时连续地处理用户的交互性,以识别用户在虚拟场景中的交互性中检测到的不同动作。基于处理,交互预测器模块119识别虚拟场景b,用于预加载、缓存和保持就绪,以便在用户实际上选择视觉选项304用于用户交互的情况下使场景b的内容可用于用户。

类似地,可以在场景a中提供电梯305的图像形式的视觉选项,以访问虚拟场景c。基于虚拟场景的上下文以及基于用户在交互式应用程序的虚拟环境中的位置或进展,在虚拟场景a中提供电梯选项。例如,如果当前在场景a中渲染的虚拟场景是多层建筑物的一部分,则在用户与应用程序的虚拟内容交互期间,在检测到用户进入多层建筑物的楼层(例如,底层、大厅)时可以提供电梯选项305。基于用户与涉及多层建筑物的应用程序的内容的交互,可以经由电梯选项305提供对多层建筑物的其它层的访问。取决于检测到用户在交互式应用程序中处于哪个楼层,电梯选项305可以提供对多层建筑物的其它楼层的虚拟场景的访问。例如,当检测到用户处于顶楼时,电梯选项提供对多层建筑物的更低楼层的访问。类似地,如果检测到用户处于多层建筑物中的地下室中时,则电梯选项可以提供对多层建筑物的更高楼层的访问。在其它实施方式中,替代电梯选项305,可以向用户提供访问多层建筑物的更高或更低层的楼梯选项(图3a中未示出)。

图3c示出酒店建筑物的较高楼层的实例虚拟场景,即场景c’,所述虚拟场景由用户使用图3a的场景a中的视觉选项305(即,电梯的图像)访问以访问更高楼层。虚拟场景,即场景c’示出具有门的走廊,以访问走廊两侧上的客房。一些选项(例如,客房的门)可能无法完全从图3c中所示的视角可见。然而,当用户与视觉选项中的相应视觉选项交互时,需要用户容易地获得与虚拟场景c’中的视觉选项相关联的虚拟场景的内容。当用户与虚拟场景交互时(例如,在通向客房的门的方向上移动头或朝向特定客房移动或朝向视觉选项伸出用户的手),评估用户交互性以确定动作是否指示场景c’内的视觉选项的即时选择。用户可能戴着或可能不戴着可以进行跟踪的可穿戴装置。交互预测器119可以使用内置在hmd中的传感器或使用hmd外部的传感器,或通过跟踪佩戴在用户的手上的可穿戴装置来跟踪用户的手。基于对识别视觉选项的即时选择的预测交互的评估,预加载对应虚拟场景的内容以用于用户交互。

除了提供更高楼层的虚拟场景c’的视觉选项(例如,客房或套房的门)之外,还提供专用于场景c’的一个或多个附加视觉选项。例如,图3c中所示的虚拟场景,即场景c’包括:用于访问其它楼层的电梯选项305a(更高和更低楼层两者,这取决于建筑物的层数以及用户发现其自身所处的当前层);以及浮动菜单选项311a,所述浮动菜单选项可以用于访问其中提供的各种选项,例如,主页选项和喜爱的场景选项。在图3c中提供的实例中,示出浮动菜单选项311a以提供比场景a中提供的选项少的选项。然而,可以在浮动菜单311a中提供相同数量或类型的选项,或更少或更多数目或类型的选项。

图3d示出可以使用在图3a的场景a中提供的电梯选项305访问的虚拟场景,即场景c”305b的另一实例。当用户从虚拟场景a选择电梯选项305以访问低于大厅的层时,虚拟场景,即场景c”是多层建筑物(例如,住宅公寓大楼或餐馆或酒店或办公楼)的地下室。在一个实例中,场景a可以是公寓大楼或餐馆或酒店或办公楼,并且用户可能已选择电梯选项305下降。替代地,代替电梯选项305,用户可能已与楼梯选项交互以从多层建筑物的大厅下降。用户还可以选择除了当前虚拟场景、即场景a303内可用的电梯选项305或楼梯选项之外的视觉选项(例如,前一场景、下一场景、喜欢的场景、最有挑战性的场景等),以访问地下室场景c”305b。在任何情况下,向用户呈现场景c”305b,即未完工地下室楼层的视图。用于访问地下室场景c”或任何其它虚拟场景的其它方式可以基于交互式应用程序的进展、用户的技能水平、特定奖金或用户可用于访问此虚拟场景的工具。场景c”提供专用于其中描绘的虚拟地下室场景的视觉选项。例如,在图3d中呈现的视图方向上提供的视觉选项包括用于访问更高楼层的一层楼梯311b,所述楼层可以是访问建筑物的大厅的底层。由于地下室是建筑物的最低部分,因此未提供进一步下降的选项。此外,由于电梯选项305用于从场景a访问地下室,因此场景c”中也提供电梯选项(图3d中未示出)。在图3d中所示的实例中,与图3a中提供的选项相比,为浮动菜单选项提供更少选项。然而,在其它实例中,可以提供浮动菜单选项,以包括使用户能够访问包括多层建筑物外部的优选虚拟场景的任何其它虚拟场景的附加选项。预加载器模块115及时识别和预加载用于用户交互的交互式应用程序的合适虚拟场景,其中从访问交互式应用程序的请求或从对应视觉选项的即时选择中识别虚拟场景。

现在将描述预加载器模块如何识别和预加载虚拟场景的内容的细节。预加载器模块115接合多个子模块,以帮助识别和预加载交互式应用程序的各种虚拟场景,从而在用户选择对应视觉选项时,使虚拟场景中的相应虚拟场景能够及时地完全渲染以供用户交互。预加载器模块115的虚拟场景选择器117用于响应于访问交互式应用程序的请求或响应于访问与当前虚拟场景不同的虚拟场景的请求而识别用于提供给用户的虚拟场景。虚拟场景选择器117可以使用请求中提供的信息来确定哪个虚拟场景提供给用户。请求可以指示用户希望从交互式应用程序的开头开始启动。在此情况下,即使用户在先前会话期间已选择应用程序并与应用程序交互,并且交互式应用程序的当前状态存储在用户的交互式应用程序的使用历史数据中,虚拟屏幕选择器117也将加载服务器上的交互式应用程序的第一虚拟场景并将第一虚拟场景的内容提供给客户端装置以供渲染。第一虚拟场景可以是用于设置应用程序的初始主页场景,如图3中所示,或者可以是紧接在初始主页场景之后的虚拟场景。

替代地,虚拟场景选择器117可以从使用历史数据库中检索交互式应用程序的当前状态,并且将与虚拟场景相关的涉及当前状态的信息提供到场景加载器123以供加载。如果不存在历史,则从头开始启动交互式应用程序。

场景加载器123使用由场景选择器117提供的虚拟场景信息来查询应用程序数据存储装置133内的应用程序,并且获得虚拟场景的内容。为虚拟场景获得的内容包括执行虚拟场景所需的代码和数据。将虚拟场景的内容加载和缓存在应用程序服务器中的存储器中,并且发送信号至场景执行引擎125,以执行代码来实现虚拟场景的渲染以进行用户交互。使用合适的api通过网络110将来自虚拟场景的内容转发到hmd104以供渲染。作为内容的一部分,还检索专用于虚拟场景的上下文的一个或多个视觉选项并将所述视觉选项提供给hmd以供渲染。

跟踪虚拟场景处的用户交互,并且所述用户交互用于影响应用程序的进展。交互预测器119连续地处理应用程序的虚拟场景中的用户交互性,以确定指示用户对虚拟场景中的特定视觉选项的兴趣的用户动作。每个动作识别交互式指示器。例如,当用户与虚拟场景的内容交互时,用户在特定方向上移动头的动作可以用于识别注视指示器。类似地,朝向虚拟场景内的特定对象(例如,视觉选项)移动的用户动作可以用于识别移动指示器等。基于用户在虚拟场景中的交互识别的这些指示器中的每一个指示器可以被赋予不同权重。在一些实施方式中,可以基于时间属性、位置属性等将不同权重赋予每个交互式指示器。例如,可以基于用户在特定方向上的注视持续的时间量来将不同权重赋予注视指示器。因此,如果用户在特定方向上的注视持续较长时间段,则赋予注视指示器的权重可以逐渐增加,以与用户在特定注视方向上的注视时间量对应。类似地,如果用户在虚拟场景内移动,则基于用户继续在特定方向上移动以及基于与视觉选项的接近度,可以将不同权重赋予特定方向上的移动指示器。用户越接近视觉选项,则赋予移动指示器的权重越大。

图4示出一个实例,其中交互预测器模块119随时间监视在图3a的虚拟场景内的用户交互性,并且评估从用户交互性识别的交互式指示器,以预测用户对视觉选项的即时选择,从而预加载用于用户交互的对应虚拟场景。交互预测器119评估从用户的各种动作识别的交互式指示器。随后,基于在虚拟场景中的用户交互性期间随时间检测到的用户的动作,所述交互预测器为不同交互式指示器赋予不同动作权重。随后,交互预测器119确定交互式指示器何时接近表示虚拟场景中的特定视觉选项的即时选择的阈值,其中特定视觉选项与第二虚拟场景相关联。应注意,虚拟场景中的每个视觉选项与应用程序的不同虚拟场景相关联,并且提供对应用程序的不同虚拟场景的访问。例如,参考图4,其描绘图3a的虚拟场景,视觉选项304提供对场景b的访问,视觉选项305提供对场景c的访问,视觉选项306提供对场景d的访问,视觉选项307提供对场景e的访问等。

在一些实施方式中,通过累积与多个交互式指示器中的每个交互式指示器相关联的动作权重来计算即时选择,以确定累积动作权重何时接近确定用户对虚拟场景中的视觉选项的即时选择的阈值。交互预测器模块119可以使阈值计算器引擎121累积由交互预测器模块119识别的各种交互式指示器,并且确定累积的交互式指示器何时接近阈值。如图4中所示,例如,交互预测器模块119检测到在时间t0处用户的注视方向指向虚拟场景a303中的视觉选项305(电梯的图像)。此外,交互预测器模块119可以检测到用户正朝向视觉选项305移动。将此信息提供到阈值计算器引擎121,所述阈值计算器引擎生成交互式指示器的累积表示。因此,针对时间t0由阈值计算器引擎121生成的累积交互式指示器表示为(g1w1+mw1),其中g1表示方向1(即,朝向视觉选项305)上的注视交互性,w1是在时间t0处赋予注视交互性的权重,并且m1是在方向1上的移动交互性。在时间t1处,交互预测器模块119检测到包括注视活动和移动活动的用户交互性继续指向视觉选项305。此外,在时间t1处,用户已在指向视觉选项305的方向1上伸出手。因此,在时间t1处,由阈值计算器引擎121生成的累积交互式指示器表示为(g1w2+m1w2+he1w1),其中he1表示在方向1上的伸手活动并且w2是在时间t1处赋予各种活动的权重。赋予每个交互式指示器的权重可以基于在用户与虚拟场景的交互性期间识别交互式指示器中的相应交互式指示器的时间。由于在时间t0处识别注视和移动交互性两者,因此针对时间t0,两个交互式指示器被赋予相同权重w1。

应注意,尽管每个交互式指示器每次都被赋予相同权重,但是它们仅作为实例提供。对于正进行评估的每个累积时间段,可以向不同交互式指示器赋予更多或更少权重。例如,赋予注视指示器的权重可以大于赋予移动指示器的权重,或反之亦然。因此,交互预测器119可以根据一些预定义规则识别和调整从虚拟场景中的用户交互性识别的每个交互式指示器的动作权重。交互预测器模块119在用户与虚拟场景的交互期间继续评估交互式指示器。基于评估,在时间t2处,由阈值计算器引擎121生成的累积交互式指示器可以表示为(g1w3+m1w3+he1w2),其中w3是赋予注视和移动指示器的权重,因为这些指示器中的每个指示器在时间t3处保持在方向1上。由于在比注视和移动指示器更晚的时间处检测到伸手指示器,因此注意到赋予伸手指示器的权重不同。在一些实施方式中,当最初检测到伸手指示器时赋予伸手指示器的权重可以与当最初检测到注视和/或移动指示器时赋予注视和/或移动指示器的权重相同。

除了计算交互式指示器的累积值之外,阈值计算器引擎121比较累积动作权重,以确定各种交互式指示器的累积动作权重是否接近预定义阈值。基于评估,可以确定各种交互式指示器的累积动作权重在时间t2处可能已达到预定义阈值,从而指示用户的即时选择是视觉选项305。作为响应,在图4中,阈值计算器引擎121将信号发送至交互预测器119,以指示视觉选项305是用户的即时选择的目标。因此,选择、加载、缓存和准备好与视觉选项305相关联的第二虚拟场景,以在用户选择视觉选项305时使预加载器模块能够执行第二虚拟场景的代码,从而实现第二虚拟场景的完全渲染以供用户交互。因此,基于评估,与用户正交互的虚拟场景中可用的不同视觉选项相关联的各种虚拟场景保持在各种准备状态,以便为用户提供对于对应虚拟场景的及时访问。例如,各种准备状态可以包括选择、加载、缓存和执行。上述状态仅仅是实例并且可以考虑更少或更多数目的状态。

由于当前访问虚拟场景,即图3a的场景a以进行用户交互,因此场景a处于“执行”状态。如上所述,场景a提供各种视觉选项来访问多个虚拟场景(例如,场景b、c、d、e、f和g)。因此,多个虚拟场景中的每个虚拟场景处于“入选”状态。基于在虚拟场景a处的用户交互期间检测到的交互式指示器的评估,动态地更新可以从虚拟场景a访问的多个虚拟场景中的每个虚拟场景的状态。交互式指示器的评估以及与检测到的交互式指示器相关联的动作权重的累积用于生成概率图。概率图提供可以从虚拟场景a访问的各种虚拟场景的状态的视觉表示,其中随时间动态地调整状态以匹配用户经由指向各种视觉选项的提示表达的变化兴趣。

图5a至图5f示出基于用户对图3a的场景a中可用的不同视觉选项提供的提示的评估而绘制的概率图的实例。图5a示出在首先评估虚拟场景a的视觉提示之后的概率图。选择与交互式应用程序的场景a相关联的视觉选项的概率最高,因为场景a已被选择并且当前正在执行以提供用于用户交互的内容。另外,可以通过各种视觉选项从场景a直接访问的虚拟场景设置为至少处于入选状态。入选状态指示用户可以通过与虚拟场景a中提供的视觉选项交互而随时访问任何一个虚拟场景。因此,虚拟场景b、c、d、e、fn、fp和g至少处于入选状态。另外,虚拟场景h、i和j示为具有低概率分数,因为在场景a中未提供直接访问这些虚拟场景的视觉选项。这些虚拟场景可以通过其它虚拟场景访问,或可以通过其它方式访问,例如通过用户可用的工具或选项访问。

此外,应注意,用户的即时选择指向与虚拟场景b(例如,娱乐区虚拟场景)相关联的视觉选项304。基于第一评估,交互预测器119将关于与视觉选项304相关联的虚拟场景的信息提供到虚拟场景选择器117。虚拟场景选择器117识别与视觉选项304相关联的虚拟场景,即场景b,并且将此信息提供到场景加载器123以识别场景b的实例,并将场景b的代码预加载到存储器中并且将代码缓存以使虚拟场景b准备就绪。场景b现在设置在“就绪”状态。

除了评估虚拟场景a处的用户交互指示器之外,交互预测器119可以发信号通知使用历史分析器127模块查询用户的使用历史数据库135,以便确定当用户处于虚拟场景a时用户喜欢交互的任何虚拟场景。基于查询,使用历史分析器127可以从在用户处于虚拟场景a时用户通常交互的浮动菜单311中识别与场景d相关联的视觉选项306。

还将使用历史分析器127提供的信息提供到虚拟场景选择器117,所述虚拟场景选择器将与场景d相关的信息转发到场景加载器123,使得场景加载器123可以识别场景d的实例,并将场景d的代码预加载到存储器中并且将代码缓存以使虚拟场景d准备就绪。因此,除了虚拟场景b之外,虚拟场景d也保持在就绪状态。因此,在第一评估之后,虚拟场景a处于执行状态并且虚拟场景b和d处于准备状态,而虚拟场景c、e、fn、fp和g处于入选状态。

图5b示出在虚拟提示的第二评估之后场景a的概率图。在第二评估期间,交互预测器119检测经由交互式指示器表达的用户兴趣从与场景b相关联的视觉选项304到与场景c相关联的视觉选项305的转变。例如,转变在图4中识别为g2并且被赋予权重w1。尽管在图4中所示的实例中,注视被示为从视觉选项305转变到视觉选项304,但是可以检测到从视觉选项304到视觉选项305的相同类型的转变。因此,调整概率图以指示场景b的累积分数的向下转变,以及场景c的累积分数的向上转变。场景a和场景d的累积分数继续处于与图5b中所示相同的水平。在第二评估期间检测到的用户兴趣的转变引起对虚拟场景b和c的状态的调整。在一些实施方式中,对状态的调整使场景b的代码和数据从存储器卸载,由此使场景b从准备状态降级到入选状态,并且同时使场景c的代码和数据上传到存储器中,由此使场景c从入选状态上升准备状态。尽管基于交互式指示器的评估,此类调整可能看上去似乎不同虚拟场景的内容被频繁加载到存储器中以及从存储器卸载,但是此类调整的频率较低,因为每个评估在预定义阈值中定义的时间段内延伸。预定义阈值中定义的时间段确保评估捕获用户对各种视觉选项的长时间兴趣,而不是捕获用户的转瞬即逝的兴趣。这样还确保最佳地使用系统的处理资源,因为仅必要的代码和数据在适当的时间加载到存储器中,而不想要的代码和数据从存储器清除。

图5c示出在第三评估之后当用户与来自场景a的内容交互时的概率图。在此图示中,用户的提示现在指向与场景g相关联的视觉选项310,而不指向与场景c相关联的视觉选项305。因此,场景g的计算出的累积分数增加,并且场景c的累积分数减小。由于场景g和c的计算出的累积分数的转变,在概率图中动态地调整场景g和场景c的相应状态以示出虚拟场景g现在被加载并就绪,而虚拟场景c从存储器卸载并处于入选状态。

当用户正与虚拟场景a的内容交互时,继续监视各种视觉选项处的用户提示可以引起对累积分数的调整,以及因此引起对与视觉选项中的相应视觉选项相关联的各种虚拟场景的状态的调整。图5d示出基于在虚拟场景a中的用户交互性期间检测到的各种视觉指示器的计算出的累积分数,在第四评估之后可以从虚拟场景a访问的各种虚拟场景的状态。图5d中所示的在第四评估之后的概率图类似于图5a中所示的在第一评估之后的概率图。虚拟场景的状态识别访问的各种准备状态。

图5e示出在第五评估之后的概率图。在第五评估之后,确定用户已通过选择场景a中的视觉选项304来访问虚拟场景b。因此,根据第五评估,虚拟场景a的累积分数下降并且虚拟场景b的累积分数上升,从而使场景a的状态从“执行”状态降级到“就绪”状态,并且虚拟场景b的状态从“就绪”状态上升到“执行”状态。虚拟场景a可以保持在就绪状态达预定义时间段,或直到用户进一步进入交互式应用程序,或如果根据使用历史确定用户从虚拟场景b访问与虚拟场景a相关联的视觉选项的频率为高。如果另一方面,用户从虚拟场景b访问与虚拟场景a相关联的视觉选项的频率为低,则虚拟场景a的状态可以从“执行”状态降级到“入选”状态。

除了将用户对某些虚拟场景的选择保存在使用历史中之外,使用历史还可以保存不同用户的使用选择。不同用户的使用历史可以针对交互式应用程序的虚拟场景获得,并且用于准备用于用户交互的某些虚拟场景。例如,用户可能第一次访问交互式应用程序,并且不具有交互式应用程序的任何使用历史。因此,可以使用不同用户的使用历史在用户的各种就绪阶段获得各种虚拟场景。

随着用户在应用程序内从一个虚拟场景前进到另一虚拟场景,用户可能无法访问先前访问的某些虚拟场景。这可能是由于缺少从当前虚拟场景到先前访问的某些虚拟场景的直接链路(即,视觉选项),其中先前访问的虚拟场景是不连续的。因此,这些虚拟场景的累积分数下降,并且在当前虚拟场景的访问期间,这些虚拟场景的状态设置成“不可用”,例如,如在图5a至图5d的概率图中针对虚拟场景h-j所示。设置成不可用的虚拟场景可以保存在存储器中或从存储器卸载以为其它虚拟场景腾出空间。

在替代实施方式中,虚拟场景b可以经由视觉选项提供对先前不可从虚拟场景a访问的某些虚拟场景(例如,虚拟场景h-j)的访问。因此,这些虚拟场景(即,虚拟场景h-j)被示为处于“入选”状态。类似地,虚拟场景b可能不提供对可从虚拟场景a访问的某些其它虚拟场景的访问。因此,那些虚拟场景(即,虚拟场景e、fn、fp和g)被卸载或设置成“不可用”状态,如在图5e中所示。

图5f示出在第六评估之后的实例概率图。如图所示,用户继续访问虚拟场景b。因此,虚拟场景b被示为正在执行。应注意,参考

图5f论述的虚拟场景b略微不同于图3b的虚拟场景b,因为图5f的虚拟场景b被指示为包括在图3b中未示出的附加视觉选项。基于用户从虚拟场景b访问某些虚拟场景的频率,针对虚拟场景a和d计算的累积分数为高。因此,虚拟场景a和d被示为被加载并且处于“就绪”状态。基于虚拟场景b中可用的视觉选项,虚拟场景c、fn、fp、h和j被示为处于“入选”状态。此外,基于从虚拟场景b中的用户交互性检测到的交互式指示器的评估,虚拟场景i的累积分数被计算为高,并且虚拟场景i被加载且设置成“就绪”状态。因此,动态地计算可以从当前虚拟场景访问的各种虚拟场景的累积分数,并且根据计算出的累积分数调整虚拟场景的状态。因此,当用户选择用于访问特定虚拟场景的虚拟选项时,所述特定虚拟场景就绪并且进行加载以供执行,并且内容可以立即提供给用户。这允许系统仅加载当前时间所需的某些虚拟场景的必要代码和数据,并且不加载当前时间不需要的某些其它虚拟场景的代码和数据。

图6a和6b示出在一些实施方式中在应用程序的虚拟场景中的各种链路的实例。应用程序可以包括多个虚拟场景,其中使用在先前的虚拟场景中提供的视觉选项或基于应用程序的当前状态访问每个相继的虚拟场景。图6a示出在一个实施方式中应用程序的各种虚拟场景的简化链路图,其中从当前虚拟场景提供对连续虚拟场景的访问。例如,可以从虚拟场景a访问虚拟场景b、c和d,且反之亦然。分别地,可以从虚拟场景b访问虚拟场景j和h且反之亦然,可以从虚拟场景c访问虚拟场景g和i且反之亦然,并且可以从虚拟场景d访问虚拟场景e和f且反之亦然。

另一方面,图6b示出在替代实施方式中应用程序的各种虚拟场景的更互相关联的链路图。在此实施方式中,除了可访问相继或先前虚拟场景之外,还可以从连续或不连续的一个或多个虚拟场景访问各种虚拟场景。例如,虚拟场景a提供对虚拟场景b、c、d、e、f和g的访问,并且这些虚拟场景中的每个虚拟场景提供对虚拟场景a的访问。虚拟场景b提供对虚拟场景a、d、e、f、h、i和j的访问,所述虚拟场景a、d、e、f、h、i和j提供对虚拟场景b的访问。虚拟场景c提供对虚拟场景a、d和h的访问,所述虚拟场景a、d和h提供对虚拟场景c的访问。虚拟场景d提供对虚拟场景a、b、c和j的访问。虚拟场景e和f各自提供对虚拟场景a和b的访问。虚拟场景i提供对虚拟场景l的访问且反之亦然。当用户前进通过各种虚拟场景并且离特定虚拟场景越来越远地移动时,对所述特定虚拟场景的直接访问变得更加有限或不存在。在这些情形下,经由用户所在的当前虚拟场景中可用的视觉选项,例如按钮、对象的图像、场景的图像、浮动菜单等访问所述特定虚拟场景。视觉选项允许用户从一个虚拟场景跳转到另一连续或不连续虚拟场景。为了确保在用户选择与不同虚拟场景相关联的视觉选项时向用户提供来自不同虚拟场景的内容,预加载器模块主动地评估交互式指示器并及时预加载适当内容。基于这种主动评估,系统资源得以保存,同时用户体验不受损害。

图7a示出在一个实施方式中用于预加载交互式应用程序的虚拟场景的各种方法操作。所述方法在操作610处开始,此时在服务器处接收对交互式应用程序的选择。交互式应用程序可以包括多个虚拟场景,其中通过交互式应用程序的自然进展或通过虚拟场景中提供的视觉选项访问每个相继虚拟场景。响应于对交互式应用程序的选择,识别并提供交互式应用程序的虚拟场景的内容,以在抬头显示器处渲染。上传、缓存、执行用于执行虚拟场景的代码和数据,并且提供从执行产生的内容以供渲染。处理在虚拟场景处的用户交互性,以识别与虚拟场景中的视觉选项的预测交互。如操作620中所示,处理继续,直到达到指示一个视觉选项的即时选择的动作阈值。交互式指示器的评估包括计算每个视觉选项处的加权动作的累积分数,以确定用户选择虚拟场景中的视觉选项中的特定视觉选项的可能性。

如操作630中所示,基于评估而预加载与针对即时选择识别的视觉选项相关联的交互式应用程序的第二虚拟场景。如操作640中所示,使用预加载内容执行第二虚拟场景,使得当用户选择与所述第二虚拟场景相关联的视觉选项时,用户可访问第二虚拟场景的内容。第二虚拟场景的预加载包括加载专用于第二虚拟场景的视觉选项,以允许用户与视觉选项交互来选择附加虚拟场景。当用户继续与虚拟场景交互时以及当用户在当前会话期间前进通过交互式应用程序的各种虚拟场景时,评估提示以及预加载合适虚拟场景的过程继续。

图7b示出在替代实施方式中用于预加载交互式应用程序的虚拟场景的各种方法操作。所述方法在操作650处开始,此时在服务器处接收对交互式应用程序的选择。交互式应用程序包括多个虚拟场景,其中通过交互式应用程序的自然进展或通过虚拟场景中提供的视觉选项访问每个虚拟场景。响应于对交互式应用程序的选择,识别并提供交互式应用程序的虚拟场景的内容,以在提供选择的用户所佩戴的抬头显示器上渲染。内容包括用于访问应用程序的附加虚拟场景的视觉选项。

如在操作655中所示,在提供虚拟场景之后,分析为应用程序保存的用户的使用历史,以识别第二虚拟场景进行预加载。使用历史保存用户对应用程序的先前交互式会话,其识别用户所访问的所有虚拟场景以及选择虚拟场景的模式(例如,自然进展或选择视觉选项)。基于分析,可以识别与用户先前在先前交互式会话期间未选择的虚拟场景中的特定视觉选项相关联的第二虚拟场景。在虚拟场景中可能存在用户尚未选择的多于一个视觉选项,并且分析可以基于在当前或先前交互式会话期间用户遵循的各种视觉选项的选择顺序而识别与特定视觉选项相关联的第二虚拟场景,或者可以基于多个用户遵循的视觉选项的选择顺序,或者可以从未选视觉选项中随机选择。多个用户可以是用户的社交联系人,或可以基于与用户相关联的一个或多个属性识别。或者,基于分析,可以识别用户频繁访问的虚拟场景内的视觉选项,并且识别与频繁访问的视觉选项相关联的第二虚拟场景。

如操作660中所示,基于在用户与虚拟场景的内容的当前交互期间与第二虚拟场景相关联的第一视觉选项的即时选择的预测,预加载用于执行第二虚拟场景的代码和数据。如操作665中所示,针对视觉选项中的特定视觉选项,评估虚拟场景中的用户的交互性,直到在用户与虚拟场景的交互期间检测到的赋予多个交互式指示器中的每个交互式指示器的动作权重达到动作权重的阈值。针对交互式指示器计算的累积分数指示用户对视觉选项中的特定视觉选项表达的兴趣。将针对即时选择识别的视觉选项中的特定视觉选项与同预加载的虚拟场景相关联的第一视觉选项相比较以确定是否匹配视觉选项。

如操作675中所示,基于确定,使用预加载内容执行预加载的第二虚拟场景,以在用户选择第一视觉选项时,实现用于用户交互的第二虚拟场景的完全渲染。第二虚拟场景的加载包括加载专用于第二虚拟场景的视觉选项,以允许用户与第二虚拟场景中的视觉选项交互来访问附加虚拟场景。当用户与虚拟场景交互时以及当用户在当前会话期间前进通过交互式应用程序的各种虚拟场景时,评估提示以及加载合适虚拟场景的过程继续。

本文所描述的各种实施方式包括:使用在用户与交互式应用程序的虚拟场景交互期间检测到的交互式指示器,检测用户对虚拟场景中的特定虚拟场景表达的兴趣;以及假设用户将选择与已为用户交互预加载的特定虚拟场景相关联的视觉选项,提前预加载特定虚拟场景。例如,在用户实际上仅通过观察和评估指向对象的用户的某些交互式指示器来选择对象之前,通常可以估计用户对于对象的兴趣。例如,通过仅注视对象的方向或朝向对象或在对象的方向上移动,或将手伸入虚拟场景、控制器触发器等,用户可以在不选择对象的情况下表达其对于对象的兴趣。可以评估这些指示器以估计用户对于对象的兴趣。在本文所论述的各种实施方式中,基于从虚拟场景中的用户交互检测到的指示器,预加载、缓存与特定视觉选项相关联的特定虚拟场景并使其保持就绪,使得在用户实际上选择视觉选项以访问特定虚拟场景的情况下,已执行特定虚拟场景,以便可以及时向用户提供对虚拟场景的内容的访问,而无需用户等待并且不会不必要地增加系统的计算资源的负担。各种实施方式的其它优点对所属领域技术人员将是显而易见的。

参考图8,示出根据本发明的实施方案的示出抬头显示器104的组件的图式。抬头显示器104包括用于执行程序指令的处理器700。存储器702出于存储目的提供,并且可以包括易失性和非易失性存储器两者。包括显示器704,所述显示器提供用户可以观看的视觉界面。提供电池706作为抬头显示器104的电源。运动检测模块708可以包括各种运动敏感硬件中的任一个,例如磁力计710、加速计712和陀螺仪714。

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

磁力计测量在抬头显示器附近的磁场的强度和方向。在一个实施方案中,在抬头显示器中使用三个磁力计710,从而确保世界空间偏航角的绝对参考。在一个实施方案中,磁力计被设计成跨越±80微特斯拉的地球磁场。磁力计受金属影响,并且通过实际偏航角提供单调的偏航角测量。磁场可能由于环境中的金属而扭曲,这会导致偏航角测量的扭曲。必要时,可以使用来自例如陀螺仪或相机的其它传感器的信息校准这种扭曲。在一个实施方案中,加速计712与磁力计710一起用于获得抬头显示器104的倾斜度和方位角。

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

提供相机716用于捕获真实环境的图像和图像流。抬头显示器104中可以包括多于一个相机,包括后向的相机(当用户正观看抬头显示器104的显示器时远离用户),以及前向的相机(当用户正观看抬头显示器104的显示器时指向用户)。另外,抬头显示器104中可以包括深度相机718,用于感测真实环境中的对象的深度信息。

抬头显示器104包括用于提供音频输出的扬声器720。而且,可以包括用于从真实环境捕获音频的麦克风722,所述音频包括来自周围环境的声音、用户发出的语音等。抬头显示器104包括用于向用户提供触觉反馈的触觉反馈模块724。在一个实施方案中,触觉反馈模块724能够引起抬头显示器104的移动和/或振动,以便向用户提供触觉反馈。

提供led726作为抬头显示器104的状态的视觉指示器。例如,led可以指示电池电量、通电等。提供读卡器728,以使抬头显示器104能够从存储卡读取信息以及向存储卡写入信息。包括usb接口730作为用于实现外围装置的连接,或与例如其它便携式装置、计算机等的其它装置的连接的接口的一个实例。在抬头显示器104的各种实施方案中,可以包括各种类型的接口中的任一个以实现抬头显示器104的更大连接性。

包括wifi模块732,用于实现经由无线网络技术与因特网的连接。而且,抬头显示器104包括蓝牙模块734,用于实现与其它装置的无线连接。还可以包括通信链路736,用于连接至其它装置。在一个实施方案中,通信链路736利用红外传输进行无线通信。在其它实施方案中,通信链路736可以利用各种无线或有线传输协议中的任一个与其它装置通信。

包括输入按钮/传感器738,从而为用户提供输入接口。可以包括各种输入接口中的任一个,例如,按钮、触摸板、操纵杆、轨迹球等。可以在抬头显示器104中包括超声波通信模块740,用于通过超声波技术促进与其它装置通信。

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

仅作为可包括在抬头显示器104中的示例性组件描述了抬头显示器104的前述组件。在本发明的各种实施方案中,抬头显示器104可以或可以不包括各种上述组件中的一些组件。出于便于本文所描述的本发明的各方面的目的,抬头显示器104的实施方案可以另外包括当前未描述但所属领域中已知的其它组件。

所属领域中的技术人员应了解,在本发明的各种实施方案中,前述手持式装置可以与显示在显示器上的交互式应用程序结合使用,以提供各种交互式功能。本文描述的示例性实施方案仅作为实例,而不是作为限制提供。

图9是根据本发明的各种实施方案的游戏系统800的框图。游戏系统800被配置成经由网络815向一个或多个客户端810提供视频流。网络类似于图2中所示的网络110。游戏系统800通常包括视频服务器系统820和任选的游戏服务器825。视频服务器系统820被配置成以最低服务质量将视频流提供给一个或多个客户端810。例如,视频服务器系统820可以接收改变视频游戏内的状态或视点的游戏命令,并且以最小时滞立即向客户端810提供反映此变化的更新视频流。视频服务器系统820可以被配置成以各种替代视频格式,包括尚未定义的格式提供视频流。此外,视频流可以包括被配置成以各种帧速率呈现给用户的视频帧。典型的帧速率是每秒30帧、每秒60帧以及每秒820帧。但是在本发明的替代实施方案中包括更高或更低帧速率。

本文中个别地称为810a、810b等的客户端810可以包括抬头显示器、终端、个人计算机、游戏控制台、平板电脑、电话、机顶盒、信息亭、无线装置、数字垫、独立装置、手持式游戏装置等。通常,客户端810被配置成接收编码的视频流、对视频流进行解码以及将所得视频呈现给用户,例如游戏的玩家。接收编码的视频流和/或对视频流进行解码的过程通常包括将各个视频帧存储在客户端的接收缓冲器中。视频流可以在与客户端810一体的显示器上或在例如监视器或电视的单独装置上呈现给用户。客户端810任选地被配置成支持多于一个游戏玩家。例如,游戏控制台可以被配置成支持两个、三个、四个或更多个同时的玩家。这些玩家中的每一个可以接收单独的视频流,或单个视频流可以包括专门为每个玩家生成的帧的区域,例如,基于每个玩家的视点生成的帧的区域。客户端810任选地在地理上分散。游戏系统800中包括的客户端数目可以从一个或两个广泛地变化至数千、数万或更多。如本文中所使用,术语“游戏玩家”用于指玩游戏的人,并且术语“游戏装置”用于指用于玩游戏的装置。在一些实施方案中,游戏装置可以指协作以向用户传递游戏体验的多个计算装置。例如,游戏控制台和hmd可以与视频服务器系统820协作以传递通过hmd观看的游戏。在一个实施方案中,游戏控制台从视频服务器系统820接收视频流,并且游戏控制台将视频流或对视频流的更新转发到hmd以进行渲染。

客户端810被配置成经由网络815接收视频流。网络815可以是任何类型的通信网络,包括电话网络、因特网、无线网络、电力线网络、局域网、广域网、专用网络等。在典型的实施方案中,视频流经由例如tcp/ip或udp/ip的标准协议传送。替代地,视频流经由专有标准传送。

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

客户端810可以但并非必须进一步包括被配置用于修改所接收视频的系统。例如,客户端可以被配置成执行进一步渲染,以将一个视频图像覆盖在另一视频图像上、剪裁视频图像等。例如,客户端810可以被配置成接收各种类型的视频帧,例如,i-帧、p-帧和b-帧,并将这些帧处理成图像以向用户显示。在一些实施方案中,客户端810的构件被配置成对视频流执行进一步渲染、着色、转换成3-d或类似操作。客户端810的构件任选地被配置成接收多于一个音频或视频流。客户端810的输入装置可以包括例如单手游戏控制器、双手游戏控制器、手势识别系统、注视识别系统、语音识别系统、键盘、操纵杆、指示装置、力反馈装置、运动和/或位置感测装置、鼠标、触摸屏、神经接口、相机、尚待开发的输入装置等。

由视频服务器系统820生成和提供由客户端810接收的视频流(以及任选地音频流)。如本文其它地方进一步描述,此视频流包括视频帧(以及音频流包括音频帧)。视频帧(例如,所述视频帧包括呈适当数据结构的像素信息)被配置成有意义地促成显示给用户的图像。如本文所使用,术语“视频帧”用于指主要包括被配置成促成,例如,实现显示给用户的图像的信息的帧。本文关于“视频帧”的大部分教示也可以应用于“音频帧”。

客户端810通常被配置成从用户接收输入。这些输入可以包括被配置成改变视频游戏的状态或另外影响游戏情节的游戏命令。可以使用输入装置接收游戏命令,和/或可以通过计算在客户端810上执行的计算指令自动地生成游戏命令。所接收的游戏命令经由网络815从客户端810传送到视频服务器系统820和/或游戏服务器825。例如,在一些实施方案中,游戏命令经由视频服务器系统820传送到游戏服务器825。在一些实施方案中,游戏命令的单独副本从客户端810传送到游戏服务器825和视频服务器系统820。游戏命令的传送任选地取决于命令的标识。通过用于向客户端810a提供音频或视频流的不同路线或通信信道,任选地从客户端810a传送游戏命令。

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

视频服务器系统820至少包括视频源830、i/o装置845、处理器850和非暂时性存储装置855。视频服务器系统820可以包括一个计算装置或分布在多个计算装置之间。这些计算装置任选地经由例如局域网的通信系统连接。

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

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

视频源830通常包括存储在例如存储装置855的计算机可读介质上的渲染逻辑,例如硬件、固件和/或软件。此渲染逻辑被配置成基于游戏状态创建视频流的视频帧。所有或部分渲染逻辑任选地安置于图形处理单元(gpu)内。渲染逻辑通常包括处理级,所述处理级被配置用于基于游戏状态和视点而确定对象之间的三维空间关系和/或应用适当的纹理等。渲染逻辑产生原始视频,然后通常对所述原始视频进行编码,之后再传送给客户端810。例如,可以根据adobe标准、.wav、h.264、h.263、on2、vp6、vc-1、wma、huffyuv、lagarith、mpg-x.xvid.ffmpeg、x264、vp6-8、realvideo、mp3等对原始视频进行编码。编码过程产生视频流,所述视频流任选地被打包以传递到远程装置上的解码器。视频流的特征在于帧大小和帧速率。典型的帧大小包括800×600、1280×720(例如,720p)、1024×768,但是可以使用任何其它帧大小。帧速率是每秒视频帧的数目。视频流可以包括不同类型的视频帧。例如,h.264标准包括“p”帧和“i”帧。i帧包括用于刷新显示装置上的所有宏块/像素的信息,而p帧包括用于刷新其子集的信息。p帧的数据大小通常小于i帧。如本文所使用,术语“帧大小”意指帧内的像素数目。术语“帧数据大小”用于指存储帧所需的字节数。

在替代实施方案中,视频源830包括例如相机的视频记录装置。此相机可以用于生成可以包括在计算机游戏的视频流中的延迟或直播视频。所得视频流任选地包括渲染图像和使用静物照相机或摄像机记录的图像。视频源830还可以包括存储装置,所述存储装置被配置成存储先前记录的视频以包括在视频流中。视频源830还可以包括:运动或定位感测装置,所述运动或定位感测装置被配置成检测例如人的对象的运动或位置;以及逻辑,所述逻辑被配置成基于检测到的运动和/或位置而确定游戏状态或产生视频。

视频源830任选地被配置成提供叠加,所述叠加被配置成放置于另一视频上。例如,这些叠加可以包括命令界面、登录指令、给游戏玩家的消息、其它游戏玩家的图像、其它游戏玩家的视频馈送(例如,网络摄像头视频)。在包括触摸屏界面或注视方向界面的客户端810a的实施方案中,叠加可以包括虚拟键盘、操纵杆、触摸板等。在叠加的一个实例中,玩家的语音叠加在音频流上。视频源830任选地还包括一个或多个音频源。

在视频服务器系统820被配置成基于来自多于一个玩家的输入而维持游戏状态的实施方案中,每个玩家可以具有包括视图位置和方向的不同视点。视频源830任选地被配置成基于玩家的视点为每个玩家提供单独的视频流。此外,视频源830可以被配置成向每个客户端810提供不同帧大小、帧数据大小和/或编码。视频源830任选地被配置成提供3-d视频。

i/o装置845被配置用于视频服务器系统820,以发送和/或接收信息,例如视频、命令、对信息的请求、游戏状态、注视信息、装置运动、装置位置、用户运动、客户端标识、玩家身份、游戏命令、安全信息、音频等。i/o装置845通常包括通信硬件,例如网卡或调制解调器。i/o装置845被配置成与游戏服务器825、网络815和/或客户端810通信。

处理器850被配置成执行包括在本文中所讨论的视频服务器系统820的各种组件中的逻辑,例如软件。例如,处理器850可以通过软件指令编程,以便执行视频源830、游戏服务器825和/或客户端限定器860的能力。视频服务器系统820任选地包括处理器850的多于一个实例。处理器850也可以通过软件指令编程,以便执行由视频服务器系统820接收的命令,或协调本文中所论述的游戏系统800的各种元件的操作。处理器850可以包括一个或多个硬件装置。处理器850是电子处理器。

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

视频服务器系统820任选地还包括客户端限定器860。客户端限定器860被配置成远程地确定例如客户端810a或810b的客户端的能力。这些能力可以包括客户端810a本身的能力,以及客户端810a与视频服务器系统820之间的一个或多个通信信道的能力。例如,客户端限定器860可以被配置成通过网络815测试通信信道。

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

例如,可以通过执行客户端810a上的代理和/或通过将测试视频发送至客户端810a来进行自动确定。代理可以包括嵌入在网页中或作为附件安装的计算指令,例如java脚本。代理任选地由客户端限定器860提供。在各种实施方案中,代理可以发现客户端810a的处理能力,客户端810a的解码和显示能力、客户端810a与视频服务器系统820之间的通信信道的时滞可靠性和带宽、客户端810a的显示类型、存在于客户端810a上的防火墙、客户端810a的硬件、在客户端810a上执行的软件、客户端810a内的注册表条目等。

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

图10示出可以用于提供对不同游戏的访问的信息服务提供商架构的实施方式。信息服务提供商(isp)902向地理上分散并经由网络950连接的用户900提供多种信息服务。网络950可以类似于图1或图2的网络110。尽管已参考提供对游戏的快速访问来论述各种实施方式,但是实施方式可以扩展至提供对例如虚拟旅游等的其它交互式应用程序的更快速访问,所述交互式应用程序提供的内容可以包括各种级别的内容,可以使用一个或多个视觉提示或其它工具或应用程序点,或用户在与交互式应用程序的交互期间获得的奖品或奖励来访问所述内容。例如,isp902可以仅传递例如游戏的一种类型的服务,或例如游戏、股票价格更新、广播媒体、新闻、体育、博彩等各种服务。另外,每个isp提供的服务可以是动态的,即,可以在任何时间点添加或取消服务。因此,向特定个人提供特定类型的服务的isp可以随时间改变。例如,当用户处于其家乡时,用户可以由靠近用户的isp服务,并且当用户旅行到不同城市时,用户可以由不同isp服务。家乡isp将通过连接模块将所需信息和数据从用户的游戏或访问配置文件传递到新isp,使得用户信息“跟随”用户到新城市,从而使数据更接近用户且更容易访问。在另一实施方式中,可以在管理用户的信息的主isp与在主isp的控制下直接与用户介接的服务器isp之间建立主服务器关系。在另一实施方式中,当客户端在世界各地移动时,数据从一个isp传递到另一isp(即,在分配给用户的数据中心的切换期间),并且这种传递可以基于相应isp提供的服务的兼容性,以使处于为用户服务的更佳位置的isp902成为传递这些服务的isp。

isp902包括应用程序服务提供商(asp)906,所述asp通过网络向消费者提供基于计算机的服务。使用asp模型提供的软件有时还称为按需软件或软件即服务(saas)。提供对特定应用程序(例如,消费者关系管理)的访问的简单形式是通过使用例如http的标准协议。例如,应用程序软件驻留在供应商的系统上,并且由用户使用html通过网络浏览器访问,或由供应商提供的专用客户端软件访问,或经由例如瘦客户端的其它远程接口访问。

在广泛的地理区域上传递的服务通常使用云计算。云计算是一种计算方式,其中动态可扩展且通常虚拟化的资源作为因特网上的服务提供。用户无需成为支持云计算的“云”中的技术基础架构方面的专家。云计算可以分成不同服务,例如,基础架构即服务(iaas)、平台即服务(paas)以及软件即服务(saas)。云计算服务通常提供从网络浏览器访问的在线公共业务应用程序,而软件和数据存储在服务器上。术语“云”基于如何在计算机网络图中描绘因特网而用作因特网的隐喻(例如,使用服务器、存储装置和逻辑),并且是其隐藏的复杂基础架构的抽象。

此外,isp902包括游戏处理服务器或提供商(gaps)908,所述gaps由游戏客户端用于玩单人和多人视频游戏。通过因特网播放的大部分视频游戏经由与游戏服务器的连接来操作。通常,游戏使用专用服务器应用程序,所述专用服务器应用程序从玩家收集数据并将数据分发给其它玩家。这比对等布置更有效,但是这需要单独服务器来托管服务器应用程序。在另一实施方式中,gaps在玩家之间建立通信,并且其相应游戏装置在不依赖于集中式gaps的情况下交换信息。

专用gaps是独立于客户端运行的服务器。这些服务器通常在位于数据中心中的专用硬件上运行,从而提供更多带宽和专用处理能力。专用服务器是托管大多数基于pc的多人游戏的游戏服务器的优选方法。大型多人在线游戏在通常由拥有游戏名称的软件公司托管的专用服务器上运行,从而允许专用服务器控制和更新内容。

广播处理服务器或提供商(bps)910将音频或视频信号分发给观众。向很窄范围的观众广播有时称为窄播。广播分发的最后一段是信号如何传递给听众或观众,并且其可以如同无线电台或tv电台一样用无线电播放到天线和接收器,或可以经由电台或直接从网络穿过有线tv或有线广播(或“无线电缆”)。因特网还可以尤其通过多播将无线电或tv带给接收者,从而允许共享信号和带宽。历史上,广播由地理区域划分,例如国家广播或区域广播。然而,随着快速因特网的普及,广播不按地理位置定义,因为内容可以到达世界上几乎任何国家。

存储服务提供商(ssp)912提供计算机存储空间以及相关的管理服务。ssp还提供定期备份和归档。通过提供存储即服务,用户可以根据需要订购更多存储。另一主要优点是ssp包括备份服务,如果用户的计算机硬盘发生故障,用户不会丢失其所有数据。此外,多个ssp可以具有用户数据的全部或部分副本,从而允许用户以独立于用户所处位置或用于访问数据的装置的有效方式来访问数据。例如,用户可以访问家用计算机中的个人文件,以及在用户移动时访问移动电话中的个人文件。

通信提供商914提供与用户的连接性。一种通信提供商是提供对因特网的访问的因特网服务提供商(isp)。isp使用适合于传递因特网协议数据报的数据传输技术,例如拨号、dsl、电缆调制解调器、光纤、无线或专用高速互连来连接其消费者。通信提供商还可以提供消息传送服务,例如,电子邮件、即时通信和sms文本发送。另一类型的通信提供商是网络服务提供商(nsp),所述nsp通过提供对因特网的直接主干网访问来销售带宽或网络访问。网络服务提供商可以由电信公司、数据载体、无线通信提供商、因特网服务提供商、提供高速因特网访问的有线电视运营商等组成。

数据交换904将isp902内的若干模块互连,并且经由网络950将这些模块连接至用户900的客户端装置920。数据交换904可以覆盖isp902的所有模块都非常接近的小区域,或当不同模块在地理上分散时可以覆盖大的地理区域。例如,数据交换904可以包括数据中心的机柜内的快速千兆以太网(或更快),或洲际虚拟区域网络(vlan)。

用户900通过相应客户端装置920访问远程服务,所述客户端装置包括至少cpu、存储器(未示出)、显示器和i/o。客户端装置可以是pc、移动电话、上网本、平板电脑、游戏系统、pda等。在一个实施方式中,isp1070识别客户端使用的装置类型,并且调整所采用的通信方法。在其它情况下,客户端装置使用例如html的标准通信方法来访问isp1070。

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

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

本发明还可以实施为计算机可读介质上的计算机可读代码。替代地,可以使用上述数据交换互连从服务器下载计算机可读代码。计算机可读介质是可以存储数据的任何数据存储装置,所述数据其后可以由计算机系统读取。计算机可读介质的实例包括硬盘驱动器、网络连接存储器(nas)、只读存储器、随机存取存储器、cd-rom、cd-r、cd-rw、磁带,以及其它光学和非光学数据存储装置。计算机可读介质可以包括计算机可读有形介质,所述计算机可读有形介质分布在网络耦合的计算机系统上,使得计算机可读代码以分布方式存储和执行。

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

尽管为了清楚理解的目的已在一些细节上描述前述发明,但是显而易见的是,可以在所附权利要求书的范围内实践某些改变和修改。因此,本发明的实施方式被视为说明性的而不是限制性的,并且本发明不限于本文给出的细节,而是可以在所描述实施方式的范围和等效物内修改。

本文描述游戏控制台的示例性总体系统架构。实例游戏控制台可以包括playstation(ps3)或playstation(ps4)娱乐装置,所述娱乐装置可以与控制器兼容,用于实施本发明的实施方案。尽管详细地解释ps3游戏控制台系统架构,但是应注意,本文所描述的各种实施方式可以扩展至不同游戏控制台或计算装置的系统架构。提供一种系统单元,其中各种外围装置可连接至所述系统单元。所述系统单元类似于图1的云游戏系统300。所述系统单元包括:处理器,所述处理器可以是如在ps3中的8核处理器,或如在ps4中的多核处理器;如在ps3中的动态随机存取存储器(xdram)单元或如在ps4中的图形动态随机存取存储器,例如gddr5;如在ps3中的具有专用视频随机存取存储器(vram)单元的真实合成器图形单元(例如,550mhzgpu),或具有ps4和ps4pro中的共享图形存储器的800或900mhzgpu;以及i/o桥接器。所述系统单元还包括用于从磁盘读取的blu光盘只读存储器(bd-)(光学)磁盘读取器,以及可通过i/o桥接器访问的可移动插入式硬盘驱动器(hdd)。任选地,所述系统单元还包括用于读取紧凑式闪存卡、memory存储卡等的存储卡读取器,所述存储卡读取器类似地可通过i/o桥接器访问,且在ps4中通过内置dvr访问以记录游戏。

i/o桥接器还连接至六个通用串行总线(usb)2.0端口;千兆以太网端口;ieee802.11b/g无线网络(wi-fi)端口;以及能够支持多达七个蓝牙连接的无线链路端口。

在操作中,i/o桥接器处理所有无线、usb和以太网数据,包括来自一个或多个游戏控制器(如在ps3中的dualshock3控制器,或如在ps4中的ps4dualshock4控制器等)的数据。例如,当用户正在玩游戏时,i/o桥接器经由蓝牙链路从游戏控制器接收数据,并且将数据引导至处理器(在ps3中)或多核处理器(在ps4中),所述处理器相应地更新游戏的当前状态。此外,其它图像和移动传感器将在用户玩游戏期间捕获的数据提供至i/o桥接器,所述i/o桥接器将数据引导至相应处理器。游戏控制器(例如,ps4的游戏控制器)包括用于共享游戏的共享按钮选项、可点击触摸板、可再充电电池(锂离子或其它类型)等。

除了游戏控制器之外,无线、usb和以太网端口还为其它外围装置提供连接性,例如:遥控器;键盘;鼠标;便携式娱乐装置,例如sonyplaystation娱乐装置;摄像机,例如摄像机;麦克风耳机;以及可移动硬盘驱动器。这些外围装置因此原则上可以无线地连接至所述系统单元;例如便携式娱乐装置可以经由wi-fi专门连接通信,而麦克风耳机可以经由蓝牙链路通信。

提供这些接口意味着playstation3装置还可能与其它外围装置兼容,例如,数字视频录像机(dvr)、机顶盒、数字相机、便携式媒体播放器、ip语言电话、移动电话、打印机和扫描仪。

另外,传统的存储卡读取器可以经由usb端口连接至系统单元,从而实现或playstation装置所使用种类的存储卡的读取。

在本实施方式中,游戏控制器可用于经由蓝牙链路与系统单元无线地通信。然而,游戏控制器可以替代地连接至usb端口,由此还提供用于为游戏控制器的电池充电的电力。除了一个或多个模拟操纵杆和常规控制按钮之外,游戏控制器对于对应于每个轴线的平移和旋转的六个自由度上对运动敏感。因此,除了或代替常规按钮或操纵杆命令,游戏控制器的用户发出的手势和命令可以被转换为游戏的输入。任选地,例如playstationtm便携式装置的其它无线启用的外围装置可以用作控制器。在playstationtm便携式装置的情况下,附加游戏或控制信息(例如,控制指令或生命数量)可以提供于装置的屏幕上。还可以使用其它替代或辅助控制装置,例如,跳舞毯(未示出)、光枪(未示出)、方向盘和踏板(未示出)或定制控制器,例如用于快速响应测验游戏的单个或几个大按钮(也未示出)。

遥控器还可用于经由蓝牙链路与系统单元无线地通信。遥控器包括适用于bluraytm光盘bd-rom读取器的操作以及磁盘内容的导航的控件。

除了常规的预录制和可录制光盘(cd)以及所谓的超级音频cd之外,bluraytm光盘bd-rom读取器还可用于读取与playstation和playstation2装置可兼容的光盘只读存储器(cd-rom)。除了常规的预录制和可录制dvd之外,bluraytm光盘bd-rom读取器也可用于读取与playstation2tm和playstation3tm装置可兼容的数字通用光盘-只读存储器(dvd-rom)。bluraytm光盘bd-rom读取器还可用于读取与playstation3装置可兼容的bd-rom,以及常规预录制和可录制蓝光光盘。

通过到显示器的音频和视频连接器以及例如具有显示器和一个或多个扬声器的监视器或电视机之类的声音输出装置,系统单元可用于供应音频和视频,所述音频和视频经由真实合成器图形单元由playstation3或playstation4装置生成或解码。音频连接器可以包括常规的模拟和数字输出,而视频连接器可以不同地包括分量视频、s视频、复合视频以及一个或多个高清晰度多媒体接口(hdmi)输出。因此,视频输出可以呈例如pal或ntsc,或720p、1080i或1080p高清晰度以及4k、hdr格式。

音频处理(生成、解码等)由处理器执行。例如,playstation3装置的操作系统支持5.1环绕声、剧场环绕声(dts),以及来自blu-光盘的7.1环绕声的解码。

在本实施方式中,摄像机包括cmos(互补金属氧化物半导体)图像传感器(尽管还可以使用电耦合装置(ccd)图像传感器)、led指示器以及基于硬件的实时数据压缩和编码设备,使得可以适当格式、例如基于图像内的mpeg(运动图像专家组)标准传输压缩视频数据,用于由系统单元解码。相机led指示器被布置成响应于来自系统单元的合适控制数据而照亮,例如以表示不利照明条件。摄像机的实施方式可以经由usb、蓝牙或wi-fi通信端口以各种方式连接至系统单元。摄像机的实施方式可以包括一个或多个相关联麦克风并且还能够传输音频数据。在摄像机的实施方式中,ccd可以具有适用于高清晰度视频捕获的分辨率。在使用时,由摄像机捕获的图像可以例如并入游戏内,或解释为游戏控制输入。

一般来说,为了经由系统单元的一个通信端口与例如摄像机或遥控器的外围装置进行成功数据通信,应提供例如装置驱动器的一个合适的软件。装置驱动器技术是众所周知的并且这里将不详细描述,只是技术人员将意识到,在所描述的本实施方式中可能需要装置驱动器或类似软件接口。

处理器具有包括四个基本组件的架构:包括存储器控制器和双总线接口控制器的外部输入和输出结构;称为功率处理元件的主处理器;称为协同处理元件(spe)的八个协同处理器;以及称为元件互连总线的连接上述组件的循环数据总线。与playstation2装置的情感引擎的6.2gflop相比,处理器的总浮点性能是218gflops。

功率处理元件(ppe)基于通过3.2ghz的内部时钟运行的双向同时多线程功率兼容的powerpc核(ppu)。所述ppe包括512kb级2(l2)缓存器和32kb级1(l1)缓存器。ppe每个时钟循环能够进行八次单位置操作,在3.2ghz下转换成25.6gflop。ppe的主要作用充当协同处理元件的控制器,其处理大部分计算工作量。在操作中,ppe维护作业队列、为协同处理元件调度作业以及监视其进度。因此,每个协同处理元件运行作用为获取作业的内核、执行内核并与ppe同步。

每个协同处理元件(spe)包括相应的协同处理单元(spu)和相应的存储器流控制器(mfc),所述mfc又包括相应的动态存储器存取控制器(dmac)、相应的存储器管理单元(mmu)和总线接口(未示出)。每个spu是risc处理器,所述risc处理器的时钟为3.2ghz并且包括原则上可扩展至4gb的256kb本地ram。每个spe提供单精度性能的理论上25.6gflops。spu可以在单个时钟循环内对4个单精度浮点成员、4个32位数、8个16位整数或16个8位整数进行操作。在同一时钟循环中,spu还可以执行存储器操作。spu不直接访问系统存储器xdram1426;由spu形成的64位地址被传递至mfc,所述mfc指示其dma控制器经由元件互连总线和存储器控制器访问存储器。

元件互连总线(eib)是处理器内部的逻辑循环通信总线,所述逻辑循环通信总线连接上述处理器元件,即ppe、存储器控制器、双总线接口和8个spe,总共12个参与者。参与者可以每时钟循环8字节的速率同时读取总线以及向总线写入。如前所述,每个spe包括用于调度较长读或写序列的dmac。eib包括四个信道,顺时针和逆时针方向上各两个。因此,对于十二个参与者,任何两个参与者之间的最长逐步数据流是在适当方向上的六个步骤。因此,在通过参与者之间的仲裁充分利用的情况下,12个时隙的理论峰值瞬时eib带宽是每时钟96b。这相当于在3.2ghz(千兆赫兹)的时钟速率下307.2gb/s(千兆字节/秒)的理论峰值带宽。

存储器控制器包括由rambus公司开发的xdram接口。存储器控制器以25.6gb/s的理论峰值带宽与rambusxdram1426介接。

双总线接口包括rambus系统接口。所述接口被组织成12个信道,每个信道8位宽,其中五个路径为入站且七个路径为出站。这经由控制器在处理器与i/o桥接器之间以及经由控制器在真实合成器图形单元之间提供62.4gb/s(36.4gb/s出站、26gb/s入站)的理论峰值带宽。

由处理器发送至真实合成器图形单元的数据将通常包括显示列表,所述显示列表是用于绘制顶点、将纹理应用于多边形、指定光照条件等的命令序列。

实施方案可以包括捕获深度数据,以更好地识别真实世界用户并引导替身的活动或场景。对象可以是人握着的某物,或还可以是人的手。在此描述中,术语“深度相机”和“三维相机”是指能够获得距离或深度信息以及二维像素信息的任何相机。例如,深度相机可以利用受控的红外线照明来获得距离信息。另一示例性深度相机可以是立体相机对,其使用两个标准相机对距离信息进行三角测量。类似地,术语“深度感测装置”是指能够获得距离信息以及二维像素信息的任何类型的装置。

三维图像的最新进展为实时交互式计算机动画的可能性增加打开了大门。具体而言,除了普通二维视频图像之外,新“深度相机”还提供捕获和映射第三维的能力。通过新的深度数据,本发明的实施方案允许将计算机生成的对象实时放置于视频场景内的各个位置中,包括在对象后方。

此外,本发明的实施方案为用户提供实时交互式游戏体验。例如,用户可以实时与各种计算机生成的对象交互。此外,视频场景可以实时交替以增强用户的体验。例如,计算机生成的服装可以嵌在用户的衣服上,并且计算机生成的光源可以用于投影视频场景内的虚拟阴影。因此,使用本发明的实施方案以及深度相机,用户可以在其自身的起居室内体验交互式环境。类似于普通相机,深度相机捕获包括视频图像的多个像素的二维数据。这些值是像素的颜色值,通常每个像素的红色、绿色和蓝色(rgb)值。以此方式,由相机捕获的对象在监视器上显示为二维对象。

本发明的实施方案还考虑了分布式图像处理配置。例如,本发明不限于在一个或甚至两个位置中(例如,在cpu中或在cpu和一个其它元件中)进行的捕获图像和显示图像处理。例如,输入图像处理可以容易地在相关联cpu、处理器或可以执行处理的装置中进行;基本上所有图像处理可以分布在整个互连系统中。因此,本发明不限于任何特定图像处理硬件电路和/或软件。本文所描述的实施方案也不限于通用硬件电路和/或软件的任何特定组合,也不限于由处理组件执行的指令的任何特定源。

考虑到上述实施方案,应理解,本发明可以采用涉及存储在计算机系统中的数据的各种计算机实施的操作。这些操作包括需要对物理量进行物理操纵的操作。尽管不是必需的,但是这些量通常采用能够进行存储、传递、组合、比较以及以其它方式控制的电信号或磁信号的形式。此外,所执行操纵通常用术语来表示,例如,产生、识别、确定或比较。

本文描述的构成本发明的一部分的任何操作是有用的机器操作。本发明还涉及用于执行这些操作的装置或设备。所述设备可以出于所需目的专门构造,或所述设备可以是由存储在计算机中的计算机程序选择性地激活或配置的通用计算机。具体而言,各种通用机器可以与根据本文中的教示写入的计算机程序一起使用,或可以更方便地构造更专用设备来执行所需操作。

上述发明可以用各种计算机系统配置实践,包括手持式装置、微处理器系统、基于微处理器或可编程的消费者电子装置、小型计算机、大型计算机等。本发明还可以在分布式计算环境中实践,其中任务由通过通信网络链接的远程处理装置执行。

本发明还可以实施为计算机可读介质上的计算机可读代码。计算机可读介质是可以存储数据的任何数据存储装置,所述数据其后可以由计算机系统读取,包括电磁波载体。计算机可读介质的实例包括硬盘驱动器、网络连接存储器(nas)、只读存储器、随机存取存储器、cd-rom、cd-r、cd-rw、磁带,以及其它光学和非光学数据存储装置。计算机可读介质还可以分布在网络耦合的计算机系统上,使得计算机可读代码以分布方式存储和执行。

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1