用于虚拟图像的远程渲染的制作方法

文档序号:15050514发布日期:2018-07-31 08:54阅读:369来源:国知局

存在多种可用于生成和查看交互式虚拟影像的增强现实和虚拟现实设备。此类虚拟影像可包括信息显示、内容窗口、用户界面、人工智能虚拟实体、3d模型和其他虚拟对象。虚拟影像可以是世界锁定的(world-locked),以便使得看起来虚拟对象保持在现实世界中的固定位置。

概述

提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。此外,所要求保护的主题不限于解决在本公开的任一部分中所提及的任何或所有缺点的实现。

虚拟现实设备的一个或多个传感器跟踪该虚拟现实设备的姿态。虚拟现实设备向远程计算机请求具有与将来姿态相对应的视角的虚拟图像。在接收到所请求的虚拟图像之后,虚拟现实设备将虚拟图像调整为经调整虚拟图像,该经调整虚拟图像具有与虚拟现实设备的已更新的所跟踪姿态相对应的已更新的视角。然后,虚拟现实显示器显示该经调整虚拟图像。

附图简述

图1是用于在本地请求和显示经远程渲染的虚拟图像的过程的流程图。

图2解说了用于在本地请求和显示经远程渲染的虚拟图像的示例过程。

图3解说了过大化和裁剪经渲染的虚拟图像的示例方法。

图4a和图4b解说了响应于检测到的运动的虚拟图像移位。

图5示意性地示出了虚拟现实设备的视野的示例。

图6解说了渲染和显示虚拟图像的方法的示例流程图。

图7示意性地示出了可穿戴计算设备的示例。

图8示意地示出了示例计算系统。

详细描述

在使用虚拟现实设备时,有时可能期望将虚拟图像的部分或全部渲染外包给远程计算机。在这些情形中,虚拟现实设备可向远程计算机发送对虚拟图像的请求。远程计算机可接着渲染虚拟图像,并将其发送到虚拟现实设备以供显示。如下面将更详细地解释的,虚拟图像的远程渲染可呈现优于本地渲染的若干优点。然而,远程渲染也可能引入在请求虚拟图像的时间和实际显示该虚拟图像的时间之间的延迟,从而潜在地导致不太令人满意的用户体验。由虚拟现实设备显示的虚拟图像可以基本上是“世界锁定的”,使得该虚拟图像看起来占据物理空间中的特定位置,这些特定位置不随虚拟现实设备的视角改变而改变。为了保持该效果,在用户移动时,经渲染的虚拟影像必须看起来基本上同时地更新。例如,当用户向左移动时,所渲染的虚拟图像可能需要同时向右移位成比例的距离,以便看起来没有相对于现实世界移动。由远程渲染引入的图像渲染方面的延迟可能危及该效果,导致“抖动”或“眩晕”图像。如下面所讨论的,这些效果可通过以下来减轻:识别请求和接收经远程渲染的虚拟图像所必需的时间,以及请求在将来对应时间的虚拟图像。

对虚拟图像的远程渲染可能在任何数量的潜在场景中是有用的。例如,要渲染的虚拟图像可能是复杂的,并且要求大量的计算机资源以进行渲染和/或操纵。在这些情形中,虚拟图像的渲染可被外包给具有比虚拟现实设备更大的图像渲染和/或通用处理能力的远程计算机。

在另一示例中,远程渲染对于降低软件开发期间的迭代时间和/或测试代码更改可能是有用的。应用开发者可使用远程计算机来编写能够由虚拟现实设备执行的软件应用。在应用开发期间,开发者可通过在被配置成将经渲染的影像发送到虚拟现实设备的远程计算机上执行软件应用来测试该软件应用的各方面。远程计算机可具有对应用开发有用的一个或多个工具/特征,这些工具/特征在虚拟现实设备上并不是可用的/易于访问的。开发者可在该过程期间使用虚拟现实设备,评估经渲染的虚拟影像和/或与经渲染的虚拟影像交互。这可允许应用开发者基本上实时地测试软件更改,从而消除在测试可以发生之前在虚拟现实设备上编译和安装新软件构建的需要。在一些实施例中,开发者可能能够通过经由虚拟现实设备与一个或多个虚拟元件交互来对软件应用作更改,由此影响在远程计算机上运行的软件。

图1解说了用于远程渲染虚拟图像同时减轻由用户感知到的滞后/等待时间的示例过程的流程图。虚拟现实设备100可以是适合于请求和显示虚拟图像的任何设备,包括但不限于:虚拟现实和/或增强现实眼镜、护目镜、隐形眼镜、头盔、平视显示器(hud)、全息图发生器、投影仪和/或任何其他合适的设备。虚拟现实设备100可利用不透明的显示器,由此遮掩穿戴者对其现实世界环境的视野以利于所渲染的虚拟现实(vr)环境。替换地,虚拟现实设备100可利用被配置成呈现增强现实(ar)环境的透明或透视显示器,在该增强现实环境中,虚拟对象能够连同现实世界对象一起查看。远程计算机102可包括任何合适的计算机系统,包括但不限于以下中的一者或多者:台式计算机、膝上型计算机、智能电话、平板计算机、可穿戴计算机和/或服务器计算机。此外,网络104可以是任何合适的计算机网络,包括例如因特网和/或具有足以用于传送经渲染虚拟图像的带宽的任何本地有线/无线计算机网络。虚拟现实设备100和远程计算机102可占据网络104上的分开的网络节点。虚拟现实设备100和/或远程计算机102可被实现为一个或多个计算机系统,如以下参考图8所描述的。

在106处,一个或多个传感器跟踪虚拟现实设备的姿态。姿态可被定义为确立在特定时刻处虚拟现实设备的位置和/或取向的一组变量。这些变量可包括设备的当前三维坐标(例如,x、y和z坐标),其包括三个自由度(3dof)。此外,该一个或多个传感器可跟踪虚拟现实设备的当前俯仰、滚转和偏航,从而提供附加的三个自由度(3dof),以用于经组合的六个自由度(6dof)。在一些实施例中,该一个或多个传感器被配置成检测虚拟现实设备在一个或多个维度上的运动。例如,如果可穿戴虚拟现实设备的用户向前走动、移动他的头部、向后倾斜和/或以任何其他方式移动,则该一个或多个传感器可检测该运动并持续更新所跟踪的姿态。该一个或多个传感器可包括一个或多个陀螺仪、加速度计、邻近度传感器、光学传感器、红外传感器、超声传感器、话筒、全球定位系统(gps)接收器、相机、温度计、气压计和/或任何其他合适的传感器。

