发布信息

在头戴式显示器(HMD)和主机计算机之间划分渲染的制作方法

作者:admin      2022-07-10 20:51:46     767



摄影电影;光学设备的制造及其处理,应用技术在头戴式显示器(hmd)和主机计算机之间划分渲染1.相关申请的交叉引用2.本pct申请要求于2019年12月17日提交的名称为“split rendering between a head-mounted display(hmd)and a host computer”的美国专利申请序列号16/717,940的优先权,该专利申请全文据此以引用方式并入。背景技术:3.虚拟现实(vr)系统用于视频游戏工业之内及其他方面。传统的vr系统设置包括vr头戴式耳机,该vr头戴式耳机经由有线数据连接物理地拴系到主机计算机。在该常规设置中,主机计算机执行基于图形的应用程序诸如视频游戏,其中大多数(如果不是全部)图形渲染操作由主机计算机处理,并且vr头戴式耳机简单地显示从主机计算机接收的像素数据。该设置利用主机计算机的高计算能力和有线连接的低延迟来在轻型vr头戴式耳机上显示高质量图像,就头戴式耳机的图形处理功能而言,该头戴式耳机的功能很像“瘦客户端”设备。但是,由于此类vr头戴式耳机物理地连接到主机计算机,因此在使用vr头戴式耳机时用户的移动性受到限制。此外,由于需要将电缆连接和断开,这种vr系统的建立和拆卸都比需要的要困难。4.在另一方面,集成式(或独立)vr头戴式耳机无需单独的机器即可执行全部图形处理操作来显示图像。虽然独立的vr头戴式耳机因为它们不必被拴系到主机计算机而为用户提供了更大的移动性,但制造既舒适又能够渲染高质量图形的集成式vr头戴式耳机可能具有挑战性。例如,任务是执行计算密集、高功率消耗的图形处理操作来渲染高质量的图形的独立vr头戴式耳机往往很快变热,并且它们也往往是笨重的和/或沉重的,使得长时间佩戴它们会感到不舒服。为了缓解这些缺点,一些独立的vr头戴式耳机通过使用较低质量的图形处理部件来换取舒适性,这些图形处理部件以较低的分辨率、较低的动态范围和/或有限的一组仅基本纹理来渲染图形,这使得此类头戴式耳机上的图形处理操作在计算上不那么密集,从而实现了不会太热因此佩戴起来更舒适的重量更轻的头戴式耳机。但是,希望在vr中体验高质量图形的用户对当今的独立vr头戴式耳机不满意,因为这些头戴式耳机无法兼具品质和舒适性。5.本文提供了用于改进和增强这些及其他系统的技术性解决方案。附图说明6.参考附图进行详细描述。在这些图中,附图标记的最左边数字标识首次出现该附图标记的图。在不同图中使用相同的参考标号指示相似或相同的部件或特征。7.图1是示出根据本文所公开的实施方案的用于在头戴式显示器(hmd)和主机计算机之间划分帧的渲染工作负荷的示例性技术的图示。8.图2是示出根据本文所公开的实施方案的两条示例性时间线的图示,这两条时间线示出了各个帧的相应渲染工作负荷,这些相应渲染工作负荷在主机计算机和hmd之间划分。9.图3示出了根据本文所公开的实施方案的用于通过在hmd和主机计算机之间划分帧的渲染工作负荷来渲染帧的示例性过程的流程图。10.图4示出了根据本文所公开的实施方案的用于基于由主机计算机生成的运动矢量数据在hmd上应用重新投影调整的示例性过程的流程图。11.图5示出了根据本文所公开的实施方案的用于基于由在主机计算机上执行的应用程序生成的额外像素数据来应用重新投影调整的示例性过程的流程图。12.图6示出了根据本文所公开的实施方案的用于基于由在主机计算机上执行的应用程序生成的深度数据来应用重新投影调整的示例性过程的流程图。13.图7示出了根据本文所公开的实施方案的用于hmd直接从手持式控制器接收手跟踪数据,以及使用手跟踪数据将虚拟手叠加在应用程序渲染的场景上的示例性过程的流程图。14.图8a和图8b示出了根据本文所公开的实施方案的系统的两种另选设置,该系统在hmd和主机计算机之间划分帧的渲染工作负荷。15.图9示出了可在其中实现本文所公开的技术的可穿戴设备诸如hmd(例如vr头戴式耳机)和主机计算机的示例性部件。具体实施方式16.用户可佩戴头戴式显示器(hmd)来实现使用户沉浸在虚拟现实(vr)环境或增强现实(ar)环境中的目的。hmd的一个或多个显示面板基于由应用程序(例如,视频游戏)生成的数据来呈现图像。该应用程序在通信地耦接到hmd的主机计算机上执行,并且该应用程序生成用于一系列帧中的各个帧的像素数据。像素数据被发送到hmd以呈现由用户通过包括在hmd中的光学器件观看的图像,使用户感知这些图像,就好像用户沉浸在vr或ar环境中一样。17.本文所述的技术和系统用于在hmd和主机计算机之间划分单个帧的渲染工作负荷,使得主机计算机执行渲染工作负荷的第一部分并且hmd执行渲染工作负荷的第二部分。对于给定帧,hmd被配置为向主机计算机发送头部跟踪数据,并且主机计算机被配置为使用头部跟踪数据来生成用于帧的像素数据以及除了该像素数据之外的额外数据。该额外数据可以包括但不限于姿态数据、深度数据、运动矢量数据、视差遮挡数据和/或额外像素数据。例如,主机计算机可以使用头部跟踪数据来生成姿态数据,该姿态数据表示hmd在hmd的显示面板的发光元件将照亮帧的时间将处于的预测姿态。主机计算机可以附加地或另选地指示应用程序至少部分地基于该姿态数据来生成深度数据和/或额外像素数据。主机计算机还可以至少部分地基于头部跟踪数据和/或在正在被渲染的场景内的移动来生成运动矢量数据。这些额外数据中的一些或全部可以从主机计算机发送到hmd,并且hmd可以使用所接收的额外数据中的至少一些来修改像素数据,诸如通过将重新投影调整应用于像素数据。“重新投影”是一种用于补偿hmd的原始姿态预测中的轻微不准确和/或补偿未能达到帧速率的应用程序,应用程序未能达到帧速率具有与轻微不准确的初始姿态预测相同的效果。例如,可使用来自经应用程序渲染的帧的像素数据通过以考虑hmd的姿态的更新预测的方式变换(例如,通过旋转和重新投影计算)该经应用程序渲染的帧来生成经重新投影的帧。因此,从应用重新投影调整(以及可能的其他调整)获得的经修改的像素数据可以用于在hmd的显示面板上呈现给定帧的图像,并且该过程可以针对一系列帧迭代。18.在一些实施方案中,除了像素数据之外,所生成、发送和/或用于渲染帧的额外数据可以在帧之间变化。例如,主机计算机可以针对各个帧动态地确定要生成的额外数据的类型和/或程度作为渲染工作负荷的第一部分的一部分,和/或要发送到hmd的额外数据的类型和/或程度。同时,hmd可以针对各个帧动态地确定从主机计算机接收的额外数据的类型和/或程度,以用作渲染工作负荷的第二部分的一部分。19.在主机计算机和hmd之间划分给定帧的渲染工作负荷允许实现这样的系统,其中主机计算机和hmd可以彼此无线地连接;对于当今完全依赖于主机计算机的高延迟无线通信协议和hmd,这样的系统目前尚不可行。反过来,划分渲染工作负荷允许在hmd上提供高质量的vr或ar体验,该hmd即使长时间佩戴也很舒适,因为在本文所公开的系统中仍然可以利用主机计算机的高计算能力。此外,与拴系型hmd相比,本文所公开的hmd可以是并且可以保持物理地不拴系到主机计算机不,从而为用户提供更大的移动性,因为用户能够在佩戴hmd的同时更好地在空间中四处走动,而无需担心意外拔出hmd等。考虑到用户对高保真、高分辨率vr图形的需求,由于无线传输的数据量更大,遵循这些需求的无线vr系统将倾向于在通过无线通信链路的数据传输中经受更大的延迟。这意味着,与用于可利用有线连接的较高数据传输速率的常规物理拴系型hmd的姿态预测相比,在本文所公开的系统中,更提前做出由应用程序用来渲染给定帧的对hmd的姿态预测。与对物理拴系型hmd的在时间上较晚的姿态预测相比,更提前于帧的照亮时间做出的姿态预测意味着在姿态预测中存在更多误差,这反过来意味着本文所公开的hmd的任务是执行计算密集的图形处理操作以便修改从主机计算机接收的像素数据(例如,校正从主机计算机接收的像素数据中的误差),使得在hmd上显示合适的图像。通常,具有从主机计算机接收的额外数据的hmd可以更好地解决在主机计算机和hmd之间的无线通信链路上的相对较低的数据传输速率,以便以改善在hmd的显示面板上呈现的结果图像的质量的方式修改所接收的像素数据。此外,本文所述的划分渲染技术和系统可以允许在主机计算机和hmd中的每一者上具有不同的渲染频率(或帧速率)。20.因此,所公开的hmd被配置为执行给定帧的渲染工作负荷的一部分,这允许数据在主机计算机和hmd之间无线传输,尽管与当今hmd的相对低延迟有线连接相比,该无线连接的延迟相对较高。hmd可以使用用于校正由主机计算机生成的数据中的误差的hmd机载图形处理逻辑来补偿该无线通信链路的较高延迟。此外,这种机载图形处理逻辑允许hmd用作独立设备(可能在有限的使用场景中)。例如,本文所公开的hmd可以在独立模式下用于参加在其图像中渲染更多基本图形的视频游戏,从而需要计算不那么密集的图形处理操作来渲染帧。又如,本文所公开的hmd可以在独立模式下用于在hmd上回放电影和/或视频剪辑,所有这些都不依赖于主机计算机。然而,当本文所公开的hmd的用户希望参加具有更丰富图形的视频游戏时,用户可以在连接模式下操作该hmd,以通过有线或无线通信链路将该hmd连接到主机计算机,从而利用主机计算机的附加图形处理能力。通过利用主机计算机的额外功率容量(例如,因此hmd不会耗尽电池功率),希望长时间参加具有更丰富图形的视频游戏的用户仍可以使用有线通信链路。例如,与当今的集成式系统相比,用户可以获得由连接的主机计算机提供的高保真图形体验以及利用主机计算机和hmd之间的可用无线连接而实现的增强的移动性。21.本文还公开了存储用于实现本文所公开的技术和过程的计算机可执行指令的非暂态计算机可读介质。尽管本文所公开的技术和系统以举例的方式在视频游戏应用程序尤其是vr游戏应用程序的上下文中进行讨论,但是应当理解,本文所述的技术和系统可为其他应用程序提供益处,包括但不限于非vr应用程序(例如,ar应用程序)和/或非游戏应用程序(诸如,工业机器应用程序、国防应用程序、机器人技术应用程序等)。22.图1是示出用于在头戴式显示器(hmd)和主机计算机之间划分帧的渲染工作负荷100的示例性技术的图示。图1描绘了由用户104佩戴的头戴式显示器(hmd)102,以及主机计算机106。图1示出了主机计算机106的示例性实施方式,其形式为例如携带在背包中的膝上型电脑106(1),或可以位于例如用户的104家庭中的个人计算机(pc)106(n)。然而,应当理解,这些示例性类型的主机计算机106并不限于本公开。例如,主机计算机106可以被实现为任何类型和/或任何数量的计算设备,包括但不限于pc、膝上型计算机、台式计算机、便携式数字助理(pda)、移动电话、平板计算机、机顶盒、游戏控制台、服务器计算机、可穿戴计算机(例如,智能手表等)或可以发送/接收数据的任何其他电子设备。主机计算机106可以与hmd 102位于相同的环境中,诸如佩戴hmd 102的用户104的家庭。另选地,主机计算机106可以相对于hmd 102远程地定位,诸如相对于hmd 102的地理位置位于远程地理位置的呈服务器计算机形式的主机计算机106。在远程主机计算机106具体实施中,主机计算机106可以经由广域网(诸如因特网)通信地耦接到hmd 102。在本地主机计算机106具体实施中,主机计算机106可以与hmd 102共同定位在环境(例如,家庭)中,由此主机计算机106和hmd 102可以直接通信地耦接在一起,或者通过局域网(lan)经由中间网络设备通信地耦接在一起。23.如图1所示,对于给定帧,主机计算机106被配置为执行第一部分渲染工作负荷100(1)(例如,给定帧的渲染工作负荷100的第一部分),并且hmd 102被配置为执行第二部分渲染工作负荷100(2)(例如,给定帧的渲染工作负荷100的第二部分)。以这种方式,hmd 102和主机计算机106通信地耦接在一起,并且被配置为以协作方式一起工作以通过生成最终用于在hmd 102的显示面板108上呈现对应图像的像素数据来渲染给定帧。24.图1的示例中的hmd 102可包括单个显示面板108或多个显示面板108,诸如立体显示面板对中的左显示面板和右显示面板。hmd 102的该一个或多个显示面板108可用于呈现佩戴hmd 102的用户104可观看的一系列图像帧(本文被称为“帧”)。应当理解,hmd 102可包括任何数量的显示面板108(例如,多于两个显示面板、一对显示面板或单个显示面板)。因此,如本文以单数使用的术语“显示面板”可指代双面板式hmd 102的一对显示面板中的一个显示面板108,或者其可指代具有任何数量的显示面板的hmd 102(例如,单面板式hmd 102或多面板式hmd 102)的单个显示面板108。在双面板式hmd 102中,立体帧缓冲器可在hmd 102的两个显示面板上渲染例如2160×1200像素(例如,每个显示面板上渲染1080×1200像素)。25.hmd 102的显示面板108可利用任何合适类型的显示技术,诸如利用发光元件(例如,发光二极管(led))在显示面板108上呈现帧期间发光的发射型显示器。作为示例,hmd 102的显示面板108可包括液晶显示器(lcd)、有机发光二极管(oled)显示器、无机发光二极管(iled)显示器或者用于hmd应用的任何其他合适类型的显示技术。26.hmd 102的显示面板108可以采用任何合适的刷新速率(诸如90赫兹(hz)刷新率)操作,该刷新率可以是固定刷新速率或在刷新速率范围内动态变化的可变刷新速率。显示器的“刷新速率”是显示器每秒重绘屏幕的次数。如果使用固定刷新速率,则每秒显示的帧数可由显示器的刷新速率限制。因此,一系列帧可被处理(例如,渲染)并且作为图像显示在显示器上,使得该系列帧中的单个帧随着每次屏幕刷新而被显示。即,为了在显示面板108上呈现一系列图像,显示面板108可以显示器的刷新速率在该系列帧中逐帧地转换,从而在每次屏幕刷新时照亮这些像素。在一些实施方案中,可抑制帧速率并且/或者应用程序可能无法达到目标帧速率,并且可在经应用程序渲染的帧之间插入幻像帧(基于重新投影)。27.hmd 102的显示系统可以实现任何合适类型的显示驱动方案,诸如全局闪光类型的显示驱动方案、滚动带类型的显示驱动方案或任何其他合适类型的显示驱动方案。在全局闪光类型的显示器驱动方案中,显示器的发光元件阵列在每次屏幕刷新时同时照亮,从而以刷新速率全局闪光。在滚动带类型的显示驱动方案中,显示器的发光元件的各个子集可以在照亮时间段期间在照明的滚动带中被独立地而且顺序地照亮。这些类型的显示驱动方案可以通过可单独寻址的发光元件来实现。如果显示面板108上的像素阵列和发光元件阵列被排列成行和列(但不一定具有一个发光元件与一个像素相对应的关系),则发光元件的各个行和/或各个列可以按顺序被寻址,并且/或者对于滚动带类型的显示驱动方案,发光元件的各个组的连续行和/或各个组的连续列可以按顺序被寻址。28.通常,如本文所使用的,“照亮像素”意味着照亮与该像素相对应的发光元件。例如,lcd照亮具有背光的发光元件以照亮显示器的对应像素。此外,如本文所用,“像素子集”可包括单个像素或多个像素(例如,一组像素)。为了驱动显示面板108,hmd 102除其他方面外还可包括显示控制器、显示驱动器电路和用于驱动显示面板108的类似电子器件。显示驱动器电路可经由柔性印刷电路上的导电路径(诸如金属迹线)耦接到显示面板108的发光元件阵列。在一个示例中,显示控制器可通信地耦接到显示驱动器电路并且被配置为向显示驱动器电路提供信号、信息和/或数据。由显示驱动器电路接收的信号、信息和/或数据可使显示驱动器电路以特定方式照亮发光元件。即,显示控制器可确定要照亮哪个(哪些)发光元件、何时照亮该(这些)发光元件,以及要由该(这些)发光元件发射的光输出的水平,并且可将适当的信号、信息和/或数据传送到显示驱动器电路以便实现该目的。29.在所示出的具体实施中,hmd 102包括一个或多个处理器110和存储器112(例如,计算机可读介质112)。在一些具体实施中,处理器110可包括中央处理单元(cpu)、图形处理单元(gpu)114、cpu和gpu 114两者、微处理器、数字信号处理器或本领域已知的其他处理单元或部件。另选地或除此之外,本文所述的功能可至少部分地由一个或多个硬件逻辑部件执行。例如但不限于,可使用的例示性类型的硬件逻辑部件包括现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统系统(soc)、复杂的可编程逻辑器件(cpld)等。除此之外,处理器110中的每个处理器可拥有自己的本地存储器,这些存储器也可存储程序模块、程序数据和/或一个或多个操作系统。30.存储器112可包括采用用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术实现的易失性存储器和非易失性存储器、可移动介质和不可移动介质。这种存储器包括但不限于ram、rom、eeprom、闪存存储器或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光学存储装置、盒式磁带、磁带、磁盘存储装置或其他磁性存储设备、raid存储系统,或可用于存储所需信息并可由计算设备访问的任何其他介质。存储器112可被实现为计算机可读存储介质(“crsm”),该crsm可以是处理器110可访问以执行存储在存储器112上的指令的任何可用物理介质。在一种基本的具体实施中,crsm可包括随机存取存储器(“ram”)和闪存存储器。在其他具体实施中,crsm可包括但不限于只读存储器(“rom”)、电可擦除可编程只读存储器(“eeprom”)或可用于存储所需信息并可由处理器110访问的任何其他有形介质。31.一般来讲,hmd 102可包括被配置为实现本文描述的技术、功能和/或操作的逻辑(例如,软件、硬件和/或固件等)。计算机可读介质112可包括各种模块,诸如指令、数据存储等,这些模块可被配置为在处理器110上执行以实现本文所述的技术、功能和/或操作。合成器116形式的示例性功能模块被示为存储在计算机可读介质112中并且可在处理器110上执行,但是相同的功能可另选地采用硬件、固件或片上系统(soc)和/或其他逻辑来实现。此外,附加的或不同的功能模块可以存储在计算机可读介质112中并且可在处理器110上执行。合成器116被配置为修改作为第二部分渲染工作负荷100(2)的一部分从主机计算机106接收的像素数据,并且将经修改的像素数据输出到帧缓冲器(例如,立体帧缓冲器),使得对应的图像可以呈现在hmd 102的显示面板108上。32.hmd 102还可以包括头部跟踪系统118和通信接口120。头部跟踪系统118可以利用一个或多个传感器(例如,安装在hmd 102上的红外(ir)光传感器)和一个或多个跟踪信标(例如,与hmd 102共同定位在环境中的ir光发射器)来跟踪用户104的头部运动或移动,包括头部旋转。该示例性头部跟踪系统118是非限制性的,并且也可以利用其他类型的头部跟踪系统118(例如,基于相机的、基于惯性测量单元(imu)的等)。头部跟踪系统118被配置为生成头部跟踪数据122,当帧被渲染时,头部跟踪数据可以在运行期间经由通信接口120被发送到主机计算机106。33.hmd 102的通信接口120可以包括用于促进直接地或经由一个或多个中间设备(诸如无线接入点(wap))向主机计算机106发送/从该主机计算机接收有线和/或无线数据的有线和/或无线部件(例如,芯片、端口等)。例如,通信接口120可以包括耦接到天线以促进与主机计算机106和/或另一设备的无线连接的无线单元。这样的无线单元可以实现各种无线技术中的一种或多种无线技术,诸如wi-fi、蓝牙、射频(rf)等。通信接口120还可以包括用于促进与主机计算机106和/或另一设备(例如,与其他无线网络通信的插入式网络设备)的有线连接的一个或多个物理端口。34.在所示的具体实施中,主机计算机106包括一个或多个处理器124和存储器126(例如,计算机可读介质126)。在一些具体实施中,处理器124可包括cpu、gpu 128、cpu和gpu 128两者、微处理器、数字信号处理器或本领域已知的其他处理单元或部件。另选地或除此之外,本文所述的功能可至少部分地由一个或多个硬件逻辑部件执行。例如但不限于,可使用的例示性类型的硬件逻辑部件包括fpga、asic、assp、soc、cpld等。另外,处理器124中的每个处理器可拥有自己的本地存储器,这些存储器也可存储程序模块、程序数据和/或一个或多个操作系统。35.存储器126可包括采用用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术实现的易失性存储器和非易失性存储器、可移动介质和不可移动介质。这种存储器包括但不限于ram、rom、eeprom、闪存存储器或其他存储器技术、cd-rom、dvd或其他光学存储装置、盒式磁带、磁带、磁盘存储装置或其他磁性存储设备、raid存储系统,或可用于存储所需信息并可由计算设备访问的任何其他介质。存储器126可被实现为crsm,该crsm可以是处理器124可访问以执行存储在存储器126上的指令的任何可用物理介质。在一种基本的具体实施中,crsm可包括ram和闪存存储器。在其他具体实施中,crsm可包括但不限于rom、eeprom或可用于存储所需信息并可由处理器124访问的任何其他有形介质。36.一般来讲,主机计算机106可包括被配置为实现本文描述的技术、功能和/或操作的逻辑(例如,软件、硬件和/或固件等)。计算机可读介质126可包括各种模块,诸如指令、数据存储等,这些模块可被配置为在处理器124上执行以实现本文所述的技术、功能和/或操作。应用程序130(诸如视频游戏130(1))和渲染部件132形式的示例性功能模块被示为存储在计算机可读介质126中并且可在处理器124上执行。在一些实施方案中,渲染部件132的功能可另选地在硬件、固件中或作为片上系统(soc)和/或其他逻辑实现。此外,附加的或不同的功能模块可以存储在计算机可读介质126中并且可在处理器124上执行。37.主机计算机106还可以包括通信接口134,该通信接口可以包括用于促进直接地或经由一个或多个中间设备(诸如wap)向hmd 102发送/从该hmd接收有线和/或无线数据的有线和/或无线部件(例如,芯片、端口等)。例如,通信接口134可以包括耦接到天线以促进与hmd 102和/或另一设备的无线连接的无线单元。这样的无线单元可以实现各种无线技术中的一种或多种无线技术,诸如wi-fi、蓝牙、rf等。通信接口134还可以包括用于促进与hmd 102和/或另一设备(例如,与其他无线网络通信的插入式网络设备)的有线连接的一个或多个物理端口。38.应当理解,hmd 102可以表示用于在vr系统中使用的vr头戴式耳机,诸如用于与vr游戏系统一起使用的vr头戴式耳机,在这种情况下,视频游戏130(1)可以表示vr视频游戏130(1)。然而,hmd 102可以附加地或另选地实现为用于在ar应用中使用的ar头戴式耳机,或者可用于不与游戏相关的vr和/或ar应用(例如,工业应用)的头戴式耳机。在ar中,用户104看到叠加在真实世界环境上的虚拟对象,而在vr中,用户104通常看不到真实世界环境,而是完全沉浸在虚拟环境中,如经由hmd 102的显示面板108和光学器件(例如,透镜)所感知的。应当理解,在一些vr系统中,可以结合虚拟图像来显示用户104的真实世界环境的直通图像,以在vr系统中创建增强的vr环境,由此该vr环境利用现实世界图像增强(例如,叠加在虚拟世界上)。本文所述的示例主要涉及基于vr的hmd 102,但是应当理解,hmd 102不限于在vr应用程序中进行实现。39.通常,在主机计算机106上执行的应用程序130可以是基于图形的应用程序130(例如,视频游戏130(1))。应用程序130被配置为生成用于一系列帧的像素数据,并且这些像素数据最终用于在hmd 102的显示面板108上呈现对应的图像。在运行时期间,对于给定帧,渲染部件132可以确定该帧的预测“照亮时间”。该帧的预测“照亮时间”表示hmd 102的显示面板108的发光元件将照亮该帧的时间。该预测可以考虑主机计算机106和hmd 102之间的无线通信链路的固有延迟,以及预测的渲染时间和/或来自帧缓冲器的像素的已知扫描输出时间。换句话讲,针对无线通信链路的预测可以不同于针对有线通信链路的预测。例如,对于有线通信链路,渲染部件132可以预测在未来的第一时间量(例如,在未来约22毫秒)的照亮时间,而对于无线通信链路,由于通过有线连接对比无线连接在传输数据时的延迟的固有差异,渲染部件132可以预测在未来的第二更大时间量(例如,在未来约44毫秒)的照亮时间。40.主机计算机106还可以从hmd 102接收由hmd 102的头部跟踪系统118生成的头部跟踪数据122(例如,第一头部跟踪数据122)。该头部跟踪数据122可以任何合适的频率生成和/或发送,诸如对应于hmd 102的目标帧速率和/或刷新速率的频率,或不同(例如,更快)的频率,诸如1000hz(或每1毫秒读取1次传感器)。渲染部件132被配置为至少部分地基于头部跟踪数据122来确定hmd 102在预测的照亮时间将处于的预测姿态。渲染部件132然后可以向执行中的应用程序130提供指示预该测姿态的姿态数据以用于基于预测姿态来渲染该帧(例如,生成该帧的像素数据),并且渲染部件132可以从应用程序130获得与该帧相关联的像素数据136。该像素数据136可以对应于hmd 102的显示面板108的像素阵列。例如,由应用程序130基于姿态数据输出的像素数据136可以包括用于hmd 102的显示面板108上的像素阵列的每像素值(例如,颜色值)的二维阵列。在例示性示例中,立体显示面板108对可以包括在hmd 102的两个显示面板上的2160×1200像素阵列(例如,每个显示面板1080×1200像素)。在该例示性示例中,像素数据136可以包括2160×1200个像素值(或2,592,000个像素值)。在一些实施方案中,像素数据136可包括由单组色值和阿尔法值表示的针对每个像素的数据(例如,红色通道对应一个色值、绿色通道对应一个色值、蓝色通道对应一个色值,并且一个或多个阿尔法通道对应一个或多个值)。41.除了像素数据136之外,主机计算机106的逻辑还可以生成额外数据138,并且该额外数据138中的至少一些可以被发送到hmd 102以帮助hmd 102处理第二部分渲染工作负荷100(2)。例如,额外数据138可以与像素数据136一起打包并被发送到hmd 102,并且额外数据138中的至少一些可以由hmd 102的逻辑用来修改像素数据136,以用于在hmd 102的显示面板108上呈现对应于该帧的图像。额外数据138可以包括但不限于由渲染部件132生成的姿态数据,以及深度数据、运动矢量数据、视差遮挡数据和/或额外像素数据。例如,在向执行中的应用程序130提供姿态数据以用于渲染该帧时,渲染部件132可以进一步指示应用程序130生成该帧的深度数据(例如,z缓冲器数据)和/或额外像素数据(在本文中有时被称为“界外像素数据”或“附加像素数据”),并且作为响应,渲染部件132可以从应用程序130获得与该帧相关联的深度数据和/或额外像素数据。附加地或另选地,渲染部件132可以至少部分地基于从hmd 102接收的头部跟踪数据122来生成运动矢量数据。例如,可以基于在两个不同时间点生成的头部跟踪数据的比较(例如,间隔几毫秒的头部跟踪数据的比较)来生成运动矢量数据。hmd 102的逻辑(例如,合成器116)可以利用一些或所有额外数据138来达到修改像素数据136以校正由渲染部件132提前做出的姿态预测中的误差的目的,这考虑了主机计算机106和hmd 102之间的无线连接的固有延迟。例如,合成器116可以至少部分地基于从主机计算机106接收的额外数据138来应用重新投影调整。由合成器116做出的作为第二部分渲染工作负荷100(2)的一部分的其他调整可以包括但不限于对几何失真、色差、重新投影等的调整。下面参考以下附图更详细地描述额外数据138可以用作第二部分渲染工作负荷100(2)的一部分的方式。42.图2是示出根据本文所公开的实施方案的两条示例性时间线200(1)和200(2)的图示,这两条时间线示出了各个帧的相应渲染工作负荷,这些相应渲染工作负荷在主机计算机106和hmd 102之间划分。图2的示例相对于与主机计算机106相关联的第一时间线200(1)描绘了三个示例性帧:帧“f”、帧“f+1”和帧“f+2”。该第一时间线200(1)示出了主机计算机106上的执行中的应用程序130可以如何使用主机计算机106的gpu 128来连续地呈现帧。这里,如在第一时间线200(1)上从左到右依次所示,应用程序130渲染帧f作为第一部分渲染工作负荷100(1)(a)的一部分,然后渲染帧f+1作为第二部分渲染工作负荷100(1)(b)的一部分,然后渲染帧f+2作为第三部分渲染工作负荷100(1)(c)的一部分。第一时间线200(1)上的省略号表示随着应用程序130继续执行,该渲染可以持续任意数量的帧。第一时间线200(1)还通过垂直于水平时间线200(1)取向的垂直线暗示应用程序130以目标帧速率为目标(例如,90hz的帧速率,其中这些垂直线将分隔约11.11毫秒)。在图2的示例中,在主机计算机106上执行的应用程序130恰好在这三个示例性帧的系列上达到目标帧速率,但实际可能并不总是如此,因为应用程序130在一些情况下(例如,对于具有大量移动对象或复杂纹理的场景)可能需要比所分配的时间更长的时间来渲染给定的帧202。该场景有时被称为应用程序130未能达到目标帧速率。43.与图2中的hmd 102相关联的第二时间线200(2)示出了hmd 102的合成器116针对各个帧的部分渲染工作负荷100(2)(a)、100(2)(b)和100(2)(c)。hmd 102的合成器116针对给定帧的各渲染工作负荷100(2)可以表示在最终图像被呈现在hmd 102的显示面板108上之前将应用于由在主机计算机106上执行的应用程序130生成的像素数据136的调整。此类调整可包括但不限于对几何失真、色差、重新投影等的调整,当在hmd 102上渲染最终图像之前,将这些调整应用于从主机计算机106接收的像素数据136。这些调整中的至少一些可以利用从主机计算机106接收到的额外数据138,诸如姿态数据、深度数据、额外像素数据、视差遮挡数据和/或运动矢量数据,如本文所述。因此,图2中示出的帧在从应用程序130(其可表示视频游戏应用程序130(1)或任何其他类型的基于图形的应用程序)输出的意义上讲应当表示“实际”帧。相比之下,如果对于给定帧应用程序130未能达到目标帧速率,或者如果帧速率被抑制到低于hmd 102的显示面板108的刷新速率的速率,则hmd 102的合成器116可以基于前一帧的姿态预测和由hmd 102做出的更新姿态预测,使用用于前一帧的先前接收的像素数据136来生成“幻影”帧(例如,使用重新投影)。在任何情况下,部分渲染工作负荷100(2)的结果是生成可以输出到帧缓冲器(例如,立体帧缓冲器)的经修改的像素数据。“实际”帧和“幻影”帧之间的这种区别并不意味着暗示在hmd 102上不调整实际帧,并且在这个意义上,在hmd侧上生成的帧全部被有效地合成(即,与由在主机计算机106上执行的应用程序130输出的原始帧不同)。44.图2的第二时间线200(2)还示出了每个帧的扫描输出时间202(a)、202(b)和202(c),以及每个帧的照亮时间204(a)、204(b)和204(c)。在用于给定帧的扫描输出时间202期间,(经修改的像素数据的)像素值子集经由显示端口(例如,高清晰度多媒体接口(hdmi))被扫描输出到显示面板108,并且在给定帧的照亮时间204期间,显示面板108的发光元件被照亮以使显示面板108的像素被照亮。图2示出了全局闪烁类型的显示驱动方案的示例,其可以与lcd面板一起使用来同时以hmd 102的刷新速率从显示面板108的发光元件发射光。在例示性示例中,如果hmd 102以90hz刷新速率操作,则每个帧的照亮时间204可以分隔大约11.11毫秒。45.应当理解,尽管图2描绘了主机计算机106和hmd 102的相应渲染周期看起来是同步的(它们可以是同步的),但本文所述的技术和系统不要求这两个设备之间的帧同步。通常,一旦从主机计算机106接收到数据(例如,像素数据136和额外数据138)并且/或者一旦hmd 102确定主机计算机106的应用程序130可能已经错过了帧或者分组可能已经在传输中被丢弃等,hmd 102的合成器116就可以为给定帧开始其渲染工作负荷100(2)。由于无线通信链路的变化条件、相应设备上的处理负荷和/或其他因素,主机计算机106和hmd 102的相应渲染周期有时可能相对于彼此不同步。因此,虽然主机计算机106和hmd 102被配置为通过将给定帧的渲染工作负荷划分成在相应设备上执行的部分工作负荷而以协作方式一起工作,但是应当理解,这些设备可以彼此独立地操作以执行其相应的工作负荷部分。46.本文所述的过程被示为逻辑流程图中的框的集合,这些框代表可在硬件、软件、固件或其组合中实现的一系列操作(即逻辑)。在软件的环境中,这些框表示计算机可执行指令,这些计算机可执行指令在由一个或多个处理器执行时,执行所列举的操作。通常,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、部件、数据结构等。描述操作的顺序不旨在被理解为限制,并且可以任何顺序和/或并行地组合任意数量的所描述的框来实现这些过程。47.图3示出了根据本文所公开的实施方案的用于通过在hmd 102和主机计算机106之间划分帧的渲染工作负荷100来渲染帧的示例性过程300的流程图。出于讨论的目的,参考前面的附图描述过程300。48.在302处,hmd 102可以向通信地耦接到hmd 102的主机计算机106发送由hmd 102的头部跟踪系统118生成的第一头部跟踪数据122。主机计算机106与hmd 102的通信地耦接的方式可以随具体实施而变化。对于主机计算机106无线地耦接到hmd 102的具体实施,可以将第一头部跟踪数据122从hmd 102无线地发送到主机计算机106(例如,使用wifi、蓝牙或任何合适的无线通信协议,包括专有协议)。对于主机计算机106经由有线连接(例如,数据电缆)耦接到hmd 102的具体实施,可以通过有线连接(诸如数据电缆)将第一头部跟踪数据122从hmd 102发送到主机计算机106。此外,如果主机计算机106相对于hmd 102位于远程地理位置,则在框302处,可以将第一头部跟踪数据122通过广域网(诸如因特网)从hmd 102发送到主机计算机106。49.在304处,主机计算机106可以从hmd 102接收第一头部跟踪数据122。如关于框302所提到的,可以根据具体实施采用各种方式来接收第一头部跟踪数据122,诸如无线地、通过有线连接、经由广域网等。在主机计算机106接收到第一头部跟踪数据122的该时间点,主机计算机106可以正在执行在其上的应用程序130,诸如视频游戏130(1),该应用程序的任务是渲染一系列帧中的第一帧,以用于创建要在hmd 102上显示的视觉视频游戏内容。50.在306处,主机计算机106的逻辑(例如,渲染部件132)可以确定表示hmd 102的显示面板108的发光元件将照亮第一帧的时间的预测照亮时间。即,主机计算机106的逻辑可以确定与呈现用于第一帧的图像相关联的光子将实际到达用户104的眼睛的时间。该预测照亮时间是在未来的时间(例如,在未来约44毫秒),因为渲染部件132必须考虑在相应图像最终呈现在hmd 102的显示面板108上之前应用程序130生成像素数据136所花费的时间,像素数据136从主机计算机106发送到hmd 102所花费的时间,以及修改像素数据136和将其在hmd 102上扫描输出所花费的时间。51.在308处,主机计算机106的逻辑(例如,渲染部件132)可以至少部分地基于在框304处接收的第一头部跟踪数据122来确定hmd 102在框306处确定的预测照亮时间将处于的预测姿态。例如,hmd 102的头部跟踪系统118可以被配置为跟踪hmd 102的多达六个自由度(例如,3d位置、翻滚、俯仰和偏航),这些自由度可以作为头部跟踪数据122被发送到主机计算机106以确定hmd 102的预测姿态(例如,考虑导致hmd 102的未来姿态的预测头部移动)。52.在310处,主机计算机106的逻辑(例如,渲染部件132)可以向在主机计算机106上执行的应用程序130提供指示在框308处确定的预测姿态的姿态数据,以用于渲染第一帧。例如,应用程序130可以调用从渲染部件132接收姿态数据的功能,并且渲染部件132可以向应用程序106提供所请求的姿态数据(预测为第一帧的目标照亮时间,并且至少部分地基于从hmd 102接收的头部跟踪数据122来预测的),使得应用程序130可以根据该姿态数据来渲染第一帧,该姿态数据对应于用于渲染场景的虚拟相机姿态。在一些实施方案中,渲染部件132可以指示应用程序130不仅生成帧的像素数据136,而且生成额外数据,诸如深度数据和/或额外像素数据。53.在312处,主机计算机106的逻辑(例如,渲染部件132)可以从应用程序130获得(或接收)与第一帧相关联的数据(例如,像素数据136)。如本文所述,像素数据136可以包括hmd 102的显示面板108的像素阵列中的各个像素的像素值。如上所述,在渲染部件132请求应用程序130除了生成像素数据136之外还生成额外数据138的实施方案中,在框312处,渲染部件132可以获得(或接收)额外数据138,诸如深度数据(例如,z缓冲器数据)和/或额外像素数据,该额外像素数据包括在显示面板108的像素阵列的边界之外的额外像素值。例如,如果显示面板108具有2160×1200像素的阵列,则像素数据136可以对应于该2160×1200像素阵列中的像素值,而额外像素数据可以对应于该2160×1200阵列的边界之外的像素。因此,像素数据136和额外像素数据可以构成更大数量的像素值,例如,2400×1400像素的更大阵列。54.在314处,主机计算机106的逻辑(例如,渲染部件132)可以将要发送到hmd 102的数据压缩和/或序列化以用于渲染与第一帧相关联的图像。该数据可以包括像素数据136和所生成的任何额外数据138,无论额外数据138是由应用程序130、由渲染部件132和/或主机计算机106的任何其他部件生成的。与后失真图像相反,框314处的压缩可以针对预失真图像优化。例如,在整个渲染工作负荷在主机计算机上执行的系统中,对发送到头戴式耳机的像素数据的任何压缩都可以利用减轻立体压缩伪影的压缩算法。在过程300中,因为由应用程序130生成的像素数据136是“预失真的”,意味着诸如重新投影调整、几何失真调整、色差调整等的调整要在压缩之后应用,所以在框314处使用的压缩算法可能不需要考虑立体压缩伪影。在一些实施方案中,由应用程序130输出的像素数据136可以被分类为前景像素和背景像素(以及潜在的中间层像素),并且不同的压缩算法或方案可以用于不同的像素层。即,与被压缩的背景像素相比,前景像素可以被不同地压缩(例如,使用不同的压缩算法)。55.在316处,主机计算机106可以向hmd 102发送包括像素数据136和额外数据138的数据。在框316处发送的额外数据138可以包括但不限于基于第一头部跟踪数据122生成并且由应用程序130用来生成第一帧的像素数据136的姿态数据138(1),由应用程序130生成的深度数据138(2),由应用程序130生成的额外像素数据138(3),由渲染部件132基于头部跟踪数据122和/或基于所渲染的场景内虚拟对象的移动生成的运动矢量数据138(4),视差遮挡数据138(5)和/或立方体地图数据(例如,用于快速、大尺度的头部移动,使得hmd 102除了呈现其中不具有任何数据的暗像素之外具有其他选项)。同样,可以根据具体实施采用各种方式将像素数据136和额外数据138发送到hmd 102,诸如无线地、通过有线连接、经由广域网等。56.在318处,hmd 102可以从主机计算机106接收与第一帧相关联的像素数据136,以及除了像素数据136之外的额外数据138。同样,可以根据具体实施采用各种方式从主机计算机106接收像素数据136和额外数据138,诸如无线地、通过有线连接、经由广域网等。此外,当在框318处从主机计算机106接收经压缩的序列化数据时,可以在框318处对该数据进行反序列化和解压缩。57.在320处,hmd 102的逻辑(例如,合成器116)可以至少部分地基于由hmd 102的头部跟踪系统118生成的第二头部跟踪数据122来确定hmd 102将在第一帧的照亮时间处于的更新姿态,该照亮时间表示hmd 102的显示面板108的发光元件将照亮第一帧的时间。因为在框320处的确定在时间上更接近于第一帧的照亮时间,所以在框320处的姿态预测比在框308处确定的姿态预测更准确(例如,具有更小的误差),该姿态预测更提前于照亮时间。在一些实施方案中,在框320处对hmd 102的更新姿态的确定可以至少部分地基于从主机计算机106接收的或在hmd 102上本地生成的运动矢量数据138(4)。例如,从头部跟踪数据122生成的运动矢量数据138(4)可以指示用户104的预测头部移动,并且hmd 102的合成器116可以使用运动矢量数据138(4)来以改进的准确性对hmd 102进行更新姿态预测。58.在322处,hmd 102的逻辑(例如,合成器116)可以修改从主机计算机106接收的像素数据136以获得经修改的像素数据。如框322的子框所示,像素数据136的这种修改可以包括各种子操作。59.在子框324处,hmd 102的逻辑(例如,合成器116)可以将重新投影调整应用于像素数据136以获得与第一帧相关联的经修改的像素数据。在子框324处应用的重新投影调整可以至少部分地基于从主机计算机106接收的额外数据138。例如,在框308处确定的原始预测姿态(并且在姿态数据138(1)中显示)与在框320处确定的更新姿态之间的比较可以揭示所比较的姿态之间的增量(或差异),并且重新投影调整可以包括旋转计算以补偿该增量(例如,通过以某种方式移动和/或旋转像素数据136,具体取决于这两个姿态确定之间的增量)。60.在一些实施方案中,从主机计算机106接收的额外数据138包括与第一帧相关联的深度数据138(2),并且在子框324处应用的重新投影调整可以至少部分地基于深度数据138(2)。例如,诸如来自深度缓冲器(或z缓冲器)的深度数据138(2)可以指示场景中的遮挡对象。因此,深度数据138(2)可以用于针对场景中的对象的视差进行调整(例如,在世界空间中很远的船可能不会像特写对象将随头部移动而移动的那样随相同的头部移动而移动)。了解对应于场景中的虚拟对象的像素的深度有助于了解在子框324处如何在hmd 102上的重新投影期间针对这种视差进行调整。下面更详细地描述在hmd侧上使用深度数据138(2)的其他方式。在一些实施方案中,从主机计算机106接收的额外数据138包括与第一帧相关联的额外像素数据138(3),并且在子框324处应用的重新投影调整可以至少部分地基于额外像素数据138(3)。例如,在发生快速/大尺度头部移动的情况下,像素数据136的像素值中的至少一些可以用额外像素数据138(3)的额外像素值来替换,以渲染场景的对应于用户104的当前头部移动的一部分,如由hmd 102所确定的。在一些实施方案中,从主机计算机106接收的额外数据138包括与第一帧相关联的运动矢量数据138(4),并且在子框324处应用的重新投影调整可以至少部分地基于运动矢量数据138(4)。61.在子框326处,hmd 102的逻辑(例如,合成器116)可以将几何失真调整应用于像素数据136以在框322处获得与第一帧相关联的经修改的像素数据。几何失真调整可以补偿hmd 102的近眼光学子系统(例如,透镜和其他光学器件)的失真。出于类似的原因,在子框328处,hmd 102的逻辑(例如,合成器116)可以将色差调整应用于像素数据136以在框322处获得与第一帧相关联的经修改的像素数据。62.在子框330处,可以通过在由像素数据136表示的场景上叠加一个或多个虚拟手来修改像素数据136,以在框322处获得与第一帧相关联的经修改的像素数据。例如,hmd 102可以通信地耦接到一个或多个手持式控制器,这些手持式控制器非常像hmd 102,它们在3d空间中的移动和位置被跟踪,并且hmd 102可以从手持式控制器接收手跟踪数据(例如,通过从手持式控制器到hmd 102的直接无线数据传输)。手跟踪数据可以由hmd 102的逻辑(例如,合成器116)处理以在场景上渲染虚拟手,这些虚拟手叠加在场景的内容上。63.在332处,hmd 102的逻辑(例如,合成器116)可以将经修改的像素数据输出到帧缓冲器。同样,对于具有一对显示面板108的hmd 102,该经修改的像素数据可以对应于表示要在该对显示面板108上显示的一对图像的帧,并且可以相应地输出到立体帧缓冲器。64.在334处,hmd 102的逻辑可以基于在框332处输出到帧缓冲器的经修改的像素数据来使第一图像呈现在hmd 102的显示面板108上。这可以涉及将经修改的像素数据扫描输出到hmd 102的显示面板108,并且照亮显示面板108的发光元件以照亮显示面板108上的像素。65.图4示出了根据本文所公开的实施方案的用于基于由主机计算机106生成的运动矢量数据138(4)在hmd 102上应用重新投影调整的示例性过程400的流程图。出于讨论的目的,参考前面的附图描述过程400。66.在402处,hmd 102可以将头部跟踪数据122发送到主机计算机106。该头部跟踪数据122可以任何合适的频率生成和/或发送,例如对应于应用程序130的目标帧速率和/或hmd 102的刷新速率的频率,或不同(例如,更快)的频率,并且头部跟踪数据122可以指示佩戴hmd 102的用户104的头部移动。因此,在框402处,主机计算机106可以随时间推移接收头部跟踪数据122的多个实例,诸如在时间t1生成的第一头部跟踪数据122,在时间t2生成的第二头部跟踪数据122等。此外,主机计算机106可以保持它随时间接收的头部跟踪数据122的历史,使得它具有在任何给定时间可用的头部跟踪数据的多个实例122。主机计算机106可以丢弃比预定义年限更旧的头部跟踪数据122以节省存储器资源,同时保留至少一些过去的头部跟踪数据122。67.在404处,主机计算机106的逻辑(例如,渲染部件132)可以至少部分地基于从hmd 102接收的头部跟踪数据122来生成运动矢量数据138(4)。例如,主机计算机106可以接收第一头部跟踪数据122,并且在接收第一头部跟踪数据122之前可能已经接收了第二头部跟踪数据122,并且可以在这些头部跟踪数据122的集合之间进行比较以生成运动矢量数据138(4)。在一些实施方案中,运动矢量数据138(4)可以附加地或另选地从与由该应用程序渲染的多个帧相关联的像素数据生成。例如,由应用程序130先前呈现的一对帧可以被提供作为主机计算机106的gpu 128的输入,并且gpu 128的解码器可以至少部分地基于输入帧来生成运动矢量数据138(4),诸如通过寻找该对帧中的相似之处(例如,相似的颜色值、相似的亮度值等)并将运动矢量映射到该对帧中的相似之处的对应位置来完成。在一些实施方案中,主机计算机106的逻辑可以被配置为滤除与在场景中移动虚拟对象相关的运动,使得它留下由于头部移动所引起的运动而非场景中虚拟对象的运动。68.在406处,hmd 102可以从主机计算机106接收运动矢量数据138(4)。例如,该运动矢量数据138(4)可以作为额外数据138连同其图像将被呈现在hmd 102上的给定帧的像素数据136一起被发送(例如,与该像素数据一起被封装)。因此,在框406处或在稍微不同(例如,更早或更晚)的时间,hmd 102可以接收用于给定帧的像素数据136。69.在408处,hmd 102的逻辑(例如,合成器116)可以至少部分地基于在框406处接收的运动矢量数据138(4)来将重新投影调整应用于像素数据136以获得与给定帧相关联的经修改的像素数据410。如本文所述,除了指示原始预测姿态和hmd 102的更新姿态确定的姿态数据之外,还可以考虑运动矢量数据138(4)。因此,运动矢量数据138(4)可以对姿态数据138(1)进行增强,以用于预测hmd 102的姿态并由此应用重新投影调整(例如,用于以某种方式移动和/或旋转像素数据136的旋转计算)。另选地,运动矢量数据138(4)可以直接应用于像素数据136,诸如通过将运动矢量数据138(4)转换成对应于要渲染的场景的屏幕空间的运动矢量场,以及基于对应于像素值的运动矢量的幅度和方向来移动这些像素值。70.图5示出了根据本文所公开的实施方案的用于基于由在主机计算机106上执行的应用程序130生成的额外像素数据138(3)来应用重新投影调整的示例性过程500的流程图。出于讨论的目的,参考前面的附图描述过程500。71.在502处,hmd 102可以将头部跟踪数据122发送到主机计算机106。该头部跟踪数据122可以任何合适的频率生成和/或发送,例如对应于应用程序130的目标帧速率和/或hmd 102的刷新速率的频率,或不同(例如,更快)的频率,并且头部跟踪数据122可以指示佩戴hmd 102的用户104的头部移动。72.在504处,主机计算机106的逻辑(例如,渲染部件132)可以指示在主机计算机106上执行的应用程序130(诸如视频游戏130(1))除了生成对应于hmd 102的显示面板108上的像素阵列的像素数据136之外,还生成额外像素数据138(3)。例如,如果显示面板108具有2160×1200像素的阵列,则像素数据136可以对应于该2160×1200像素阵列中的像素值,而额外像素数据138(3)可以对应于该2160×1200阵列的边界之外的像素。因此,作为示例,在框504处请求的像素数据136和额外像素数据138(3)可以构成更大数量的像素值,例如,2400×1400像素的更大阵列。在框504处指示应用程序130生成额外像素数据138(3)的确定可以是针对给定帧的动态确定,如框504的子框所示。73.在子框506处,主机计算机106的逻辑(例如,渲染部件132)可以至少部分地基于在框502处接收的指示hmd 102的移动量大于阈值移动量的头部跟踪数据122来确定生成(例如,通过指示应用程序130生成)额外像素数据138(3)。例如,可以比较头部跟踪数据122的两个实例以确定hmd 102在一段时间内(例如,几毫秒的时间段)的移动量,并且如果该移动量大于阈值移动量,则渲染部件132可以确定为给定帧生成额外像素数据138(3)。另一方面,如果hmd 102的移动量小于或等于阈值移动量,则渲染部件132可以确定不为给定帧生成额外像素数据138(3)。这在图5中的子框506的右侧以图形示出,其中渲染部件132被配置为:如果hmd移动量处于或低于阈值移动量,则指示应用程序130仅渲染像素数据136(并且不渲染任何额外像素数据138(3)),并且如果hmd移动量高于阈值移动量,则指示应用程序130渲染像素数据136和额外像素数据138(3)。这允许通过确定在当前几乎没有头部移动的情况下不太可能使用额外像素数据138(3)以及为当前存在大量和/或快速头部移动的情况保留额外像素数据138(3)的生成来节省资源。74.在子框508处,主机计算机106的逻辑(例如,渲染部件132)可以至少部分地基于在框502处接收的头部跟踪数据122所指示的hmd 102的移动量来确定要渲染(例如,通过指示应用程序130渲染)额外像素数据138(3)中的多个额外像素值。这在图5中的子框508的右侧以图形示出,其中渲染部件132被配置为:如果hmd移动量是第一较小移动量,则指示应用程序130渲染额外像素数据138(3)中的第一数量的额外像素值,并且如果hmd移动量是第二较大移动量,则指示应用程序130渲染额外像素数据138(3)中的第二较大数量的额外像素值。例如,对于较少量的头部移动,渲染部件132可以指示应用程序130渲染总共2300×1300个像素,并且对于较大量的头部移动,渲染部件132可以指示应用程序130渲染总共2500×1500个像素(即,更大量的额外像素值用于像素数据136的固定数量的“屏幕上”像素值)。换句话讲,额外像素缓冲器可以基于头部移动的程度而扩大或缩小。这同样是一种通过产生足够量的额外像素数据138(3)而不产生过多量的额外像素数据138(3)来节省主机计算机106上的资源的技术。75.在子框510处,主机计算机106的逻辑(例如,渲染部件132)可以至少部分地基于运动矢量数据138(4)或应用程序130已知和/或生成的预测数据中的至少一者来确定生成(例如,通过指示应用程序130生成)特定的额外像素数据138(3)。例如,如果运动矢量数据138(4)指示在参考观察hmd 102的显示面板108的前侧的视野中向上和向左方向上的头部移动,则渲染部件132可以确定指示应用程序130在像素数据136中的最顶部像素上方和在像素数据136的最左侧像素的左侧生成额外像素数据138(3),并且避免分别在像素数据136的最右侧像素的右侧或最底部像素下方生成额外像素数据138(3),这节省了主机计算机106的资源。换句话讲,如果用户104不太可能将他/她的头部向右和/或向下移动,则不必渲染场景中最右侧像素的右侧和场景中最底部像素下方的额外像素,因为用户104需要看到这些像素的可能性低。类似地,如果运动矢量数据138(4)指示在参考观察hmd 102的显示面板108的前侧的视野中向下和向右方向上的头部移动,则渲染部件132可以确定指示应用程序130在像素数据136中的最底部像素下方和在像素数据136的最右侧像素的右侧生成额外像素数据138(3),并且避免分别在像素数据136的最左侧像素的左侧或最顶部像素上方生成额外像素数据138(3),这节省了主机计算机106的资源。这在图5中的子框510的右侧以图形示出。76.在一些实施方案中,在框510处,可以根据从应用程序130获得的预测数据来确定要渲染哪些“界外”像素。例如,如果渲染部件132基于从执行应用程序130获得的信息了解(或以高可能性预测)在屏幕的左侧即将马上发生激增,则渲染部件132可以高可能性预测在向左方向上(即朝向该激增)的未来头部移动。因此,在子框510处,对于给定帧,渲染部件132可以指示应用程序130在预期向左头部移动的情况下渲染超出场景中最左侧像素的“界外”像素,使得如果用户104如所预测的那样将他/她的头部向左移动以应对看到该爆炸,则界外像素可用于呈现该帧的图像。77.在子框512处,主机计算机106的逻辑(例如,渲染部件132)可以确定以第一分辨率生成像素数据136并且以低于第一分辨率的第二分辨率生成额外像素数据138(3)(例如,通过指示应用程序130这样生成)。这是另一种节省资源的技术,其中预期在存在大尺度或快速头部移动的情况下额外像素数据138(3)将用于创建重新投影帧,否则可能不使用额外像素数据,并且因为在大尺度或快速头部移动期间使用额外像素数据138(3),所以当用户104的眼睛前方的场景移动时,较低的分辨率不太可能被用户104注意到。换句话讲,如果存在意外头部移动,则期望使用额外像素数据138(3)中的“界外”像素,否则丢弃,这意味着在基于额外像素数据138(3)的图像呈现期间可能发生头部移动,并且用户在头部移动期间通常可以容忍较低分辨率的图像,因为他们的眼睛忙于跟踪场景,并且在头部移动期间场景中的精细细节通常不会被注意到。78.在514处,在渲染部件132从应用程序130获得额外像素数据138(3)之后,hmd 102可以从主机计算机106接收额外像素数据138(3)。例如,该额外像素数据138(3)可以作为额外数据138连同其图像将被呈现在hmd 102上的给定帧的像素数据136一起被发送(例如,与该像素数据一起被封装)。因此,在框514处或在稍微不同(例如,更早或更晚)的时间,hmd 102可以接收用于给定帧的像素数据136。79.在516处,hmd 102的逻辑(例如,合成器116)可以至少部分地基于在框514处接收的额外像素数据138(3)来将重新投影调整应用于像素数据136以获得与给定帧相关联的经修改的像素数据518。额外像素数据138(3)可以包括在hmd 102的显示面板108的像素阵列的边界之外的额外像素值,并且可以通过用额外像素数据138(3)中包括的至少一些额外像素值替换像素数据136中包括的至少一些像素值来在重新投影中使用。例如,如果重新投影调整将像素数据136向左移位,则可以在经修改的像素数据518中输出像素数据136的最右侧像素右侧的额外像素数据138(3)。这些“界外”像素值(例如,超出与显示面板108相对应的像素的左、右、上、和/或下边缘的像素值)允许在最终图像中显示内容,而不是显示暗像素。尽管这意味着比实际将在最终图像中显示的像素数量更多的像素被渲染,但是该冗余措施补偿了例如hmd 102与主机计算机106之间的无线通信链路中的延迟。也就是说,参考过程500描述的资源节约技术可以改善计算设备的性能,而不管考虑到数据传输中的延迟而采取的冗余措施。80.图6示出了根据本文所公开的实施方案的用于基于由在主机计算机106上执行的应用程序130生成的深度数据138(2)来应用重新投影调整的示例性过程600的流程图。出于讨论的目的,参考前面的附图描述过程600。81.在602处,hmd 102可以将头部跟踪数据122发送到主机计算机106。该头部跟踪数据122可以任何合适的频率生成和/或发送,例如对应于应用程序130的目标帧速率和/或hmd 102的刷新速率的频率,或不同(例如,更快)的频率,并且头部跟踪数据122可以指示佩戴hmd 102的用户104的头部移动。82.在604处,渲染部件132可以指示应用程序130生成与给定帧相关联的深度数据138(2),并且渲染部件132可以从应用程序130获得该深度数据。深度数据138(2)(或z缓冲器数据)可以指示场景中的遮挡对象,指示它们相对于用户在世界空间中的位置的深度。83.在606处,hmd 102可以从主机计算机106接收深度数据138(2)。例如,该深度数据138(2)可以作为额外数据138连同其图像将被呈现在hmd 102上的给定帧的像素数据136一起被发送(例如,与该像素数据一起被封装)。因此,在框606处或在稍微不同(例如,更早或更晚)的时间,hmd 102可以接收用于给定帧的像素数据136。84.在608处,hmd 102的逻辑(例如,合成器116)可以至少部分地基于在框606处接收的深度数据138(2)来将重新投影调整应用于像素数据136以获得与给定帧相关联的经修改的像素数据610。如块608的子框所示,基于深度数据138(2)对像素数据136的修改可以涉及子操作。85.在子框612处,hmd 102的逻辑(例如,合成器116)可以至少部分地基于深度数据138(2)来将像素数据136中包括的像素值的第一子集分类为前景像素614并且将像素数据136中包括的像素值的第二子集分类为背景像素616。在框612处,可以使用一个或多个中间层来分类像素,诸如前景和背景之间的中间层。因此,可以采用任何合适的粒度将像素数据136中包括的像素分类为多个层。86.在子框618处,在框608处应用重新投影调整可以包括修改被分类为前景像素614的像素值的第一子集,并且避免修改被分类为背景像素616的像素值的第二子集。换句话讲,hmd 102的合成器116可以根据其中像素被分类的层(例如,前景与背景)来向给定像素应用不同的调整或不应用调整。这又是一种资源节约技术,用于避免在将重新投影调整应用于背景像素616时浪费计算资源,因为背景内容中的轻微不准确性将被用户104忽视。可以通过定义为分类像素的不同层(如从深度数据138(2)所确定的)应用的重新投影调整的不同更新速率来启用过程600中描述的该技术。例如,对应于场景的背景中的对象的背景像素可以比对应于该场景的前景中的对象的前景像素更不频繁地更新(用于重新投影)。例如,hmd 102的逻辑(例如,合成器116)可以30hz在背景像素616上执行重投影调整,而以较高频率(诸如90hz)在前景像素614上执行重投影调整。对于90hz的帧速率,这将意味着在每一帧处修改前景像素614以用于重新投影调整,而在一系列帧中的每个第三帧处修改背景像素616以用于重新投影调整,这意味着两个连续的帧将不包括对背景像素的重新投影调整以节省资源。这至少部分地基于这一概念:考虑到hmd 102的原始姿态预测中的相同误差,对背景像素616的重新投影调整预期为比对前景像素614的重新投影调整更小尺度的调整。87.图7示出了根据本文所公开的实施方案的用于hmd 102直接从手持式控制器接收手跟踪数据,以及使用手跟踪数据将虚拟手叠加在应用程序渲染的场景上的示例性过程700的流程图。出于讨论的目的,参考前面的附图描述过程700。88.在702处,hmd 102可以从通信地耦接到hmd 102的至少一个手持式控制器704接收手跟踪数据706。手持式控制器704可以表示视频游戏控制器,诸如手持式vr控制器,其在3d空间中的移动和/或位置被跟踪,这很像hmd 102的移动和/或位置可以被跟踪。代替手持式控制器704将手跟踪数据706发送到主机计算机106以用于将虚拟手叠加在主机计算机106处的场景上,可以通过使手持式控制器704直接向hmd 102发送指示手持式控制器704的移动和/或位置的手跟踪数据706来采取延迟减少措施,而不用在hmd 102接收手跟踪数据706之前向主机计算机106发送手跟踪数据706。手跟踪数据706可以包括由安装在手持式控制器704上的跟踪传感器生成的数据,以及可能由手持式控制器704的接近传感器(例如,电容传感器)生成的接近传感器数据,该接近传感器数据指示手指相对于手持式控制器704的定位/距离。89.在708处,hmd 102的逻辑(例如,合成器116)可以至少部分地基于手跟踪数据706来修改给定帧的像素数据136以包括叠加在由像素数据136表示的场景712上的一个或多个虚拟手710,以获得与给定帧相关联的经修改的像素数据。例如,在子框714处,hmd 102的合成器116可以通过用由合成器116生成的像素值替换由应用程序130生成的像素值来呈现虚拟手710,从而将一个或多个虚拟手710叠加在由应用程序130渲染的场景上。因此,hmd 102可以基于hmd 102直接从手持式控制器704接收的手跟踪数据706来在场景712上渲染虚拟手710。这可以允许将对虚拟手710的渲染的重新投影调整最小化,因为如果数据不必传输到主机计算机106然后从主机计算机106传输到hmd 102,则不必预先进行手持式控制器704的姿态预测。90.图8a和图8b示出了根据本文所公开的实施方案的系统的两种另选设置,该系统在hmd 102和主机计算机106之间划分帧的渲染工作负荷100。简要参见图1,示例性具体实施是主机计算机106与用户104佩戴的hmd 102共同定位在环境中。例如,主机计算机106可以位于用户104的房屋中,而用户104正在该房屋中使用hmd 102,而不管主机计算机106是位于与hmd 102相同的房间还是不同的房间中。另选地,移动计算设备(例如,平板电脑或膝上型电脑)形式的主机计算机106可以被携带在用户104的背部上的背包中,从而允许更大的移动性。例如,当使用这样的系统时,用户104可以位于公园中。91.图8a示出了另选具体实施,其中主机计算机106表示相对于hmd 102位于地理上远程位置的一个或多个服务器计算机。在这种情况下,hmd 102可以经由接入点(ap)800(诸如无线ap(wap)、基站等)通信地耦接到主机计算机106。在例示性示例中,数据经由ap 800在主机计算机106和hmd 102之间交换(例如,流式传输),诸如通过在因特网上流式传输数据。92.图8b示出了另一另选具体实施,其中主机计算机106经由诸如膝上型计算机或平板计算机的中间计算设备802通信地耦接到hmd 102。图8a和图8b的区别在于图8a中的ap 800可以简单地充当不执行渲染的数据路由设备,而图8b的中间计算设备802可以执行渲染工作负荷100的一部分。即,代替将渲染工作负荷100在主机计算机106和hmd 102之间分成两部分,渲染工作负荷100可以在多于两个设备(诸如三个设备)之间划分:主机计算机106、中间计算设备802和hmd 102。在图8b的场景中,主机计算机106可以生成像素数据136,如本文所述,中间计算设备802可以执行第一组渲染操作以修改像素数据136,并且hmd 102可以执行最终组渲染操作以修改经修改的像素数据。93.图9示出了根据本文所公开的实施方案的可在其中实现本文所公开的技术的可穿戴设备诸如hmd 102(例如vr头戴式耳机)和主机计算机106的示例性部件。hmd 102可以被实现为在操作期间通信地耦接到主机计算机106的连接设备,和/或被实现为独立设备。在任一种操作模式中,hmd 102将由用户104佩戴(例如,佩戴在用户104的头部上)。在一些实施方案中,hmd 102可以是可头戴的,诸如通过允许用户104使用尺寸被设计为适配在用户104的头部周围的固定机构(例如,可调节带)将hmd 102固定在他/她的头部上。在一些实施方案中,hmd 102包括虚拟现实(vr)或增强现实(ar)头戴式耳机,该头戴式耳机包括近眼显示器。这样,术语“可穿戴设备”、“可穿戴电子设备”、“vr头戴式耳机”、“ar头戴式耳机”和“头戴式显示器(hmd)”在本文中可能够互换地使用以指代图9的设备102。然而,应当理解,这些类型的设备仅仅是hmd 102的示例,并且应当理解,hmd 102可以各种其他形状因子来实现。还应当理解,可在hmd 102上实现图9所示的部件中的一些或全部部件。因此,在一些实施方案中,示出为在hmd 102中实现的部件的子集可以在主机计算机106或与hmd 102分离的另一计算设备上实现。94.在所示的具体实施中,hmd 102包括上述处理器110(该处理器可以包括一个或多个gpu 114),以及存储可由处理器110执行的合成器116的存储器112、显示面板108、头部跟踪系统118和通信接口120。95.附加的功能模块被示为存储在计算机可读介质112中并可在处理器110上执行,但是相同的功能可另选地采用硬件、固件或soc和/或其他逻辑来实现。例如,为了其他模块的利益,操作系统模块900可被配置为管理位于hmd 102内且耦接到该hmd的硬件。除此之外,在一些实例中,hmd 102可包括存储在存储器112中或者以其他方式可由hmd 102访问的一个或多个应用程序902。例如,应用程序902可以包括但不限于视频游戏应用程序(例如,具有处理计算量较小的图形的基本视频游戏)、视频回放应用程序(例如,访问存储在hmd 102和/或云中的视频内容库的应用程序)等。hmd 102可以包括任何数量或类型的应用程序902,并且不限于本文所述的具体示例。96.一般来讲,hmd 102具有输入设备904和输出设备906。输入设备904可包括控制按钮。在一些具体实施中,一或多个麦克风可用作输入设备904以接收音频输入,诸如用户语音输入。在一些具体实施中,一个或多个相机或其他类型的传感器(例如,惯性测量单元(imu))可用作输入设备904以接收姿态输入,诸如用户104的手和/或头部运动。在一些实施方案中,可以键盘、小键盘、鼠标、触摸屏、操纵杆等的形式提供附加的输入设备904。在其他实施方案中,hmd 102可省略键盘、小键盘或其他类似形式的机械输入。相反,hmd 102可被实现具有相对简单形式的输入设备904、(基于无线或有线的)网络接口、功率和处理/存储能力。例如,可采用一个或多个输入部件的有限集合(例如,用于发起配置、开机/关机等的专用按钮),使得可在之后使用hmd 102。在一个具体实施中,输入设备904可包括控制机构,诸如用于增大/减小音量的基础音量控制按钮,以及电源和复位按钮。97.输出设备906可包括显示面板108,其可包括一个或多个显示面板108(例如,立体显示面板108对),如本文所述。输出设备906还可包括但不限于发光元件(例如,led)、用于产生触觉的振动器、扬声器(例如,耳机)等。还可存在简单的发光元件(例如,led)来指示状态,诸如例如在通电时。98.hmd 102还可以包括通信接口120,该通信接口包括但不限于耦接到天线910的无线单元908,以有利于与网络和/或与第二设备(诸如主机计算机106)的无线连接。无线单元908可实现各种无线技术中的一种或多种,诸如wi-fi、蓝牙、射频(rf)等。应当理解,hmd 102还可以包括物理端口,以有利于与网络和/或第二设备(诸如主机计算机106)的有线连接。99.hmd 102还可包括光学子系统912,该光学子系统使用一个或多个光学元件将光从显示面板108引导到用户的眼睛。光学子系统912可包括不同类型的不同光学元件及其组合,包括但不限于,诸如孔、透镜(例如,菲涅耳透镜、凸透镜、凹透镜等)、过滤器等。在一些实施方案中,光学子系统912中的一个或多个光学元件可具有一个或多个涂层,诸如抗反射涂层。光学子系统912对图像光的放大允许显示面板108与较大的显示器相比在物理上更小、重量更轻且功率消耗更少。另外,对图像光的放大可增加所显示内容(例如,图像)的视场(fov)。例如,所显示内容的fov使得所显示内容使用用户fov的几乎全部(例如,120至150度对角线)并且在一些情况下使用用户fov的所有来进行呈现。ar应用程序可具有较窄的fov(例如,约40度fov)。光学子系统912可被设计成校正一个或多个光学误差,诸如但不限于桶形失真、枕形失真、纵向色差、横向色差、球面像差、彗形像差、像面弯曲、像散等。在一些实施方案中,提供给显示面板108用于显示的内容被预失真(例如,由本文所述的所应用的几何失真调整和/或色差调整预失真),并且光学子系统912在其从显示面板108接收到基于内容生成的图像光时校正该失真。100.hmd 102还可包括一个或多个传感器914,诸如用于生成运动、位置和取向数据的传感器。这些传感器914可以是或包括陀螺仪、加速度计、磁力仪、摄像机、颜色传感器或其他运动、位置和取向传感器。传感器914还可包括传感器的子部分,诸如可由相机或颜色传感器从外部观察到以便生成运动、位置和取向数据的一系列有源或无源标记。例如,vr头戴式耳机可在其外部包括多个标记,诸如反射器或灯(例如,红外或可见光灯),当由外部相机观察到或由光(例如,红外或可见光)照亮时,这些标记可提供一个或多个参考点以供软件解译以便生成运动、位置和取向数据。hmd 102可包括对由基站投射或散播到hmd 102的环境中的光(例如,红外或可见光)敏感的光传感器。101.在一个示例中,传感器914可包括惯性测量单元(imu)916。imu 916可以是基于从加速度计、陀螺仪、磁力仪,和/或适于检测运动、校正与imu 916相关联的误差的其他传感器或它们的某种组合接收的测量信号来生成校准数据的电子设备。基于测量信号,此类基于运动的传感器诸如imu 916可生成校准数据,该校准数据指示hmd 102相对于hmd 102的初始位置的估计位置。例如,多个加速度计可测量平移运动(向前/向后、向上/向下、向左/向右),并且多个陀螺仪可测量旋转运动(例如,俯仰、偏航和翻滚)。imu 916可例如快速地对测量信号进行采样并且根据采样的数据来计算hmd 102的估计位置。例如,imu 916可在时间上对从加速度计接收的测量信号进行积分以估计速度矢量,并且在时间上对速度矢量进行积分以确定hmd 102上的参考点的估计位置。参考点是可用于描述hmd 102的位置的点。虽然参考点通常可被定义为空间中的点,但是在各种实施方案中,参考点被定义为hmd 102内的点(例如,imu 916的中心)。另选地,imu 916将采样的测量信号提供给确定校准数据的外部控制台(或其他计算设备)。102.传感器914可以相对高的频率运行,以便以高速率提供传感器数据。例如,可以1000hz(或每1毫秒获取1个传感器读数)的速率生成传感器数据。这样,每秒获取一千个读数。当传感器以该速率(或以更大的速率)生成这么多的数据时,即使在约数十毫秒的相对短的时间段内,用于预测运动的数据集也相当大。103.如所提及的,在一些实施方案中,传感器914可包括光传感器,这些光传感器对由hmd 102的环境中的基站发射的光敏感以实现跟踪hmd 102在3d空间中的位置和/或取向、姿态等的目的。对位置和/或取向的计算可基于光脉冲的定时特性以及由传感器914检测到的光的存在或不存在。104.hmd 102还可包括生成眼睛跟踪数据的眼睛跟踪系统918。眼睛跟踪系统918可包括但不限于hmd 102内部的相机或其他光学传感器以捕获用户的眼睛的图像数据(或信息),并且眼睛跟踪系统918可使用所捕获的数据/信息来确定运动矢量、瞳孔间距、双眼间距、每只眼睛相对于hmd 102的三维(3d)位置,该三维位置包括每只眼睛的扭转和旋转(即,翻滚、俯仰和偏航)的幅度以及注视方向。在一个示例中,在hmd 102内发射红外光并且从每只眼睛反射红外光。反射光由眼睛跟踪系统918的相机接收或检测并被分析以从每只眼睛反射的红外光的变化中提取眼睛旋转。眼睛跟踪系统918可使用用于跟踪用户104的眼睛的许多方法。因此,眼睛跟踪系统918可跟踪每只眼睛的多达六个自由度(即,3d位置、翻滚、俯仰和偏航),并且从用户104的双眼所跟踪的量的至少一个子集可被组合以估计注视点(即,用户正在观看的地方的3d定位或在虚拟场景中的位置),该注视点可映射到显示面板108上的位置,以用于预测用户104就显示面板108的单独子集(例如,行)或一组邻接子集(例如,一组邻接行)的像素而言将观看的地方。例如,眼睛跟踪系统918可集成来自过去的测量结果的信息、识别用户104的头部的位置的测量结果,以及描述由显示面板108呈现的场景的3d信息。因此,针对用户104的眼睛的位置和取向的信息被用于确定由hmd 102呈现的虚拟场景中用户104正在观看的注视点并且将该注视点映射到hmd 102的显示面板108上的位置。105.hmd 102还可以包括上述头部跟踪系统118。头部跟踪系统118可利用传感器914中的一个或多个来跟踪用户104的头部运动(包括头部旋转),如上所述。例如,头部跟踪系统118可跟踪hmd 102的多达六个自由度(即,3d位置、翻滚、俯仰和偏航)。这些计算可在一系列帧中的每个帧处进行,使得应用程序130可根据头部位置和取向来确定如何渲染下一帧中的场景。在一些实施方案中,头部跟踪系统118被配置为生成头部跟踪数据122,该头部跟踪数据可用于基于当前和/或过去的数据和/或基于显示系统中的各个子集的像素的已知/隐含的扫描输出延迟来预测hmd 102的未来姿态(位置和/或取向)。这是因为在用户104实际看到显示器108上的光(并因此看到图像)之前,要求应用程序130渲染帧。因此,可基于在较早时间点做出的对头部位置和/或取向的这一未来预测来渲染下一帧。由头部跟踪系统118提供的旋转数据可用于确定任何合适的测量单位下的hmd 102的旋转方向和hmd 102的旋转量两者。例如,可根据对应于左、右、上和下的正或负水平方向和正或负竖直方向来简化和输出旋转方向。旋转量可以是就角度、弧度等而言。可计算角速度以确定hmd 102的旋转速率。106.在所示的具体实施中,主机计算机包括上述处理器124(该处理器可以包括一个或多个gpu 128),以及存储可由处理器128执行的应用程序130和渲染部件132的存储器126,和通信接口134。107.存储器126还可以包括操作系统920,该操作系统被配置为管理在主机计算机106内和耦接到该主机计算机的硬件,以有利于其他模块。主机计算机106还可以具有安装在存储器126中的视频游戏客户端922。视频游戏客户端922可表示被配置为启动和执行程序诸如视频游戏(或视频游戏程序)的可执行客户端应用程序。换句话讲,视频游戏客户端922可以包括可用于在包括hmd 102和主机计算机106的系统上玩视频游戏的游戏软件。在安装视频游戏客户端922后,主机计算机106然后可以具有通过计算机网络(例如,因特网)从远程系统接收(例如,下载、流式传输等)视频游戏并经由视频游戏客户端922执行这些视频游戏的能力。任何类型的内容分发模型都可用于此目的,诸如可单独购买视频游戏以在主机计算机106上下载和执行的直接购买模型、基于订阅的模型、其中出租或租用视频游戏一段时间的内容分发模型等。因此,主机计算机106可以在视频游戏库924内包括一个或多个视频游戏,诸如视频游戏130(1)。这些视频游戏可通过加载视频游戏客户端922来检索和执行。在一个示例中,用户104可通过加载视频游戏客户端922并选择视频游戏130(1)以开始执行视频游戏130(1)来选择玩他们已经购买并下载到视频游戏库924的多个视频游戏中的一个视频游戏。视频游戏客户端922可允许用户使用凭据(例如,用户帐户、密码等)登录到视频游戏服务。108.主机计算机106还可以包括通信接口134,该通信接口包括但不限于耦接到天线928的无线单元926,以有利于与网络和/或与第二设备(诸如hmd 102)的无线连接。无线单元926可实现各种无线技术中的一种或多种,诸如wi-fi、蓝牙、射频(rf)等。应当理解,主机计算机106还可以包括物理端口,以有利于与网络和/或第二设备(诸如hmd 102)的有线连接。109.一般来讲,主机计算机106具有输入设备930和输出设备932。输入设备930可以是键盘、小键盘、鼠标、触摸屏、操纵杆、控制按钮、麦克风、相机等。输出设备932可以包括但不限于显示器、发光元件(例如,led)、产生触觉感觉的振动器、扬声器(例如,耳机)等。110.尽管已经用特定于结构特征的语言描述了主题,但应当理解,所附权利要求书中定义的主题不必限于所描述的具体特征。相反,具体特征被公开为实现权利要求的例示性形式。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部