在108处,虚拟现实设备100的姿态预测机预测虚拟现实设备在将来时间处的将来姿态。该将来时间可以是将来的任何合适时间,并且可根据一个或多个准则来确立,如下面进一步详细地描述的。具体而言,该将来时间可以与当前时间分开一缓冲时段,并且该缓冲时段的大小可取决于一个或多个因素。将来姿态是姿态预测机根据虚拟现实设备100的当前姿态、移动和/或其他因素而对该设备的姿态在该将来时间处或附近将是什么的预测,如将在下面解释的。

为了预测将来姿态,姿态预测机可利用如由该一个或多个传感器跟踪的虚拟现实设备的当前姿态和移动。然后,姿态预测机可将检测到的运动从当前时间向前外推到将来时间,从而生成虚拟现实设备100在将来时间处或附近可能具有的位置和/或取向的合理近似。例如,如果该一个或多个传感器确定虚拟现实设备100在当前时间处正在向左缓慢地移动,则姿态预测机可通过外推虚拟现实设备的向左运动直到该将来时间来预测该设备的将来姿态。

在一些实施例中,其他因素可以在预测虚拟现实设备100的将来姿态时被考虑。例如,当虚拟现实设备100由用户穿戴时,将来姿态可通过用生物力学约束向前外推检测到的运动而被预测。这可包括确定检测到的运动与可预测的人类移动(诸如点头、转头、弯腰、跳跃等)一致,以及使用该信息来更准确地预测将来运动和所得到的姿态。例如,姿态预测机可确定检测到的运动与用户转动他的头部一致。基于检测到的头部转动的持续时间和速度,姿态预测机可确定从当前姿态和检测到的头部转动运动外推的可能的将来姿态。

此外,姿态预测机可通过用环境约束外推检测到的运动来预测将来姿态。这可包括标识用户可能聚焦的一个或多个现实世界/虚拟对象、特征、元素和/或其他兴趣点。例如,如果姿态预测机确定用户正在转动他的头部以查看附近的电视机,则姿态预测机可预测该用户将聚焦于电视机,且因此根据以下假设来预测将来姿态:一旦电视机处于用户的视野中心,检测到的运动就将停止。类似的预测可针对虚拟对象作出。例如,姿态预测机可确定用户正朝世界锁定的虚拟监视器向上倾斜他的头部,并相应地预测将来姿态。替换地,姿态预测机可确定在检测到的运动的路径中不存在值得注意的兴趣点,并且在预测将来姿态时使用该信息。

在所解说的示例中,姿态预测机被示为虚拟现实设备的一部分。然而,在一些实施例中,姿态预测机可以是远程计算机的一部分。例如,虚拟现实设备可将来自一个或多个传感器的数据发送到远程计算机,并且远程计算机的姿态预测机可基于该传感器数据来预测虚拟现实设备的将来姿态,如以上所描述的。

在110处,虚拟现实设备的通信机向远程计算机发送对虚拟图像的请求。具体而言,虚拟现实设备请求具有与该虚拟现实设备的将来姿态相对应的视角的虚拟图像。换言之,在姿态预测机预测将来姿态之后,通信机请求远程计算机从虚拟现实设备的所预测的视角渲染一个或多个虚拟图像。

在一些实施例中,该请求可指定与一个或多个视点一致的一个或多个虚拟图像。例如,虚拟现实设备可请求具有稍微不同的视角的两个虚拟图像,一个要为用户的左眼显示,一个要为用户的右眼显示。还可请求附加视角,例如从附接到虚拟现实设备和/或存在于现实世界环境中的一个或多个相机的视点。此外,该请求可指定所渲染的虚拟图像具有特定的分辨率和/或大小。该分辨率可以与虚拟图像将通过其显示的显示设备的分辨率相匹配,或者所请求的分辨率可以不同于(例如,大于或小于)显示设备的分辨率,如以下将参考图3进一步详细解释的。

虚拟现实设备100通过网络104将请求发送到远程计算机102。如以上所描述的,网络104实际上可以是任何合适的计算机网络,包括例如因特网和/或局域网(lan)。由此,当通过计算机网络进行通信时,虚拟现实设备和远程计算机中的每一者都占据不同的网络节点。虚拟现实设备和远程计算机可分开几乎任何物理距离,只要它们能够通过计算机网络通信。

在112处,远程计算机的远程通信机从虚拟现实设备接收对虚拟图像的请求。如以上所描述的,请求的是具有与虚拟现实设备的所预测的将来姿态相对应的视角的一个或多个虚拟图像。

在114处,远程计算机的虚拟图像渲染器如该请求所指定地为虚拟现实设备渲染虚拟图像。

在116处,远程计算机的远程通信机向虚拟现实设备发送经渲染虚拟图像。在一些实施例中,虚拟图像可在发送之前被压缩和/或以其他方式被修改。这可例如响应于计算机网络的传输速度和/或最大带宽来完成。

在一些实施例中,关于所预测的将来姿态的信息可以在其被发送到虚拟现实设备之前被附加到经渲染虚拟图像。这可准许虚拟现实设备确定哪些经渲染虚拟图像与哪些所预测的将来姿态相对应。此外,在其中姿态预测机位于远程计算机处的情形中,与经渲染虚拟图像一起发送姿态信息可允许虚拟现实设备确定针对其渲染虚拟图像的将来姿态。该信息可以按任何合适的方式链接到经渲染虚拟图像。例如,姿态信息可被简单地附到包括经渲染虚拟影像的每个网络分组。替换地,姿态信息可以在每个网络分组内被编码为与经渲染虚拟影像相关联的像素数据。一旦由虚拟现实设备解码,包括姿态信息的像素就可被清除为黑色。此外,姿态信息可根据整数标识符来索引,并且经由例如发送和查找方法由一个或多个计算机设备来跟踪。

在118处,虚拟现实设备100的通信机从远程计算机接收虚拟图像。在接收到虚拟图像之际,虚拟现实设备可执行一个或多个处理/分析步骤,以便例如在附加操作被执行之前解压所接收到的虚拟图像和/或以其他方式对其进行修改。

在120处,在经渲染虚拟图像已被接收到之后,虚拟现实设备100的通信机通过测量发送请求和接收虚拟图像之间的所流逝的时间来确定计算机网络的通信等待时间。该通信等待时间可用于关于虚拟图像应当被如何渲染的将来决策中。例如,如以上所描述的,姿态预测机预测虚拟现实设备在将来时间处的将来姿态,并且该将来时间与当前时间分开一缓冲时段。在一些实施例中,姿态预测机可被配置成通过随通信等待时间的增加而动态地增加缓冲时段以及随通信等待时间的减小而动态地减小缓冲时段来动态地调整缓冲时段。高通信等待时间可指示虚拟现实设备与远程计算机之间通过计算机网络的相对慢的通信。由此,姿态预测机可能需要预测相对远的将来的将来时间的将来姿态,以便计及在所请求的虚拟图像已被远程地渲染和接收之前将花费的时间。然而,当通信等待时间低时,姿态预测机可能能够预测与当前时间相对更近的将来时间的将来姿态,由此增加预测的准确性。此外,用于虚拟图像的显示的当前帧率可基于通信等待时间来调整,并且该通信等待时间可在确立虚拟图像的分辨率时被纳入考虑。例如,在高通信等待时间的情形中,帧率和虚拟图像分辨率可被动态地降低,以便最小化与网络拥塞相关的等待时间/延迟。

在122处,虚拟现实设备100的后期重投影机在虚拟图像被显示之前对其进行调整。这样的后期重投影可减轻由姿态预测引擎预测错误的姿态而导致的任何能注意到的影响。具体而言,具有与所预测的将来姿态相对应的视角的经渲染虚拟图像可被调整为具有与虚拟现实设备的已更新的所跟踪姿态相对应的已更新的视角。例如,在虚拟图像被请求之前,一个或多个传感器可确定虚拟现实设备正在向左移动,并且姿态预测机可使用该信息来预测其中该虚拟现实设备已相对于当前姿态稍微向左移动的将来姿态。然后,具有该视角的虚拟图像可被请求。然而,在请求虚拟图像之后,该一个或多个传感器可确定该向左运动比预期更早地停止,并且作为结果,经渲染虚拟图像将不与设备在将来时间处的实际姿态相匹配。由此,如果经渲染虚拟图像被显示给用户而未经修改,则该虚拟图像内的虚拟对象可能看起来从其世界锁定的位置突然移开。为了解决该问题,后期重投影机可通过将虚拟图像移位与所预测的将来姿态和已更新的所跟踪姿态之间的差异成比例的量来调整该图像。鉴于以上示例,后期重投影机可稍微移位虚拟图像以便补偿虚拟现实设备的运动的变化,从而确保从用户的视角来看,世界锁定的虚拟对象保持在其指定位置。

在一些实施例中,由后期重投影机使用的已更新的所跟踪姿态将是在虚拟图像被显示之前可被使用的最后可能的姿态,从而确保该虚拟图像根据最新近的可能信息来被调整。被用来调整经渲染虚拟图像的已更新的所跟踪姿态可表示虚拟现实设备在虚拟图像已被接收之前或者在虚拟图像已被接收之后但在其被显示之前的时间处的位置和/或取向。在一些实施例中,一旦虚拟图像被请求,姿态预测机就可开始持续地比较最新近的已更新的所跟踪姿态和所预测的将来姿态,从而动态地确定在经渲染虚拟图像被显示之前需要对其作哪些调整。

在124处,虚拟现实设备100的虚拟现实显示器在将来时间处或附近显示经调整虚拟图像。一旦经渲染的虚拟图像已被后期重投影机接收和调整,就使用虚拟现实显示器在该将来时间处或附近对其进行显示。虚拟现实设备100可包含可用于显示经渲染虚拟影像的几乎任何类型的显示器。

一旦经调整虚拟图像被显示,就重复以上所描述的过程。姿态预测机使用新的当前姿态来预测新的将来姿态,并且通信机为新的将来姿态请求新的经渲染图像。在一些实施例中,以上所描述的过程持续地重复,使得在任何给定时刻处,该过程的多个步骤被同时地执行。例如,在同一时间处,虚拟图像正由虚拟现实显示器显示,新的将来姿态正在被预测,并且新的虚拟图像正在被请求、渲染和调整。

图2解说了以上参考图1概述的过程的各方面。首先,在200处,一个或多个传感器确定虚拟现实设备的当前姿态201。当前的6dof姿态201在图2中被简化为圆圈。该一个或多个传感器进一步检测虚拟现实设备的运动。在图2中,虚拟现实设备正在向左移动,如移动箭头202所指示。

在204处,姿态预测机使用当前姿态201和由箭头202指示的检测到的移动来预测虚拟现实设备的将来姿态。这样的预测可以如以上参考图1所描述的那样被作出。例如,姿态预测机可通过将检测到的运动从当前时间向前外推到将来时间来预测将来姿态。该外推可进一步包括用生物力学和/或环境约束来向前外推检测到的运动。

接下来,在206处,图2示出了虚拟现实设备的当前姿态201,并且还示出了被简化为虚线圆圈的虚拟现实设备的所预测的将来6dof姿态207。具体而言,鉴于由一个或多个传感器检测到的运动朝左侧,所预测的将来姿态207被示为在当前姿态201的左侧。

在208处,虚拟图像根据所预测的将来姿态207而在远程计算设备处被渲染。虚拟图像渲染可根据以上参考图1所描述的过程而在远程计算设备处发生。

接下来,在210处,图2示出了虚拟现实设备的所预测的将来姿态207,并且还示出了存在于经渲染虚拟图像中的世界锁定的虚拟对象211。虚拟现实设备的现实世界环境在210处以虚线示出,以便区分现实世界对象与世界锁定的虚拟对象211。实线将所预测的将来姿态207与虚拟对象211连接,从而指示世界锁定的虚拟对象相对于虚拟现实设备将显现的角度。该虚拟现实设备和世界锁定的虚拟对象之间的角度被动态地设置,使得该世界锁定的虚拟对象的位置即使当虚拟现实设备移动时也看起来相同。

在时间上从200前进,在212处,图2示出了被简化为虚线圆圈的虚拟现实设备的已更新的所跟踪姿态213。已更新的所跟踪姿态213指示虚拟现实设备的最新近地更新了的位置和/或取向。另外,在212处,图2示出了指示虚拟现实设备的前一位置和/或取向的姿态201以及所预测的将来姿态207。值得注意的是,已更新的所跟踪姿态213被示为在所预测的将来姿态207的左侧,指示虚拟现实设备已相比204处所预测的向左更远地移动。

在214处,在将来姿态已被预测且已更新的所跟踪姿态213已被确定之后,后期重投影机将所预测的将来姿态与已更新的所跟踪姿态进行比较。在该情形中,后期重投影机将标识所预测的将来姿态207和已更新的所跟踪姿态213之间的位置和/或取向方面的差异。如以上所描述的,在一些实施例中,一旦经渲染虚拟图像已被请求,后期重投影机就可持续地将已更新的所跟踪姿态与所预测的将来姿态进行比较,以便确定是否应当在接收到的虚拟图像被显示之前对其作任何调整。

接下来,在216处,后期重投影机使用在214处所执行的比较的结果来将经渲染虚拟图像调整为具有与虚拟现实设备的已更新的所跟踪姿态213相对应的已更新的视角。这样的调整可包括将虚拟图像移位与所预测的将来姿态和已更新的所跟踪姿态之间的差异成比例的量。在所例示的示例中,后期重投影机可移位经渲染虚拟图像,以便计及虚拟现实设备在所预测的将来姿态207和已更新的所跟踪姿态213之间的位置和/或取向方面的差异。

最后,在218处,图2示出了世界锁定的虚拟对象211、已更新的所跟踪姿态213、前一姿态201和所预测的将来姿态207。虚拟现实设备的现实世界环境以虚线示出,以便将现实世界对象与世界锁定的虚拟对象211进行区分。实线将已更新的所跟踪姿态213与世界锁定的虚拟对象211连接,指示世界锁定的虚拟对象相对于虚拟现实设备显现的角度。如通过比较218到210可以看出的,虚拟现实设备和世界锁定的虚拟对象211之间的角度已经改变,使得世界锁定的虚拟对象仍然看起来占据相同的位置,即使虚拟现实设备具有与针对其渲染虚拟图像的姿态不同的姿态。

在218处还示出了世界锁定的虚拟对象的未经调整位置219,如虚线框所示。虚拟现实设备在经调整虚拟图像中没有在位置219处显示世界锁定的虚拟对象。更确切而言,其被包括在图2中以便指示世界锁定的虚拟对象在经渲染虚拟图像在显示之前没有被后期重投影机调整的情况下将显现的位置。位置219被示为在世界锁定的虚拟图像211的左侧,指示后期重投影机响应于所预测的将来姿态207与已更新的所跟踪姿态213之间的位置和/或取向方面的差异而通过将虚拟图像向右移位对其进行了调整。

在一些实施例中,虚拟现实设备的环境可包括太大而无法容适在虚拟现实设备的视野(fov)内或完全位于当前fov之外的虚拟对象。例如,虚拟现实设备的用户可以玩要求该用户与大型虚拟龙交互的游戏。龙可能太大而无法完全容适在虚拟现实设备的视野内,这意味着针对虚拟现实设备的给定姿态渲染的虚拟图像可以不包括整条龙,而是改为仅包括龙的在fov中当前可见的各部分。类似地,用户可以与虚拟对象交互,从而将其锚定到物理世界中的特定位置,接着移动使得虚拟对象在虚拟现实设备的当前fov内不再可见。由此,针对虚拟现实设备的给定姿态渲染的虚拟图像可以仅当虚拟对象在该设备的当前fov内时才包括该虚拟对象。

在远程渲染期间,可以基于哪些虚拟对象将对将来时间处占据所预测的将来姿态的虚拟现实设备可见来渲染虚拟图像。例如,在所预测的将来姿态处,虚拟现实设备的fov可仅包括虚拟龙的头部。作为结果,针对所预测的将来姿态渲染的虚拟图像可仅包括龙的头部。然而,如果在已更新的所跟踪姿态处,虚拟现实设备的fov包括应当被虚拟龙的颈部/身体占据的区域,则这可能会造成问题。后期重投影机可调整经渲染虚拟图像,以便补偿所预测的将来姿态和已更新的所跟踪姿态之间的任何差异。然而,例如,如果经渲染虚拟图像仅包括龙的头部,则这或许是不可能的。调整虚拟图像可将龙的头部移动到与已更新的所跟踪姿态一致的位置,但在龙的颈部和身体应该在的地方留下了空白空间。

为了解决该问题,相对于虚拟现实显示器的设定的分辨率过大的虚拟图像可被渲染,接着在该虚拟图像被显示之前被裁剪以匹配该设定的分辨率。图3解说了该过程。图3示出了虚拟现实设备的当前fov300。虚线指示虚拟现实设备的当前fov的边缘。在所解说的实施例中,虚拟现实设备的fov与虚拟现实设备的用户的fov相同。然而,在一些实施例中,虚拟现实设备的fov可能小于用户的fov。在这些实施例中,现实世界对象可延伸超出虚拟现实设备fov的虚线边界。在其他实施例中,虚拟现实设备的fov可能大于用户的fov。在fov中当前不可见的附加现实世界和/或虚拟对象可存在于虚拟现实设备的当前环境中。

在302处,虚拟现实设备请求经渲染的虚拟图像。经渲染虚拟图像可能相对于虚拟现实显示器的设定的分辨率而言过大。在一些实施例中,虚拟图像可被自动地过大化到至少某一程度,以便确保可以在所预测的将来姿态不匹配已更新的所跟踪姿态的情况下作出调整。替换地,图像仅可在一个或多个传感器检测到阈值运动时才被过大化。此外,过大化的量可以与检测到的运动的速度、当前帧率和/或网络等待时间的平均变化成比例。

在304处,图3示出了如由远程计算机渲染的过大的虚拟图像。虚拟现实设备的现实世界环境中的对象用细虚线来描绘,以便区分现实世界对象与虚拟对象。如图所示,虚拟现实设备被配置成显示具有设定的分辨率的图像,并且虚拟图像相对于该设定的分辨率而言被过大化。

该经过大化的虚拟图像包括虚拟术士305。每个虚拟术士都完全由远程计算机渲染,而不管每个虚拟术士只有一部分可以在虚拟现实设备的fov中可见的事实。此外,虚拟图像被示为在两个维度(即水平维度和垂直维度)上过大化。然而,在一些实施例中,过大化的程度可以在不同维度上不同。例如,虚拟图像的第一维度上的过大化的量可以与检测到的运动在第一维度上的速度成比例,并且虚拟图像的第二维度上的过大化的量可独立地与检测到的运动在第二维度上的速度成比例。例如,如果虚拟现实设备正在水平方向上快速地移动,并且在垂直维度上缓慢地移动,则所渲染的虚拟图像可在水平维度上被极大地过大化,并且在垂直维度上仅被稍微过大化。根据检测到的运动来动态地设置过大化的量可允许虚拟现实设备根据需要移位虚拟图像以供适当的显示,而不会因不必要地渲染大虚拟图像而浪费资源。

在306处,虚拟现实设备在经渲染虚拟图像被显示之前对其进行调整。在该情形中,调整虚拟图像包括将虚拟图像裁剪成虚拟现实显示器的设定的分辨率。此时,后期重投影机可在虚拟图像被显示之前执行任何其他调整操作。例如,后期重投影机可移位虚拟图像,以便计及所预测的将来姿态和已更新的所跟踪姿态之间的差异。

接下来,图3示出了虚拟现实设备的已更新的fov308。后期重投影机已将经渲染虚拟图像304裁剪成虚拟现实显示器的设定的分辨率。如所例示的,即使每个虚拟术士整体地被渲染为过大的虚拟图像的一部分,也仅仅是虚拟术士305的在fov内可见的那些部分被显示。在调整之后,经裁剪虚拟图像将由虚拟现实显示器显示在与先前预测的姿态相对应的将来时间处或附近。

替换地,相对于虚拟现实显示器的设定的分辨率过小的虚拟图像可被渲染。这些图像可以以与以上所描述的过大的虚拟图像类似的方式来渲染和显示。例如,具有小于虚拟现实显示器的设定的分辨率的分辨率的过小的虚拟图像可被渲染,并接着被拉伸以容适虚拟现实显示器的大小。这可有助于在网络拥塞和高通信等待时间的时间段期间保持恒定的帧率。过小化的量可以与检测到的运动的速度、当前帧率和/或网络等待时间的平均变化成比例。

在一些实施例中,尽管使用与虚拟现实显示器相同的分辨率,但是经渲染虚拟图像可能相对于虚拟现实显示器的大小而言过大。在这样的场景中,过大的虚拟图像的每个像素相比来自与虚拟现实显示器大小相同的经渲染虚拟图像的像素将覆盖更大的区域。在一些实施例中,这种模糊可能是期望的。例如,在虚拟现实设备正在移动的情况下,模糊的虚拟图像可被渲染,从而模拟运动模糊效果。在一些实施例中,附加操作可被执行以便在模糊的虚拟图像被显示之前对其执行平滑。

图4a解说了虚拟对象的移位。在该示例中,虚拟图像是包括颜色信息的二维图像(rgb图像)。此外,虚拟图像包括旨在是世界锁定的虚拟对象,使得即使当虚拟现实设备移动时,它们也相对于彼此和现实世界环境保持在大致相同的位置。具体而言,图4a包括虚拟对象原始位置400、已更新的虚拟对象位置402和虚拟对象移位指示符404。在所解说的示例中,虚拟现实设备最近已稍微向下且向左移动,并且作为结果,虚拟图像在虚拟现实设备的fov中已稍微向上且向右移位,由此补偿所预测的将来姿态和已更新的所跟踪姿态之间的差异。虚拟对象可被渲染为具有虚拟深度(即,距虚拟现实设备的模拟距离)。然而,因为虚拟图像是二维图像,所以各个个体虚拟对象不被独立地移位。取而代之地,整个虚拟图像被移位,这意味着每个虚拟对象被移位相同的显示距离(即,像素的数量),而不管虚拟深度如何。

在一些实施例中,虚拟图像是三维图像,并且包括多个虚拟对象,每个虚拟对象被渲染以显现在距虚拟现实设备不同的距离处。经渲染虚拟图像可包括颜色和深度信息(rgbd图像)。例如,作为被用来点亮显示器的一个或多个颜色值(例如,rgb值)的补充,每个像素还可包括底层的深度信息(例如,d值),该深度信息不被显示,但其可在所预测的姿态不同于已更新的所跟踪姿态的情况下被用来将各个个体虚拟对象定位在显示器上。

图4b解说了与调整三维rgbd图像一致地对虚拟对象进行移位。类似于图4a,图4b包括虚拟对象原始位置450、虚拟对象已更新的位置452和虚拟对象移位指示符454。然而,在该示例中,调整虚拟图像包括将三维虚拟图像的不同方面独立地移位与所预测的将来姿态和已更新的所跟踪姿态之间的差异成比例的量。调整虚拟图像可进一步包括将三维虚拟图像的每个特定方面独立地移位与该特定方面的虚拟深度成反比的量。这可以在图4b中看出,如每个虚拟对象已响应于虚拟现实设备的移动而移位了不同的距离。具体而言,具有较小虚拟深度的虚拟对象相比具有较大虚拟深度的虚拟对象已移位了更大的距离,与视差效应一致。

一个或多个虚拟对象任选地可以在虚拟现实设备上被本地渲染,而其他虚拟对象在远程计算机上被远程渲染。在这些实施例中,虚拟现实设备可包括被配置成在本地渲染一个或多个虚拟对象的本地虚拟图像渲染器。此外,在这些实施例中,虚拟现实显示器可被配置成与经调整虚拟图像一起显示由本地虚拟图像渲染器渲染的一个或多个虚拟对象。这可出于各种原因来完成。例如,相对简单的虚拟对象可由虚拟现实设备来渲染,而更复杂的对象可被远程渲染。此外,包括例如光标之类的具有相对低的等待时间容忍度的虚拟对象可在本地渲染,其中渲染可被完成而没有与网络相关联的通信等待时间。例如,图4b包括光标456。在一些实施例中,光标456和/或其他虚拟对象可由本地图像渲染器在本地渲染,而其他虚拟对象被远程渲染。本地和远程渲染的分叉可根据2d和/或3d虚拟图像来执行。

在一些实施例中,远程计算机可渲染三维图像并将其传送到虚拟现实设备以供调整和显示。然而,在低网络带宽/其他网络延迟的情况下,或者如果远程计算机不能以由虚拟现实设备定义的帧率渲染虚拟图像,则远程计算机可渲染二维rgb虚拟图像并将该虚拟图像连同相关联的深度图发送到虚拟现实设备。后期重投影机可接着根据所预测的将来姿态和已更新的所跟踪姿态之间的差异并且进一步根据被包括在接收到的深度图中的信息来调整接收到的虚拟图像。将二维虚拟图像调整为包括来自深度图的信息可通过任何合适的技术来完成,包括例如在棋盘格平面上将图像渲染为高度图,或者构建虚拟环境的体素表示。此外,虚拟图像可通过虚拟现实设备经由构造为虚拟网格的射线跟踪或者经由实际上任何其他合适的技术来被渲染和/或修改。此外,虚拟现实设备可在本地渲染深度图,并使用该在本地渲染的深度图来遮挡接收到的虚拟图像的各部分,由此降低任何遮挡操作的等待时间。以上所描述的技术可独立于网络传输速度和/或远程计算机渲染速度而允许虚拟图像渲染和显示被高效地执行。

在一些实施例中,所渲染的虚拟图像可包括由远程计算机提供的附加内容。例如,远程计算机可连接到提供音频和/或视觉内容的一个或多个本地/远程内容源。此外,由远程计算机提供的内容可包括关于远程计算机的一个或多个硬件组件/软件操作的信息。附加内容可以以任何合适的方式被包括在虚拟图像中。例如,虚拟图像可包括来自远程/本地视频服务的视觉内容。该视觉内容可以作为浮动虚拟监视器被包括在虚拟图像中,或以任何其他合适的方式被呈现给用户。附加地,当应用开发者如以上所描述正在使用远程渲染来测试软件应用中的更改时,被提供给虚拟现实设备的附加内容可包括例如调试信息和/或与虚拟现实设备和/或远程计算机相关的任何其他合适的信息。

图5示出了内容窗口502形式的示例虚拟对象。内容窗口502显示由远程计算机提供且与远程计算机当前正在执行的软件应用相关的附加内容。具体而言,内容窗口502指示远程计算机当前正在执行称为“wizardadventure(术士冒险)”的程序,并将经渲染的虚拟影像发送到虚拟现实设备。内容窗口502进一步包括与程序的当前时间帧以及当前帧率相关的信息。fov500可包括类似于内容窗口502的任何数量的内容窗口,其被配置成虚拟地显示由远程计算机提供的任何内容。此外,用户能够以任何合适的方式与由远程计算机提供的内容交互,包括经由被包括在虚拟现实设备中和/或被包括在本地环境中的一个或多个输入设备。例如,用户可以与内容窗口502交互,以便更改所显示的信息、修改正在运行的应用的代码、和/或执行任何其他合适的操作。

图6解说了用于渲染、调整和显示经渲染虚拟图像的方法。在一些实施例中,虚拟现实设备可被配置成根据各种条件在虚拟图像的本地渲染和远程渲染之间切换。此外,在本地渲染期间,虚拟现实设备仍可利用姿态预测和后期重投影,如图6中所解说的。

该方法起始于600处,其中一个或多个传感器跟踪虚拟现实设备的姿态。接下来,在602处,姿态预测机预测虚拟现实设备在将来时间处的将来姿态。

在604处,该方法确定远程渲染当前是否是活跃的。如果远程渲染不是活跃的(604处为“否”),则该方法进行到606,其中虚拟现实设备的本地图像渲染器针对所预测的将来姿态渲染虚拟图像。然而,如果远程渲染是活跃的(604处为“是”),则该方法进行到614。

该方法从606进行到608,在608中,虚拟现实设备的后期重投影机确定在602处预测的将来姿态与由一个或多个传感器确定的已更新的所跟踪姿态之间是否存在任何差异。如果差异存在(608处为“是”),则该方法进行到610。如果不存在差异(608处为“否”),则该方法进行到612。

在610处,后期重投影机将虚拟图像调整为具有与虚拟现实设备的已更新的所跟踪姿态相对应的已更新的视角的经调整虚拟图像。一旦虚拟图像已被调整,该方法就进行到612,在612中,虚拟现实设备的虚拟现实显示器在该将来时间处或附近显示该经调整虚拟图像。

在614处,虚拟现实设备的通信机向远程计算机发送对具有与虚拟现实设备的将来姿态相对应的视角的虚拟图像的请求。在616处,远程计算机的远程通信机接收来自虚拟现实设备的请求。

接下来,在618处,远程计算机的虚拟图像渲染器如由远程通信机接收到的请求所指定地来为虚拟现实设备渲染虚拟图像。一旦图像已被渲染,该方法就进行到620,此时远程通信机向虚拟现实设备发送经渲染虚拟图像。

在622处,虚拟现实设备100的通信机从远程计算机接收虚拟图像,并且该方法行进到608。图6的方法可被持续地执行,并且该方法的一个实例可以在该方法的前一实例结束之前开始。

图7示出了要由穿戴者穿戴和使用的示例头戴式显示器(hmd)700的各方面。所示出的显示系统包括框架702。该框架支持靠近穿戴者眼睛定位的立体透视显示部件。hmd700可被用于增强现实应用中,其中现实世界影像与虚拟显示影像混合。将领会到,在其他示例中,hmd设备700可以采用其他合适的形式,其中透明、半透明和/或不透明显示器被支承在查看者的一只或两只眼睛前方。还将领会到,图1中所示的虚拟现实设备100可以采用hmd设备700(如在下文更详细地描述的)或任何其他合适的hmd设备的形式。

hmd700包括分开的右和左显示面板704r和704l,从穿戴者的角度看其是全部或部分透明的,以便给予穿戴者他或她的周围环境的清晰视图。例如,物理环境的外观可以通过经由显示面板呈现的图形内容(例如,一个或多个像素,每一像素具有相应色彩和亮度)来增强以创建增强现实环境。

每个显示面板包括背光和液晶显示器(lcd)型微显示器。背光可包括发光二极管(led)的整体——例如,白led或红、绿和蓝led的某种分布。背光可被配置以便引导其发射穿过lcd微显示器,该lcd微显示器基于来自计算系统706的控制信号来形成显示图像。lcd微显示器可包括布置于矩形网格或其他几何形状上的众多可单独寻址的像素。在一些实施例中,发射红光的像素可与发射绿和蓝光的像素并置,使得lcd微显示器形成彩色图像。在其他实施例中,反射型硅上液晶(lcos)微显示器或数字微镜阵列可被用于代替lcd微显示器。替换地,有源led、全息或扫描束的微显示器可被用于形成右和左显示图像。尽管图示出了分开的右和左显示面板,跨双眼延伸的单个显示面板可被替代使用。

计算系统706被操作地耦合到显示面板和其他显示系统部件。该计算系统可包括与hmd设备和显示器的各个传感器和系统处于通信的逻辑机和存储机,如以下参考图8更详细地讨论的。在一个示例中,存储机可包括能够由逻辑机器执行以进行以下操作的指令:从传感器接收传感器数据并预测hmd设备的将来姿态,经由通信机请求经渲染的虚拟图像,调整经渲染虚拟图像,以及经由右侧和/或左侧显示面板来显示经调整虚拟图像。hmd700可包括加速度计708k、陀螺仪708l和磁力计708m、立体声扬声器710r和710l、彩色相机712和深度相机714。

hmd设备700还可包括利用一个或多个运动传感器(诸如hmd设备700上的传感器708)来捕捉姿态数据且由此允许对用户头部和/或hmd设备700的位置跟踪、方向及取向感测、和/或运动检测的头部跟踪系统。

头部跟踪系统还可支持其他合适的定位技术,诸如gps或其他全球导航系统。此外,尽管描述了位置传感器系统的具体示例,但将理解,任何其他合适的位置传感器系统可被使用。例如,姿态和/或移动数据可基于来自戴在穿戴者上和/或穿戴者外部的传感器的任何组合的传感器信息来确定,这些传感器包括但不限于任何数量的陀螺仪、加速度计、惯性测量单元(imu)、gps设备、气压计、磁力计、相机(例如,可见光相机、红外光相机、飞行时间深度相机、结构光深度相机等)、通信设备(例如,wifi天线/接口)等。

在一些实例中,hmd设备700还可包括利用一个或多个面向外的传感器(诸如hmd设备700上的彩色相机712或深度相机714)来捕捉图像数据的光学传感器系统。一个或多个面向外的传感器可以检测其视野内的移动,如视野内的用户或人或物理对象所执行的基于姿势的输入或其他移动。面朝外的传感器还可从物理环境和该环境内的物理对象捕捉2d图像信息和深度信息。

光学传感器系统可包括经由一个或多个深度相机来生成深度跟踪数据的深度跟踪系统。在一个示例中,每个深度相机可包括立体视觉系统的左和右相机。来自这些深度相机中的一个或多个的时间解析图像可与彼此配准和/或与来自另一光学传感器(诸如可见光谱相机)的图像配准,并且可被组合以产生深度解析视频。

在其他示例中,结构化光深度相机可被配置成投影结构化红外照明并对从照明被投影到其之上的场景中反射的该照明进行成像。可基于所成像的场景的各个区域内邻近特征之间的间隔来构造该场景的深度图。在其他示例中,深度相机可采用飞行时间深度相机的形式,其被配置成将脉冲式红外照明投射到场景上并且检测从该场景被反射的照明。例如,经调制的照明可由红外光源提供,并且所投射的照明和经反射的照明之间的相位差可被用来计算投影该光和检测到该光之间的时间。将理解,在本公开的范围内可使用任何其他合适的深度相机。

面向外的传感器可以捕捉用户位于其中的物理环境的图像。参考hmd设备700,在一个示例中,混合现实显示程序可包括使用这样的所捕捉的图像来生成对用户周围的物理环境进行建模的虚拟环境的3d建模系统。

在一个示例中,hmd700可包括被配置成检测用户的每一只眼睛的注视方向的注视跟踪系统。该注视检测子系统可被配置成以任何合适方式确定每一只用户眼睛的注视方向。例如,注视检测子系统可包括诸如红外光源等被配置成使得从用户的每一只眼睛反射闪光的一个或多个光源。一个或多个图像传感器然后可被配置成捕捉用户眼睛的图像。

如根据收集自图像传感器的图像数据所确定的闪光和瞳孔的图像可被用来确定每一只眼睛的光轴。使用该信息,注视跟踪系统可接着确定用户正在注视的方向。注视跟踪系统可附加地或替换地确定用户正在注视哪一物理或虚拟对象。这样的注视跟踪数据随后可被提供给hmd设备700。

还将理解,注视跟踪系统可以具有任意合适数量和布置的光源和图像传感器。例如,hmd设备700的注视跟踪系统可利用至少一个面向内的传感器。

hmd设备700还可包括话筒系统,该话筒系统包括捕捉音频数据的一个或多个话筒。在其他示例中,音频可经由一个或多个扬声器(诸如hmd设备700上的扬声器710)被呈现给用户。

在一些实施例中,本文中所描述的方法和过程可以与一个或多个计算设备的一个或多个计算系统绑定。具体而言,这样的方法和过程可被实现为计算机应用程序或服务、应用编程接口(api)、库和/或其他计算机程序产品。

图8示意性地示出了可执行以上所描述的方法和过程中的一者或多者的本地计算机800和远程计算机816的非限制性实施例。计算机800和816以简化形式示出。计算机800和816可采取以下形式:一个或多个ar/vrhmd计算机、个人计算机、服务器计算机、平板计算机、家庭娱乐计算机、网络计算设备、游戏设备、移动计算设备、移动通信设备(例如,智能电话)、可穿戴计算设备和/或其他计算设备。具体而言,本地计算机800和远程计算机816可被实现为如以上所描述的虚拟现实设备和/或远程计算机。

本地计算机800包括逻辑机802和存储机804。本地计算机800可任选地包括显示子系统810、输入子系统812、通信机814、和/或在图8中未示出的其他组件。类似地,远程计算机816包括逻辑机818和存储机820。远程计算机816可任选地包括显示子系统824、输入子系统826、远程通信机828、和/或在图8中未示出的其他组件。

逻辑机802和818包括被配置成执行指令的一个或多个物理设备。例如,逻辑机可被配置成执行作为以下各项的一部分的指令:一个或多个应用、服务、程序、例程、库、对象、组件、数据结构、或其他逻辑构造。这种指令可被实现以执行任务、实现数据类型、转换一个或多个组件的状态、实现技术效果、或以其他方式得到期望结果。

逻辑机可包括被配置成执行软件指令的一个或多个处理器。附加地或替换地,逻辑机可包括被配置成执行硬件或固件指令的一个或多个硬件或固件逻辑机。逻辑机的处理器可以是单核或多核的,且在其上执行的指令可被配置成用于串行、并行和/或分布式处理。逻辑机的各个个体组件任选地可分布在两个或更多个分开的设备上,这些设备可位于远程和/或被配置成用于协同处理。逻辑机的各方面可由以云计算配置进行配置的可远程访问的联网计算设备来虚拟化和执行。

存储机804和820包括被配置成保持能够由逻辑机执行以实现本文中所描述的方法和过程的指令的一个或多个物理设备。在实现这些方法和过程时,可以变换存储机804和820的状态(例如,以保存不同的数据)。

存储机804和820可包括可移动和/或内置设备。存储机804和820可包括光学存储器(例如,cd、dvd、hd-dvd、蓝光碟等)、半导体存储器(例如,ram、eprom、eeprom等)、和/或磁存储器(例如,硬盘驱动器、软盘驱动器、磁带驱动器、mram等),等等。存储机804和820可包括易失性、非易失性、动态、静态、读/写、只读、随机存取、顺序存取、位置可寻址、文件可寻址和/或内容可寻址设备。

将领会到,存储机804和820包括一个或多个物理设备。然而,本文描述的指令的各方面可替换地通过不由物理设备在有限时长内持有的通信介质(例如,电磁信号、光信号等)来传播。

逻辑机802和818以及存储机804和820的各方面可以被一起集成到一个或多个硬件逻辑组件中。这些硬件逻辑组件可包括例如现场可编程门阵列(fpga)、程序和应用专用的集成电路(pasic/asic)、程序和应用专用的标准产品(pssp/assp)、片上系统(soc)以及复杂可编程逻辑器件(cpld)。

姿态预测机806和后期重投影机808可经由逻辑机802和存储机804和/或任何其他合适的设备来实现。此外,虚拟图像渲染器822可经由逻辑机818和存储机820和/或任何其他合适的设备来实现。在一些实施例中,本地计算机800可包括如以上所描述的本地图像渲染器,其可附加地经由逻辑机802和存储机804来实现。此外,远程计算机可包括如以上所描述的姿态预测机,其可经由逻辑机818和存储机820来实现。

术语“模块”、“程序”和“引擎”可用于描述被实现为执行一个特定功能的计算系统800的一方面。在一些情形中,可以经由执行由存储机804和/或820保持的指令的逻辑机802和/或818来实例化模块、程序或引擎。将理解,不同的模块、程序、和/或引擎可以从相同的应用、服务、代码块、对象、库、例程、api、函数等实例化。类似地,相同的模块、程序和/或引擎可由不同的应用、服务、代码块、对象、例程、api、功能等来实例化。术语“模块”、“程序”和“引擎”意在涵盖单个或成组的可执行文件、数据文件、库、驱动程序、脚本、数据库记录等。

应该理解,在此使用的“服务”是跨多个用户会话可执行的应用程序。服务可用于一个或多个系统组件、程序和/或其他服务。在一些实现中,服务可以在一个或多个服务器计算设备上运行。

当被包括时,显示子系统810和/或824可被用来呈现由存储机804和/或820保持的数据的视觉表示。此视觉表示可采用图形用户界面(gui)的形式。由于本文中所描述的方法和过程改变了由存储机保持的数据,且因而变换了存储机的状态,因此同样可以转变显示子系统810和824的状态以视觉地表示底层数据的改变。显示子系统810和824可包括利用几乎任何类型的技术的一个或多个显示设备。可将此类显示设备与逻辑机802和818和/或存储机804和820组合在共享封装中,或者此类显示设备可以是外围显示设备。具体而言,显示子系统810在一些实施例中可被实现为虚拟现实显示器。

当被包括时,输入子系统812和826可包括诸如键盘、鼠标、触摸屏或游戏控制器之类的一个或多个用户输入设备或者与其对接。在一些实施例中,输入子系统可包括所选择的自然用户输入(nui)部件或与其对接。此类组件可以是集成的或外围的,并且输入动作的转导和/或处理可以在板上或板外被处理。nui组件的示例可包括用于语言和/或语音识别的话筒;用于机器视觉和/或姿势识别的红外、色彩、立体显示和/或深度相机;用于运动检测和/或意图识别的头部跟踪器、眼睛跟踪器、加速度计和/或陀螺仪;以及用于评估脑部活动的电场感测组件。具体而言,以上所描述的一个或多个传感器可在一些实施例中被实现为输入子系统812和/或826。

当被包括时,通信机814和远程通信机828可被配置成经由网络830来将本地计算机800通信地耦合到远程计算机816,并且可被进一步配置成允许本地计算机和/或远程计算机与一个或多个其他计算机系统通信。通信机814和远程通信机828可包括与一个或多个不同通信协议兼容的有线和/或无线通信设备。作为非限制性示例,通信机可被配置成用于经由无线电话网络或者有线或无线局域网或广域网来进行通信。在一些实施例中,通信机可允许本地计算机800和远程计算机816经由网络(诸如因特网)向其他设备发送消息和/或从其他设备接收消息。

在一示例中,一种虚拟现实设备包括:被配置成跟踪虚拟现实设备的姿态的一个或多个传感器;姿态预测机,该姿态预测机被配置成预测虚拟现实设备在将来时间处的将来姿态;通信机,该通信机被配置成向远程计算机发送对具有与虚拟现实设备的将来姿态相对应的视角的虚拟图像的请求以及从远程计算机接收该虚拟图像;后期重投影机,该后期重投影机被配置成将该虚拟图像调整为具有与虚拟现实设备的已更新的所跟踪姿态相对应的已更新的视角的经调整虚拟图像;以及被配置成显示经调整虚拟图像的虚拟现实显示器。在该示例或任何其他示例中,通信机被进一步配置成通过测量发送请求与接收到虚拟图像之间的所流逝的时间来确定通信等待时间。在该示例或任何其他示例中,姿态预测机被配置成动态地调整当前时间与为之预测将来姿态的将来时间之间的缓冲时段,该缓冲时段随通信等待时间的增加而动态地增加并且随通信等待时间的减小而动态地减小。在该示例或任何其他示例中,该一个或多个传感器被配置成检测虚拟现实设备在一个或多个维度上的运动。在该示例或任何其他示例中,姿态预测机通过将检测到的运动从当前时间向前外推到将来时间来预测将来姿态。在该示例或任何其他示例中,外推检测到的运动包括用生物力学约束来向前外推检测到的运动。在该示例或任何其他示例中,外推检测到的运动包括用环境约束来向前外推检测到的运动。在该示例或任何其他示例中,虚拟现实设备被配置成显示具有设定的分辨率的图像,并且虚拟图像相对于该设定的分辨率被过大化。在该示例或任何其他示例中,过大化的量与检测到的运动的速度成比例。在该示例或任何其他示例中,虚拟图像的第一维度中的过大化的量可以与检测到的运动在第一维度上的的速度成比例,并且虚拟图像的第二维度中的过大化的量可独立地与检测到的运动在第二维度上的速度成比例。在该示例或任何其他示例中,调整虚拟图像包括将虚拟图像裁剪为设定的分辨率。在该示例或任何其他示例中,调整虚拟图像包括将虚拟图像移位与所预测的将来姿态和已更新的所跟踪姿态之间的差异成比例的量。在该示例或任何其他示例中,虚拟图像是三维图像,调整该虚拟图像包括将三维虚拟图像的不同方面独立地移位与所预测的将来姿态和已更新的所跟踪姿态之间的差异成比例的量,并且进一步包括将三维虚拟图像的每个特定方面独立地移位与该特定方面的虚拟深度成反比的量。在该示例或任何其他示例中,虚拟现实设备进一步包括被配置成在本地渲染一个或多个虚拟对象的本地虚拟图像渲染器,并且该虚拟现实显示器被配置成与经调整虚拟图像一起显示由本地虚拟图像渲染器渲染的一个或多个虚拟对象。在该示例或任何其他示例中,虚拟现实设备和远程计算机通过计算机网络进行通信,并且虚拟现实设备和远程计算机中的每一者占据不同的网络节点。在该示例或任何其他示例中,从远程计算机接收的虚拟图像包括由远程计算机提供的附加内容。

在一示例中,一种计算设备包括:远程通信机,该远程通信机被配置成从虚拟现实设备接收对具有与该虚拟现实设备的所预测的将来姿态相对应的视角的虚拟图像的请求以及向该虚拟现实设备发送经渲染虚拟图像;以及虚拟图像渲染器,该虚拟图像渲染器被配置成如由远程通信机接收到的请求所指定地为虚拟现实设备渲染虚拟图像。

在一示例中,一种虚拟现实设备包括:被配置成跟踪虚拟现实设备的姿态的一个或多个传感器;通信机,该通信机被配置成向远程计算机发送对具有与虚拟现实设备的将来姿态相对应的视角的虚拟图像的请求以及从远程计算机接收该虚拟图像;后期重投影机,该后期重投影机被配置成将该虚拟图像调整为具有与虚拟现实设备的已更新的所跟踪姿态相对应的已更新的视角的经调整虚拟图像;以及被配置成显示经调整虚拟图像的虚拟现实显示器。在该示例或任何其他示例中,将来姿态的将来时间基于通信等待时间来动态地预测。在该示例或任何其他示例中,通过将检测到的运动从当前时间向前外推到将来时间来预测将来姿态。

将会理解,本文描述的配置和/或方式本质是示例性的,这些具体实施例或本文示例不应被视为限制性的,因为许多变体是可能的。本文描述的具体例程或方法可以表示任何数量的处理策略中的一个或多个。如此,所例示和/或所描述的各种动作可以以所示和/或所述顺序、以其他顺序、并行地执行,或者被省略。同样,上述过程的次序可以改变。

本公开的主题包括本文公开的各种过程、系统和配置以及其他特征、功能、动作和/或性质的所有新颖和非显而易见的组合和子组合,以及其任何和所有等同物。

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