用于虚拟现实内容的显示的场景和对象的分立时间扭曲的制作方法

文档序号:14649577发布日期:2018-06-08 21:30阅读:208来源:国知局
用于虚拟现实内容的显示的场景和对象的分立时间扭曲的制作方法

本申请要求于2016年2月22日提交的标题为“SEPARATE TIME-WARPING FOR VIRTUAL REALITY HEADSET AND VIRTUAL REALITY CONTROLLER(用于虚拟现实头戴式设备和虚拟现实控制器的分立时间扭曲)”的美国临时专利申请No.62/298,415的优先权,其公开内容通过引用整体并入在此。

技术领域

本说明书涉及虚拟现实内容的图像处理和渲染,并且具体涉及对场景和对象使用视频渲染和时间扭曲来显示虚拟现实内容。



背景技术:

执行视频渲染可能消耗虚拟现实(VR)环境中的大量时间和计算资源。虚拟现实应用可以接收或生成应用数据。然后,图形或渲染引擎可以将每个帧的图形渲染以显示为虚拟现实内容的一部分。在某些情况下,当图形引擎正在渲染帧的图形时,用户头部或用户佩戴的VR头戴式耳机可能会移动,导致用户头部的位置和/或定向信息在向显示器输出帧时不准确。



技术实现要素:

根据示例实施方式,计算机实现的方法包括:基于在虚拟现实内容的场景的渲染期间或之后接收的头部姿态信息来执行所述场景的第一时间扭曲,以获得时间扭曲场景;至少基于在对象的渲染期间或之后接收到的对象姿态信息来执行所述对象的第二时间扭曲以获得时间扭曲对象;以及在显示设备上显示基于所述时间扭曲场景和所述时间扭曲对象合成图像。

根据另一示例实施方式,一种设备包括至少一个处理器和包括计算机指令的至少一个存储器,所述计算机指令在由所述至少一个处理器执行时使所述设备执行以下操作:基于在虚拟现实内容的场景的渲染期间或之后接收的头部姿态信息来执行所述场景的第一时间扭曲,以获得时间扭曲场景;至少基于在对象的渲染期间或之后接收到的对象姿态信息来执行所述对象的第二时间扭曲以获得时间扭曲对象;以及在显示设备上显示基于所述时间扭曲场景和所述时间扭曲对象的合成图像。

根据示例实施方式,提供了一种用于将虚拟现实内容渲染给显示设备的计算机实现的方法,包括:在第一处理管线内的第一电子显示稳定引擎处接收基于虚拟现实头戴式耳机的用户的初始头部姿态信息和更新的头部姿态信息的虚拟现实内容的主场景;由第一电子显示稳定引擎基于更新的头部姿态信息执行主场景的时间扭曲;在第二处理管线内的第二电子显示稳定引擎处接收基于初始控制器/对象姿态信息和更新的头部姿态信息的虚拟现实控制器/对象的图形覆盖;由第二电子显示稳定引擎基于更新的控制器/对象姿态信息执行图形覆盖的时间扭曲;基于时间扭曲的主场景和虚拟现实控制器/对象的时间扭曲的图形覆盖生成合成图像;并将合成图像输出到显示设备。

根据另一示例实施方式,提供了一种用于将虚拟现实内容渲染给显示设备的计算机实现的系统(或设备)。该设备可以包括至少一个处理器和包括计算机指令的至少一个存储器,该计算机指令当由至少一个处理器执行时,使该系统:在第一处理管线内的第一电子显示稳定引擎处接收基于虚拟现实头戴式耳机的用户的初始头部姿态信息和更新的头部姿态信息的虚拟现实内容的主场景;由第一电子显示稳定引擎基于更新的头部姿态信息执行主场景的时间扭曲;在第二处理管线内的第二电子显示稳定引擎处接收基于初始控制器/对象姿态信息和更新的头部姿态信息的虚拟现实控制器/对象的图形覆盖;由第二电子显示稳定引擎基于更新的控制器/对象姿态信息执行图形覆盖的时间扭曲;基于时间扭曲的主场景和虚拟现实控制器/对象的时间扭曲的图形覆盖生成合成图像;并将合成图像输出到显示设备。

根据一种示例实施方式,提供了一种用于将虚拟现实内容渲染给显示设备的计算机实现的方法,该方法包括:在第一处理管线中基于虚拟现实头戴式耳机的用户的头部姿态信息渲染虚拟现实内容的主场景;在第一处理管线内的第一电子显示稳定引擎处,在主场景的渲染期间或之后,接收更新的头部姿势信息;由第一电子显示稳定引擎基于更新的头部姿态信息执行主场景的时间扭曲;在第二处理管线中基于控制器/对象姿态信息渲染虚拟现实控制器/对象的图形覆盖;在所述第二处理管线内的第二电子显示稳定引擎处,在所述覆盖的渲染期间或之后,接收更新的控制器/对象姿态信息;由第二电子显示稳定引擎基于更新的控制器/对象姿态信息来执行图形覆盖的时间扭曲;基于时间扭曲的主场景和虚拟现实控制器/对象的时间扭曲的图形覆盖生成合成图像;并将合成图像输出到显示设备。

根据另一示例实施方式,提供了一种用于将虚拟现实内容渲染给显示设备的计算机实现的系统(或设备)。所述系统可以包括至少一个处理器和包括计算机指令的至少一个存储器,所述计算机指令在由所述至少一个处理器执行时使得所述系统:在第一处理管线中基于虚拟现实头戴式耳机的用户的头部姿态信息渲染虚拟现实内容的主场景;在第一处理管线内的第一电子显示稳定引擎处,在主场景的渲染期间或之后,接收更新的头部姿势信息;由第一电子显示稳定引擎基于更新的头部姿态信息执行主场景的时间扭曲;在第二处理管线中基于控制器/对象姿态信息渲染虚拟现实控制器/对象的图形覆盖;在所述第二处理管线内的第二电子显示稳定引擎处,在所述覆盖的渲染期间或之后,接收更新的控制器/对象姿态信息;由第二电子显示稳定引擎基于更新的控制器/对象姿态信息来执行图形覆盖的时间扭曲;基于时间扭曲的主场景和虚拟现实控制器/对象的时间扭曲的图形覆盖生成合成图像;并将合成图像输出到显示设备。

在附图和下面的描述中阐述了一个或多个实施方式的细节。其他特征将从说明书和附图以及权利要求中显而易见。

附图说明

图1是根据示例实施方式的包括虚拟现实头戴式耳机和控制器的虚拟现实系统的示例。

图2A和2B是根据示例实施方式的示例虚拟现实头戴式耳机的透视图。

图2C图示了根据示例实施方式的控制器。

图3是根据示例实施方式的头戴式电子设备和控制器的框图。

图4是图示出根据示例实施方式的虚拟现实系统的框图。

图5是图示出根据示例实施方式的虚拟现实系统的操作的流程图。

图6是图示出根据示例实施方式的虚拟现实系统的操作的流程图。

图7是图示出根据另一示例实施方式的虚拟现实系统的操作的流程图。

图8示出了可以用于这里描述的技术的通用计算机设备和通用移动计算机设备的示例。

具体实施方式

根据说明性示例实施方式,虚拟现实(VR)(其也可以被称为沉浸式多媒体或计算机模拟生活)可以至少在一些情况下以不同程度复制或模拟环境或在现实世界或想象世界或环境中的地点中的实体存在。在示例实施方式中,VR系统可以包括可安装或佩戴在用户头部上的VR头戴式耳机或头戴式显示器(HMD)设备。

虚拟现实(VR)系统可以生成三维(3D)沉浸式虚拟环境。用户可以通过与各种电子设备的交互来体验这种3D沉浸式虚拟环境。例如,包括显示器、用户在观看显示设备时看过去的眼镜或护目镜的头盔或其他头戴式设备可以提供用户要体验的3D沉浸式虚拟环境的音频和视觉元素。控制器(例如外部手持设备、装有传感器的手套以及其他这样的电子设备)可以与头戴式设备配对,允许用户通过操纵控制器来移动通过虚拟环境中的元件并且与虚拟环境中的元件交互。

沉浸在佩戴第一电子设备(例如,HMD设备/VR头戴式耳机)的3D虚拟环境中的用户可以探索3D虚拟环境,并通过各种不同类型的输入与3D虚拟环境交互。这些输入可以包括例如物理交互,包括例如与VR头戴式耳机分开的第二电子设备(诸如VR控制器)的操纵、VR头戴式耳机本身的操纵、控制器的操纵和/或通过手/手臂姿态、头部运动和/或头部和/或眼睛定向凝视等。第一和第二电子设备(例如,VR头戴式耳机和VR控制器)可以可操作地耦合或配对,以促进它们之间的通信和数据交换。

跟踪设备可以跟踪VR头戴式耳机或用户头部的姿态。姿态可以包括例如用于诸如VR控制器(作为示例)的任何对象(物理或虚拟)的定位(也称为位置)和/或定向。姿态可以包括例如物理世界中的绝对或相对定位或位置和/或对象的定向,或虚拟世界内的定位/位置和/或对象(例如,虚拟对象或渲染的元素)的定向。VR控制器或任何对象可以具有六个自由度(6DoF)以在三维空间中移动。具体地,控制器或对象可以自由地以在三个垂直轴上向前/向后(涌动)、向上/向下(隆起)、向左/向右(摆动)平移而改变定位:其与通过围绕三个垂直轴的旋转在定向上的改变(通常称为俯仰、偏航和滚转)组合。

因此,根据示例实施方式,三维(3D)空间中的对象的位置(或定位)可以由其在三个正交(或垂直)轴(例如,X轴、Y轴、Z轴)上的位置限定。因此,对象的位置(或定位)可以由3D坐标(例如,X、Y和Z坐标)来标识。而且,对象可以围绕三个正交轴旋转。这些旋转可以被称为俯仰、偏航和滚转。俯仰、偏航和滚转旋转可以限定任何对象的方向。因此,例如,对象的定向可以包括或可以指对象指向或定向的方向。

根据示例实施方式,头部姿态信息可以包括指示(或识别)头部姿态的信息,并且可以包括指示用户的头部或者由用户佩戴的虚拟现实头戴式耳机的位置的位置信息以及指示用户的头部或虚拟现实头戴式耳机的定向的定向信息中的至少一个(或者可以替选地包括两者)。例如,可从跟踪用户佩戴的虚拟现实头戴式耳机的姿态的跟踪设备(例如,其可以是VR头戴式耳机的一部分)接收头部姿态信息(例如,包括用户头部或用户佩戴的VR头戴式耳机的位置信息和/或定向信息)。

类似地,对象姿态信息可以包括指示(识别)对象姿态的信息,例如,包括指示对象的位置(或定位)的位置信息和指示对象的定向的定向信息中的至少一个(或者可替选地包括两者)。例如,对象可以包括物理对象,诸如由用户操作的VR控制器。至少在一些情况下,可从跟踪对象的姿态(位置和/或定向)的跟踪设备接收对象姿态信息。

对象还可以包括在HMD或VR头戴式耳机的显示器上渲染并且然后显示在虚拟世界中的虚拟对象(例如,剑或光剑或动物)。例如,虚拟对象(虚拟对象的运动和/或姿态)可以由VR控制器或其他物理对象来控制。例如,VR应用(或其他应用或程序)可使用对象姿态信息(例如,来自VR控制器或其他物理对象)来改变虚拟世界中显示的图像或帧中的一个或更多虚拟对象(或渲染元素)的姿态(例如,位置和/或定向)。

另外,虚拟对象(例如,太空飞船、动物、升空的太空飞船或火箭)的运动和/或姿态可以由VR应用控制。此外,VR应用可能会或可能不会从VR控制器或其他物理对象接收虚拟对象的姿态信息。因此,例如,在从VR控制器或与虚拟对象相关联(例如,控制虚拟对象的运动和/或姿态)的其他物理对象(例如,物理世界中的VR控制器,用于控制虚拟世界中的剑或轻剑的运动或姿态)接收姿态信息的情况下,可以(例如,通过VR应用)使用VR控制器或对象的VR应用和姿态信息来控制虚拟对象的运动和/或姿态。

图形引擎可以用于基于VR头戴式耳机或用户的头部的当前姿态来渲染VR内容的图形以进行显示。渲染可以包括生成图像的过程,例如通过由处理器运行的计算机程序或软件从2D(2维)或3D(3维)模型渲染图像。在某些情况下,当图形引擎在渲染帧的图形时,用户的头部或VR头戴式耳机可能会移动,导致用户头部的位置/定向信息在帧输出到显示器时不准确。可以使用时间扭曲来扭曲(例如,旋转或调整)图像或帧,以校正场景被渲染之后(或同时)发生的头部运动,从而减少感知的延迟。例如,单形扭曲(homograph warp)可以使用图像的单形变换来基于渲染后姿态信息来旋转图像。时间扭曲可能包括同步时间扭曲或异步时间扭曲。

然而,当VR控制器(例如,手持式VR控制器或其他物理或虚拟的移动对象)被添加到VR系统时,时间扭曲过程变得更加困难。特别是,VR头戴式耳机/用户头部和VR控制器通常可以独立移动。因此,包括VR头戴式耳机(或HMD)和VR控制器二者的VR系统在仅基于VR头戴式设备的更新姿态执行VR场景或帧的时间扭曲时可能具有差的VR性能,因为这可能导致为VR控制器提供不正确的位置(例如,诸如在VR头戴式耳机/用户的头部正在向一个方向移动并且VR控制器可能正在向相反方向移动的情况下)。

因此,根据示例实施方式,可以为VR头戴式耳机和VR控制器(或对象)中的每一个提供分立的处理管线,其中,处理管线可以包括例如图形引擎和电子显示稳定(EDS)引擎,用于执行时间扭曲。例如,在第一处理管线中,第一图形引擎可以基于VR头戴式耳机的头部姿态信息来渲染主场景。第一EDS引擎可以基于更新的头部姿态信息来执行VR内容的主场景的时间扭曲。在第二处理管线中,第二图形引擎(其可以与第一图形引擎相同或不同)可以为VR控制器(或其他对象或渲染的元素)渲染图形覆盖。第二EDS引擎可以基于VR控制器/对象的更新的姿态信息为VR控制器(或其他对象)的图形覆盖执行时间扭曲。因此,可以与主场景的时间扭曲分立地执行VR控制器/对象的图形覆盖的时间扭曲。VR控制器/对象的时间扭曲的主场景和时间扭曲的图形覆盖可以被合成,然后输出用于显示。上述意义上的分离可以意味着,例如,第一和第二处理管线可以作为不同的程序(或者通过不同的子程序调用或者由程序作为不同计算来执行)操作(至少部分地)不同的数据,和/或在不同的线程和/或处理器上操作,和/或并行操作,其中,一条管线的计算可以与相应的其他管线同时发生。

以这种方式,VR头戴式耳机和VR控制器/对象的独立运动可以通过基于它们相应的更新的姿态信息分立地时间扭曲主场景和图形覆盖来被适应。VR头戴式耳机和VR控制器/对象的时间扭曲可以在单独的处理管线中执行。

例如,基于每个控制器或对象的分立的更新姿态信息(例如,位置和/或定向),这些技术可以被扩展为分立地或独立地时间扭曲用于多个VR控制器或多个物理或虚拟对象的图形覆盖。在执行与VR控制器或物理对象相关联的图形覆盖的时间扭曲的情况下,可以使用跟踪设备(例如,IMU、加速度计、相机或其他跟踪设备)来提供要用于时间扭曲对应图形覆盖的当前和然后的更新的姿态信息。在为场景或帧中的虚拟对象或渲染元素执行图形覆盖的时间扭曲的情况下,VR应用可以将更新的姿态信息提供给EDS引擎,以允许对这样的虚拟对象或渲染元素执行时间扭曲。

图1是根据示例实施方式的包括头戴式显示器/虚拟现实头戴式耳机和控制器的虚拟现实(VR)系统的示例实施方式。在图1所示的示例实施方式中,佩戴VR头戴式耳机100(也称为HMD)的用户正握着便携式控制器102(其在本文中也可称为VR控制器)。控制器102可以是例如可以与VR头戴式耳机100可操作地耦合或成对并与VR头戴式耳机100通信的游戏控制器、智能手机、操纵杆或另一便携式电子设备。在操作期间(配对之后),控制器102可以经由例如有线连接或诸如例如WiFi或蓝牙连接的无线连接或可用于两个设备的其他通信模式来与VR头戴式耳机100通信以交换信息并促进将在控制器102处的用户输入转换为在由VR头戴式耳机100生成的沉浸式虚拟环境中的对应交互。

图2A和2B是示例性VR头戴式耳机的透视图,诸如由图1中的用户佩戴的VR头戴式耳机(或HMD)100。图2C图示了示例控制器,诸如例如图1中所示的控制器102。图3是根据示例实施方式的包括与第二电子设备302通信的第一电子设备300的虚拟现实(VR)系统的框图。第一电子设备300可以是例如如图1、2A和2B所示的VR头戴式耳机(或HMD),生成沉浸式虚拟环境,并且第二电子设备302可以是例如如图1和2A中所示的控制器。如上所述,第一电子设备300和第二电子设备302可以配对以建立设备之间的通信并且促进用户与沉浸式虚拟环境的交互。

控制器102可以包括其中容纳设备102的内部组件的壳体103以及位于壳体103外部的用户可访问的用户界面104。用户界面104可以包括多个不同类型的操纵设备(在图2C中未示出),其包括例如被配置为接收用户触摸输入的触敏表面、按钮、旋钮、操纵杆、切换开关、滑块和其他这样的操纵设备。在一些实施方式中,控制器102还可以包括光源108,光源108被配置为例如响应于在用户界面104处接收到的用户输入而通过壳体103中的端口选择性地发射光,例如光束或射线。

VR头戴式耳机100可以包括耦合到框架120的壳体110,其中,包括例如安装在头戴式耳机中的扬声器的音频输出设备130也耦合到框架120。在图2B中,壳体110的前部110a旋转离开壳体110的基部110b,使得容纳在壳体110中的一些部件可见。显示器140可以安装在壳体110的前部110a的面向内部的一侧。当前部110a处于靠着壳体110的基部部分110b的关闭定位时,透镜150可以安装在壳体110中,在用户的眼睛和显示器140之间。在一些实施方式中,VR头戴式耳机100可以包括感测系统160,感测系统160包括各种传感器,例如音频传感器、图像/光传感器、位置传感器/跟踪设备(例如、包括陀螺仪和加速计的惯性测量单元)和相机等。VR头戴式耳机100还可以包括控制系统170,控制系统170包括处理器190和各种控制系统设备以便于VR头戴式耳机100的操作。

在一些实现中,VR头戴式耳机100可以包括相机180以捕捉静止图像和运动图像。由相机180捕获的图像可用于帮助跟踪真实世界中或相对于虚拟环境的物理环境中的用户和/或控制器102的物理定位(例如定位/位置和/或定向),和/或可以以通过模式(pass through mode)在显示器140上向用户显示,允许用户临时离开虚拟环境并返回到物理环境,而不移除VR头戴式耳机100或以其他方式改变VR头戴式耳机100的配置以将壳体110移出用户的视线。

在一些实施方式中,VR头戴式耳机100可以包括注视跟踪设备165以检测和跟踪用户的眼睛注视。注视跟踪设备165可以包括例如图像传感器165A或多个图像传感器165A,以捕捉用户眼睛的图像,例如用户眼睛的特定部分,例如瞳孔,以检测并跟踪用户注视的方向和移动。在一些实施方式中,VR头戴式耳机100可以被配置使得检测到的注视被处理为用户输入以被转换成沉浸式虚拟体验中的对应交互。

第一电子设备300可以包括感测系统360和控制系统370,感测系统360和控制系统370可以分别类似于在图2A和2B中所示的感测系统160和控制系统170。感测系统360可以包括一个或多个不同类型的传感器,包括例如光传感器、音频传感器、图像传感器、距离/接近度传感器、位置传感器(例如,包括陀螺仪和加速度计的惯性测量单元)、相机和/或其它传感器和/或传感器的不同组合,所述传感器包括例如定位成检测和跟踪用户的眼睛注视的图像传感器,诸如图2B中所示的注视跟踪设备165。第一电子设备300可以包括例如跟踪设备(用于确定或跟踪物理对象或VR控制器的姿态信息),其可以包括例如惯性测量单元(IMU)、加速度计、光学检测器或相机或检测位置或方向的其他传感器/设备。因此,例如,在VR控制器或操作或移动VR控制器的用户可以至少部分地控制物理对象或VR控制器的姿态(例如,位置和/或定向)的情况下,跟踪设备可以提供姿态信息。而且,第一电子设备300还可以接收虚拟对象或渲染元素的姿态信息(例如,位置和/或定向),例如其中,这样的虚拟对象的移动和/或姿态(包括位置和/或定向)例如可以至少部分地在VR应用的控制下。控制系统370可以包括例如电源/暂停控制设备、音频和视频控制设备、光学控制设备、转换控制设备和/或其它这样的设备和/或设备的不同组合。取决于特定的实施方式,感测系统360和/或控制系统370可以包括更多或更少的设备。包括在感测系统360和/或控制系统370中的元件可以在例如除了图2A和2B中所示的VR头戴式耳机100之外的HMD/VR头戴式耳机内具有不同的物理布置(例如,不同的物理位置)。第一电子设备300还可以包括与感测系统360和控制系统370通信的处理器390、存储器380以及提供第一电子设备300与诸如第二电子设备302的另一外部设备之间的通信的通信模块350。

第二电子设备302可以包括提供第二电子设备302与另一外部设备(例如第一电子设备300)之间的通信的通信模块306。除了提供在第一电子设备300和第二电子设备302之间的数据交换,通信模块306也可以被配置为如上所述发射射线或射束。第二电子设备302可以包括:感测系统304,感测系统304包括图像传感器和音频传感器(例如包括在相机和麦克风中);跟踪设备(用于确定或跟踪姿态信息),其可以包括例如惯性测量单元(IMU)、加速度计、光学检测器或相机或用于检测位置或定向的其他传感器/设备;诸如包括在控制器或智能手机的触敏表面中的触摸传感器;以及,其他这种传感器和/或传感器的不同组合。处理器309可以与第二电子设备302的感测系统304和控制单元305通信,控制单元305可以访问存储器308并且控制第二电子设备302的整体操作。

VR头戴式耳机可以包括例如:网络接口,用于经由网络接收VR内容和/或与VR控制器或其他对象进行通信;处理器;存储器;显示器;一个或多个图形引擎,用于渲染场景或图形覆盖;可以包括IMU、一个或多个加速计、传感器、检测器、相机或可以测量和/或指示用户头部或VR头戴式耳机的姿态(例如,位置和/或定向)的其他设备。VR系统的VR头戴式耳机还可以包括一个或多个电子显示稳定(EDS)引擎,用于基于头戴式耳机、用户的头部、VR控制器或其他对象的姿态信息(例如,位置和/或定向)对场景、图像或图形覆盖执行时间扭曲。图形引擎可以基于从VR应用接收的信息并且基于用户的头部或VR头戴式耳机的当前姿态(例如,位置和/或定向)来渲染场景(或图像)。

时间扭曲是在将渲染图像发送到显示器之前扭曲(例如,调整或旋转)渲染图像,以便校正在场景被渲染之后发生的运动(例如,头部运动)并由此减少感知延迟。通过对图像或帧进行时间扭曲(例如,旋转或调整)以校正在场景被渲染之后(或同时)发生的头部运动,可以减少感知的延迟。换句话说,时间扭曲例如实现了例如对象的现实世界运动或用户头部的运动以及在HMD或VR头戴式耳机中渲染并所示的显示器之间更及时和更密切的对应。例如,单形扭曲可以使用图像的单形变换来基于渲染后姿态信息来旋转图像。时间扭曲可能包括同步时间扭曲或异步时间扭曲。时间扭曲的基本或示例实施方式可以包括仅定向时间扭曲,其中,仅校正头部姿态(或对象姿态或其他姿态)中的旋转变化。例如,仅定向时间扭曲可以包括作为2D(二维)扭曲的优点,其在计算上更便宜。对于相当复杂的场景,这可以通过比渲染全新帧更少的计算来完成。在同步时间扭曲中,计算可以由渲染线程执行。异步时间扭曲指的是在另一个线程上与渲染并行(即,异步)进行这一点。例如,ATW(异步时间扭曲)线程可以从渲染线程完成的最新帧中生成新的时间扭曲帧。一种或多种这些技术可用于时间扭曲。ATW的一个优点是渲染线程不会因时间扭曲中涉及的计算而延迟,而且可以利用底层软件和/或硬件平台的多处理能力。

在一些情况下,当图形引擎渲染帧的图形(或场景)时,用户的头部或VR头戴式耳机可能移动,导致用户头部的姿态(例如,位置/定向)信息在帧被输出到显示器之前不准确。因此,根据示例实施方式,可以使用EDS引擎来对图像或帧执行时间扭曲,以基于更新的头部姿态信息来校正在场景被渲染之后(或者在场景正被渲染的同时)发生的头部运动,并且由此基于更准确/更新的头部姿态信息来旋转或调整所渲染的图像,并且减少感知的延迟。

在示例实施方式中,VR系统还可以包括一个或多个VR控制器或其姿态(例如位置和/或定向)可以被跟踪的其他物理对象,然后控制器和/或虚拟对象和/或用户的手可以显示在VR内容的渲染图像内。VR控制器可以包括跟踪设备(其可以包括IMU或其他传感器设备),用于例如测量并随后经由无线通信将VR控制器或对象的姿态(例如,位置和/或定向)发送给在VR头戴式耳机内的处理器。此外,可以基于VR控制器或对象的姿态(例如,位置/定向)调整或更新VR内容的显示的场景/图像/帧。根据说明性示例实施方式,VR控制器可以被VR系统的用户的一只或两只手握住(或操作),例如,左控制器(例如,用于左手)和右控制器(例如,用于右手)。替选地,可以仅提供单个控制器。其他物理对象(例如,足球、冰球、篮球、橄榄球或其他对象)的姿态(例如,位置和/或定向)也可以由对象内的跟踪设备(例如IMU)跟踪,并且这种姿态可以通过无线通信传输给用户的VR头戴式耳机。此外,虚拟对象或渲染元素的姿态可以由生成或接收用于显示的VR内容的VR应用来跟踪。

因此,对象可以包括物理对象(诸如VR控制器、球或其他物理对象)或虚拟对象。根据示例实施方式,物理对象的姿态(位置和/或定向)可以由对象内(或与VR相关联)的跟踪设备(例如,VR控制器内或物理足球内)提供或报告。虚拟对象可以是存在于VR世界或VR环境中并且向用户显示的对象,并且可能不一定存在于现实世界或真实环境中。因为例如虚拟对象的移动和姿态可以例如在VR应用的控制下,所以VR应用可以知道并且能够在任何时刻提供虚拟对象的姿态。因此,例如,VR应用可以提供或报告虚拟对象的姿态(例如,位置和/或定向)。例如,在VR应用的控制下,正在起飞的火箭(作为在虚拟世界或VR内容中呈现但不一定在现实世界中的虚拟对象)可以(在虚拟世界中)移动。因此,VR应用可以针对这个火箭和/或其他虚拟对象在不同时刻报告姿态信息。

根据各种示例,VR控制器可以由VR系统的用户使用或操作以致动、移动、操作或以其他方式控制可以作为VR内容的部分在VR头戴式耳机的显示设备上显示的一个或多个对象。作为一些说明性示例,VR控制器可以控制(虚拟)剑、虚拟光剑、虚拟棒球棒(例如,在虚拟击球练习中用于击打虚拟棒球/垒球)、虚拟高尔夫球杆(例如,用于击打高尔夫球/虚拟高尔夫球)、虚拟网球拍(例如,击打虚拟网球)等。例如,在虚拟战斗期间,VR系统的用户可以在不同方向上摆动VR控制器以移动或摆动虚拟剑,其中,移动的剑和用户的手的图像例如可出现于在VR头戴式耳机的显示设备上渲染和显示给用户的一个或多个图像/场景/帧内。或者,在另一个例子中,用户可以摆动VR控制器来摆动虚拟高尔夫球杆,其中,高尔夫球杆和用户的手的图像可以出现在一个或多个图像/场景/帧中,该图像/场景/帧在VR头戴式耳机的显示设备上被渲染并显示给用户。因此,根据示例实施方式,用户的头部(或VR头戴式耳机)和一个或多个VR控制器(或要跟踪的其他对象)可以独立移动。

例如在VR头戴式耳机内(或作为其一部分)或在VR控制器内的图形引擎可用于渲染VR控制器(或与VR控制器相关联)的图像或帧的一部分,其中,用于VR控制器的此类图像部分可以是例如可以在VR头戴式耳机的显示设备上显示的剑、高尔夫球杆、用户的手等的图形图像。在VR头戴式耳机的图形引擎正在渲染VR控制器的一部分的图形的同时(例如,在图形引擎在渲染剑或网球拍并且要显示的用户的手的同时),用户的手和VR控制器可能移动,导致VR控制器的姿态(例如,位置/定向)信息在帧输出到显示器之前不准确,这可导致用于VR控制器(或与VR控制器关联或由其控制)的图像的一部分(例如,控制器或剑和用户的手)在框架/场景上错误的位置显示,从而导致延迟和较差的用户VR体验。

不幸的是,由于用户的头部/VR头戴式耳机和每个VR控制器(或可以在VR头戴式耳机上被跟踪和/或显示的其他对象)的独立运动,例如由于独立运动,仅基于用户头部/VR头戴式耳机的更新姿态对图像/场景执行时间扭曲通常不会正确地调整VR控制器或用户手部的更新姿态的这种场景/图像/帧。因此,如果用户的头部向左移动,并且VR控制器(或用户的手)向右移动,则基于VR头戴式耳机/用户头部的更新后姿态来对全部或部分图像/场景/帧执行时间扭曲由于VR头戴式耳机/用户头部和VR控制器朝不同方向移动,所以将无法正确调整或校正图形覆盖的位置。

因此,根据示例实施方式,可以提供各种技术以允许基于VR控制器的移动或姿态在显示的图像或场景上准确地反映/显示VR控制器的姿态,而不依赖于或用户的头部或VR头戴式耳机的运动或姿态。

例如,可以基于更新的头部姿态信息针对虚拟现实内容的主场景执行第一处理管线内的第一视频渲染和时间扭曲。并且,可以基于VR控制器的更新的控制器姿态(例如,位置和/或定向)信息来在第二处理管线内对虚拟现实控制器(或其他对象)的图形覆盖进行第二视频渲染和时间扭曲。因此,通过基于VR控制器姿态信息基于头部姿态信息和VR控制器的图形覆盖或与VR控制器相关联的图形覆盖分立地和/或独立地执行针对主场景的时间扭曲,这可以允许更准确地显示要显示给用户的主场景和VR控制器(或VR控制器的图形覆盖)。

图4是图示出根据示例实施方式的虚拟现实系统的框图。虚拟现实(VR)应用412可以生成和/或接收(经由例如网络)虚拟现实内容。VR头戴式耳机422可以戴在用户的头上,因此,用户头部的姿态可以随着VR头戴式耳机422的姿态而移动。VR头戴式耳机422可以包括:处理器;存储器;网络/无线接口(未示出),用于例如通过诸如无线局域网(WLAN)的网络进行通信;以及用于显示图像/场景/帧的显示设备430。

VR头戴式耳机422还可以包括跟踪设备423,例如用于测量和/或确定用户头部的姿态和/或VR头戴式耳机422的姿态。跟踪设备423可以包括例如惯性测量单元(IMU)、加速度计、光学检测器、相机或用于检测或感测用户头部或VR头戴式耳机122的姿态(例如,位置和/或定向)的其他设备。VR头戴式耳机422可包括:与VR头戴式耳机422相关联的一个或多个图形引擎,诸如图形引擎414,用于基于用户头部的当前头部姿态信息或基于虚拟现实头戴式耳机422的姿态信息渲染虚拟现实内容的主场景;以及,图形引擎416A,用于基于VR控制器424A的当前姿态信息(例如,位置和/或定向)渲染VR控制器424A的图形覆盖(例如渲染、描绘或显示VR控制器424A、用户的手或由VR控制器424A控制的诸如拍子、剑、高尔夫球杆等的对象)。图形引擎414可以从VR头戴器422的跟踪设备423接收头部姿态信息。图形引擎416A可以从VR控制器424A的跟踪设备425A接收用于控制器424A的姿态信息。

如所指出的,在一些情况下,在图形引擎正在渲染帧的图形(或场景)的同时,用户的头部/VR头戴式耳机422或VR控制器424A可能会移动,导致用户的头部和/或VR控制器424A的姿态(例如,位置/定向)信息在帧被输出到显示器之前不准确。用户的头部/VR头戴式耳机422和VR控制器424A的运动/移动可以是独立的。

因此,根据示例实施方式,为了补偿用户的头部/VR头戴式耳机422和VR控制器424A的独立运动,图4中示出的VR系统可以包括用于1)VR头戴式耳机422的主场景和2)用于控制器424A的图形覆盖的分立的处理管线。例如,用于VR头戴式耳机422的主场景的第一处理管线可以包括图形引擎414和EDS引擎418,并且第二处理管线可以包括图形引擎416A和EDS引擎420A,例如用于由于用户的头部/VR头戴式耳机422和VR控制器424A的独立运动,分别对于VR头戴式耳机422的主场景的和VR控制器424A的图形覆盖确定和应用时间扭曲。

因此,根据示例实施方式,EDS引擎418可以基于从VR头戴式耳机422的跟踪设备123接收到的更新的头部姿态信息431来对从图形引擎414接收的主场景执行时间扭曲。而且,根据示例实施方式,在分立的处理管线中,EDS引擎120A可以基于从VR控制器424A的跟踪设备425A接收到的用于控制器424A的更新的姿态信息433A,对从图形引擎416A接收的控制器424A的图形覆盖执行时间扭曲。以这种方式,根据示例实施方式,可以基于VR控制器424A相应(分立)的更新的姿态信息将分立的和/或独立的时间扭曲调整应用于主场景和VR控制器424A的图形覆盖。在另一个示例实施方式中,VR控制器424A或诸如物理对象或虚拟对象的其他对象的VR应用对象姿态信息435(例如其中,VR应用412可以至少部分地指示其姿态或位置或定向),也可以由EDS 420A用于对图形图像执行时间扭曲。因此,例如,由VR应用412提供的对象姿态信息435可包括例如可被渲染并显示在HMD或VR头戴式耳机上的虚拟对象的姿态信息(例如,位置信息和/或定向信息)。

而且,根据示例实施方式,可以基于来自VR头戴式耳机422的更新的头部姿态信息431和用于控制器424A的更新的姿态信息433A来执行对用于控制器424A的图形覆盖的时间扭曲。这是因为,例如,由VR头戴式耳机422的用户感知或看到的VR控制器424A的所感知的姿态(位置和定向)可以是用于VR头戴式耳机和VR控制器424A二者的运动(或姿态变化)的组合(或基于这两者)。因此,VR控制器424A(或其他物理对象)的时间扭曲可以基于VR头戴式耳机的更新的姿态信息(更新的头部姿态)和VR控制器或对象的更新姿态信息。可以针对虚拟对象执行类似的过程,其中,可以基于虚拟对象的更新的姿态信息(例如,从产生和控制这样的虚拟对象的VR应用接收的虚拟对象的姿态信息)和VR头戴式耳机的更新姿态信息二者来执行对于虚拟对象的时间扭曲。

VR头戴式耳机422的合成块426可以基于从EDS引擎418接收到的时间扭曲的主场景/图像以及从EDS引擎420A接收的用于控制器424A的时间扭曲对象或时间扭曲图形覆盖来生成合成图像。基于从其他EDS引擎接收的用于一个或多个物理对象或虚拟对象的附加对象或时间扭曲的图形覆盖,复合块426还可以生成复合图像。可以对图形覆盖(或渲染和显示的虚拟对象)进行字母屏蔽以移除除了要覆盖在主场景上的控制器(或对象)的覆盖部分之外的所有图像(例如描绘对象的图像的部分,诸如由VR控制器控制用于显示的用户的手、VR控制器或对象(剑、拍子、高尔夫球杆......))。例如,不是仅移除要显示或覆盖的元素(或对象)的期望像素,而是可以更简单地复制围绕(或包括)元素的一个或多个正方形或矩形块以生成控制器或对象的图形覆盖,并省略图形的剩余部分。一个或多个图形覆盖可以由组合块426在主场景上合成或覆盖以生成合成图像。然后将合成图像提供给扫描输出块428,其中,合成图像(或帧)然后被输出或扫描输出到VR头戴式耳机422的显示设备430以显示给用户。

虽然在上面的一些说明性示例中仅描述了一个VR控制器(VR控制器424A),但VR系统可包括多个VR控制器(和/或可跟踪的多个物理对象),并且除了用于主场景/VR头戴式耳机422的处理管线之外,可以为每个VR控制器(和/或针对每个物理对象或虚拟对象)提供分立的处理管线(至少包括EDS引擎)。例如,作为第二控制器,VR控制器424B可以被提供,并且可以包括:跟踪设备425B,用于确定VR控制器424B的当前和更新的姿态;图形引擎416B,用于基于VR控制器424B的当前姿态来渲染VR控制器424B的图形覆盖;以及,EDS引擎420B,用于例如基于从跟踪设备425B接收的VR控制器424B的更新的姿态信息来对VR控制器424B的图形覆盖执行时间扭曲。

已经关于VR控制器(例如,424A和/或424B)描述了上面的许多说明性示例。然而,本文描述的技术可以应用于任何移动(虚拟或物理)对象(例如,棒球、英式足球、人、移动车辆/汽车或其他对象、事物或人)。例如,球(或其它物理对象)可以包括(例如,在球内部):跟踪设备,用于记录球的姿态(例如,位置和/或定向);以及,无线收发器,用于向VR头戴式耳机422定期地发送球的姿态信息。与物理对象相关联或处于该物理对象的控制下的虚拟对象(将被显示在HMD或VR头戴式耳机上)的姿态(位置和/或定向)可以与相关联的物理对象的姿态相同或基于它。例如,在HMD或VR头戴式耳机的显示器上作为虚拟对象显示的光剑(示例性虚拟对象)的位置和定向可以与可由用户用来控制所显示的剑或光剑的运动或姿态的VR控制器的姿态相同(或可以基于它)。类似地,例如可以通过VR应用412将虚拟对象(或渲染元素)的姿态(位置和/或定向)信息提供给EDS引擎,用于对虚拟对象或用于这样的虚拟对象/渲染元素的图形覆盖执行时间扭曲。例如参见图4的VR应用位置(或姿态)信息435。可以为VR系统内或VR头戴式耳机422内的球(示例对象)提供分立的处理管线,例如,包括下述部分中的一个或多个:图形引擎,用于基于球的预先渲染/当前姿态来渲染球的图形覆盖;以及,EDS引擎,用于基于球的更新姿态来执行球的图形覆盖的时间扭曲。球的时间扭曲的图形覆盖可以覆盖在主场景(并且可能还有一个或多个其他覆盖)上或与之合成以生成用于显示的合成图像。类似地,根据示例实施方式,可以为虚拟对象(或者针对每个虚拟对象)提供分立的处理管线。例如,用于虚拟对象的处理管线可以包括例如:图形引擎,用于基于虚拟对象的预渲染/当前姿态来渲染虚拟对象的图形覆盖;以及,EDS引擎,用于基于虚拟对象的更新姿态(例如,由VR应用412提供)对虚拟对象执行图形覆盖的时间扭曲。虚拟对象的时间扭曲的图形覆盖可以覆盖在主场景上(并且可能还有一个或多个其他覆盖)或与其合成以生成用于显示的合成图像。

在说明性示例中,VR环境或VR内容可以由用于冒险游戏的HMD或VR头戴式耳机显示,其中,用户可以使用剑来对抗龙。显示的场景可以包括:主场景,显示静态(不移动)的具有树的场;由VR控制器424A控制(或者在VR控制器424A的控制下移动)的剑(其中,剑是具有由VR控制器424A控制的姿态(位置和/或定向)的对象,例如,剑的姿态由VR控制器424A的姿态控制或可以与其相同);以及,龙(具有由VR应用412控制的姿态的虚拟对象的一个说明性示例)。虚拟对象是可能或不可能存在于物理世界中的渲染元素或对象(在HMD或VR头戴式耳机上渲染和显示)。例如,可以基于更新的头部姿态信息(例如,VR头戴式耳机的更新的姿态),针对场景执行(例如,在第一处理管线中)第一时间扭曲;可以基于VR控制器424A的更新的姿态信息来(例如,在第二处理管线中)执行(例如,由VR控制器控制的)对象的第二时间扭曲,例如剑的图形覆盖(因为,在这个例子中,在虚拟世界中显示的剑由VR控制器424A在物理世界中的移动来控制);并且,可以基于龙的(例如,从VR应用412接收的)更新的姿态信息(例如,在第三处理管线中)执行龙的第三时间扭曲或龙的图形覆盖(其中,龙的移动或姿态由VR应用412控制)。用于剑(在VR控制器424A的控制下的第一示例虚拟对象)和龙(在VR应用412的控制下的第二示例虚拟对象)的(例如,独立或分立)时间扭曲的图形覆盖可以被覆盖在场景上(或者可能还有其他虚拟对象的一个或多个其他覆盖)或与其合成以生成用于显示的合成图像。

在替选示例实施方式中,可以基于VR控制器424A的更新的姿态信息和更新的头部姿态信息来执行剑的图形覆盖的第二时间扭曲。类似地,在替选实施方式中,可以基于更新后的龙的姿态信息(从VR应用412接收)和更新的头部姿态信息来执行龙的图形覆盖的第三时间扭曲。因此,根据示例实施方式,对象(例如,这个说明性示例为剑或龙)的感知运动或感知姿态(例如,佩戴VR头戴式耳机的用户所看到或感知到的)可以基于用户/用户头部的姿态(例如,头部姿态)的运动或改变以及虚拟对象本身的姿态的运动或变化。为了反映这种情况,如用户所看到或查看的,根据示例实施方式,可以基于更新的头部姿态和更新的对象姿态二者来确定或执行虚拟对象的时间扭曲。

示例1:图5是示出根据示例实施方式的虚拟现实(VR)系统的操作的流程图。操作510包括基于在虚拟现实内容的场景的渲染期间或之后接收的头部姿态信息来执行所述场景的第一时间扭曲,以获得时间扭曲场景。操作520包括至少基于在对象的渲染期间或之后接收到的对象姿态信息来执行对象的第二时间扭曲以获得时间扭曲对象。并且,操作530包括基于时间扭曲场景和时间扭曲对象在显示设备上显示合成图像。

示例2:根据示例1所述的方法,其中,所述头部姿态信息包括以下中的至少一个:指示头部姿态的信息,所述头部姿态信息包括指示用户的头部的位置或用户佩戴的虚拟现实头戴式耳机的位置的位置信息和指示所述用户的头部的定向或所述虚拟现实头戴式耳机的定向的定向信息。

示例3:根据示例1-2中的任一项所述的方法,其中,所述头部姿态信息包括从跟踪用户佩戴的虚拟现实头戴式耳机的姿态的跟踪设备接收到的头部姿态信息。

示例4:根据示例1-3中的任一项所述的方法,其中,所述对象姿态信息包括指示对象姿态的信息,所述对象姿态信息包括以下中的至少一个:指示所述对象的位置的位置信息和指示所述对象的定向的定向信息。

示例5:根据示例1-4中的任一项所述的方法,其中,所述对象包括要在所述显示设备上显示的虚拟对象;以及其中,所述对象姿态信息包括以下中的至少一个:所述虚拟对象的位置信息和定向信息。

示例6:根据示例1-5中的任一项所述的方法,其中,所述对象包括要在所述显示设备上显示的虚拟对象;以及其中,所述对象姿态信息包括以下中的至少一个:从虚拟现实应用接收的虚拟对象的位置信息和定向信息中的至少一个;以及,从跟踪控制器的姿态或跟踪控制虚拟对象的位置和定向的其他物理对象的姿态的跟踪设备接收的虚拟对象的位置信息和定向信息中的至少一个。

示例7:根据示例1-6中的任一项所述的方法,还包括:接收第一头部姿态信息;基于所述第一头部姿态信息执行场景的渲染;以及在场景的渲染期间或之后接收第二头部姿态信息;其中,执行所述场景的所述第一时间扭曲包括基于所述第二头部姿态信息至少旋转所述场景以获得所述时间扭曲场景。

示例8:根据示例1-7中的任一项所述的方法,还包括:接收第一对象姿态信息;基于所述第一对象姿态信息执行所述对象的渲染;以及,在对象的渲染期间或之后接收第二对象姿态信息;其中,执行所述对象的所述第二时间扭曲包括基于所述第二对象姿态信息至少旋转所述对象以获得所述时间扭曲对象。

示例9:根据示例1至8中的任一项所述的方法,其中,所述执行第二时间扭曲包括基于在对象的渲染期间或之后接收到的所述对象姿态信息来执行所述对象的与所述第一时间扭曲相分立的第二时间扭曲。

示例10:根据示例1-9中的任一示例所述的方法,其中,所述执行第一时间扭曲包括基于在主场景的渲染期间或之后接收的头部姿态信息执行虚拟现实内容的场景的在第一处理管线中的第一时间扭曲;以及其中,所述执行第二时间扭曲包括基于在所述对象的渲染期间或之后接收的所述对象姿态信息,执行对象的在第二处理管线中与所述第一时间扭曲分立的第二时间扭曲。

示例11:根据示例1所述的方法,其中,所述执行第二时间扭曲包括:基于所述头部姿态信息和所述对象姿态信息二者来执行对象的第二时间扭曲。

示例12:根据示例1-11中的任一项所述的方法,其中,所述对象包括虚拟对象,所述虚拟对象具有基于虚拟现实控制器的位置和定向来控制的位置和定向,其中,所述执行第二时间扭曲包括:在虚拟对象的渲染期间或之后,从虚拟现实控制器接收对象姿态信息,所述对象姿态信息包括用于虚拟现实控制器的姿态信息;以及至少基于虚拟现实控制器的姿态信息执行由虚拟现实控制器控制的虚拟对象的第二时间扭曲,以获得时间扭曲的虚拟对象。

示例13:根据示例1-12中的任一示例所述的方法,其中,所述对象包括由虚拟现实应用控制的虚拟对象,其中,所述执行第二时间扭曲包括:在虚拟对象的渲染期间或之后从虚拟现实应用接收虚拟对象的对象姿态信息;以及,至少基于虚拟对象的姿态信息执行由虚拟现实应用控制的虚拟对象的第二时间扭曲,以获得时间扭曲的虚拟对象。

示例14:一种设备包括用于执行根据示例1-13中任一项所述的方法的部件。

示例15:一种包括计算机程序产品的设备,所述计算机程序产品包括非暂时性计算机可读存储介质并且存储可执行代码,所述可执行代码在由至少一个数据处理设备执行时被配置为使所述至少一个数据处理设备执行根据示例1-13的任一项的方法。

示例16:一种设备包括:至少一个处理器;存储指令的存储器,,所述指令在由所述至少一个处理器执行时使所述设备:基于在虚拟现实内容的场景的渲染期间或之后接收到的头部姿态信息来执行所述场景的第一时间扭曲,以获得时间扭曲场景;至少基于在对象的渲染期间或之后接收到的对象姿态信息来执行对象的第二时间扭曲以获得时间扭曲对象;以及,基于时间扭曲场景和时间扭曲对象在显示设备上显示合成图像。

示例17:根据权利要求16所述的设备,其中,所述头部姿态信息包括指示头部姿态的信息,所述头部姿态信息包括以下中的至少一个:指示用户的头部的位置或用户佩戴的虚拟现实头戴式耳机的位置的位置信息和指示所述用户的头部的定或虚拟现实头戴式耳机的定向的定向信息。

示例18:根据示例16-17中的任一示例所述的设备,其中,所述头部姿态信息包括从跟踪用户佩戴的虚拟现实头戴式耳机的姿态的跟踪设备接收到的头部姿态信息。

示例19:根据示例16-18中的任一项所述的设备,其中,所述对象姿态信息包括指示对象姿态的信息,所述对象姿态信息包括以下中的至少一个:指示所述对象的位置的位置信息和指示所述对象的定向的定向信息。

示例20:根据示例16-19中的任一项所述的设备,其中,所述对象包括要在所述显示设备上显示的虚拟对象;以及其中,所述对象姿态信息包括以下中的至少一个:所述虚拟对象的位置信息和定向信息。

示例21:根据示例16-20中的任一项所述的设备,其中,所述对象包括要在所述显示设备上显示的虚拟对象;以及其中,所述对象姿态信息包括以下中的至少一个:从虚拟现实应用接收的虚拟对象的位置信息和定向信息中的至少一个;以及,从跟踪控制器的姿态或跟踪控制虚拟对象的位置和定向的其他物理对象的姿态的跟踪设备接收的虚拟对象的位置信息和定向信息中的至少一个。

示例22:根据示例16-21中的任一项所述的设备,还使所述设备:接收第一头部姿态信息;基于第一头部姿态信息执行场景的渲染;以及,在场景的渲染期间或之后接收第二头部姿态信息;其中,使所述设备执行所述场景的所述第一时间扭曲包括使所述设备基于所述第二头部姿态信息至少旋转所述场景以获得所述时间扭曲场景。

示例23:根据示例16-22中的任一示例所述的设备,还使所述设备:接收第一对象姿态信息;基于第一对象姿态信息执行对象的渲染;以及,在对象的渲染期间或之后接收第二对象姿态信息;其中,使所述设备执行所述对象的所述第二时间扭曲包括使所述设备基于所述第二对象姿态信息至少旋转所述对象以获得所述时间扭曲的对象。

示例24:根据示例16-23中的任一示例所述的设备,其中,使所述设备执行第二时间扭曲包括使所述设备基于在对象的渲染期间或之后接收到的所述对象姿态信息来执行所述对象的与所述第一时间扭曲相分立的第二时间扭曲。

示例25:根据示例16-24中的任一示例所述的设备,其中,使所述设备执行第一时间扭曲包括使所述设备基于在所述主场景的渲染期间或之后接收到的所述头部姿态信息来执行虚拟现实内容的场景的在第一处理管线中的第一时间扭曲;以及其中,使所述设备执行第二时间扭曲包括使得所述设备基于在所述对象的渲染期间或之后接收到的所述对象姿态信息来执行对象的在第二处理管线中与所述第一时间扭曲相分立的第二时间扭曲。

示例26:根据示例16-25中的任一示例所述的设备,其中,其中,使所述设备执行第二时间扭曲包括使所述设备:基于头部姿态信息和对象姿态信息二者来执行对象的第二时间扭曲。

示例27:根据示例16-26中的任一项所述的设备,其中,所述对象包括虚拟对象,所述虚拟对象具有基于虚拟现实控制器的位置和定向来控制的位置和定向,其中,使所述设备执行第二时间扭曲包括使所述设备:在虚拟对象的渲染期间或之后从虚拟现实控制器接收对象姿态信息,所述对象姿态信息包括所述虚拟现实控制器的姿态信息;以及,至少基于虚拟现实控制器的姿态信息执行由虚拟现实控制器控制的虚拟对象的第二时间扭曲,以获得时间扭曲的虚拟对象。

示例28:根据示例16-27中的任一项所述的设备,其中,所述对象包括由虚拟现实应用控制的虚拟对象,其中,使所述设备执行第二时间扭曲包括使所述设备:在所述虚拟对象的渲染期间或之后从所述虚拟现实应用接收所述虚拟对象的对象姿态信息;以及,至少基于虚拟对象的姿态信息执行由虚拟现实应用控制的虚拟对象的第二时间扭曲,以获得时间扭曲的虚拟对象。

例子29:图6是示出根据另一示例实施方式的VR系统的操作的流程图。该流程图可以描述用于将虚拟现实内容渲染给显示设备的方法。操作610包括在第一处理管线内的第一电子显示稳定引擎处接收基于虚拟现实头戴式耳机的用户的初始头部姿态信息和更新的头部姿态信息的虚拟现实内容的主场景。操作620包括由第一电子显示稳定引擎基于更新的头部姿态信息执行主场景的时间扭曲。操作630包括在第二处理管线内的第二电子显示稳定引擎处接收基于初始控制器/对象姿态信息和更新的头部姿态信息的虚拟现实控制器/对象的图形覆盖。操作640包括由第二电子显示稳定引擎基于更新的控制器/对象姿态信息执行图形覆盖的时间扭曲。操作650包括基于时间扭曲的主场景和虚拟现实控制器/对象的时间扭曲的图形覆盖生成合成图像。并且,操作660包括将合成图像输出到显示设备。

实例30:图7是图示根据另一示例实施方式的VR系统的操作的流程图。该流程图可以描述用于将虚拟现实内容渲染给显示设备的方法。操作710包括在第一处理管线中基于虚拟现实头戴式耳机的用户的头部姿态信息渲染虚拟现实内容的主场景。操作720包括在第一处理管线内的第一电子显示稳定引擎处,在主场景被渲染期间或之后,接收更新的头部姿势信息。操作730包括由第一电子显示稳定引擎基于更新的头部姿态信息执行主场景的时间扭曲。操作740包括在第二处理管线中基于控制器/对象姿态信息渲染虚拟现实控制器/对象的图形覆盖。操作750包括;在所述第二处理管线内的第二电子显示稳定引擎处,在所述覆盖的渲染期间或之后,接收更新的控制器/对象姿态信息。操作760包括由第二电子显示稳定引擎基于更新的控制器/对象姿态信息来执行图形覆盖的时间扭曲。操作770包括基于时间扭曲的主场景和虚拟现实控制器/对象的时间扭曲的图形覆盖生成合成图像。并且,操作780包括将合成图像输出到显示设备。

图8示出了可以用于这里描述的技术的通用计算机设备1600和通用移动计算机设备1650的示例。计算设备1600旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机以及其他适当的计算机。计算设备1650旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话以及其他类似的计算设备。这里示出的组件、它们的连接和关系以及它们的功能仅意味着示例性的,并不意味着限制本文中描述和/或要求保护的本发明的实施方式。

计算设备1600包括处理器1602、存储器1604、存储设备1606、连接到存储器1604和高速扩展端口1610的高速接口1608以及连接到低速总线1614以及存储设备1606的低速接口1612。组件1602、1604、1606、1608、1610和1612中的每一个使用各种总线互连,并且可以适当地安装在公共主板上或以其他方式安装。处理器1602可以处理用于在计算设备1600内执行的指令,包括存储在存储器1604中或存储设备1606上的指令,以在外部输入/输出设备(诸如耦合到高速接口1608的显示器1616)上显示GUI的图形信息。在其他实施方式中,可以适当地使用多个处理器和/或多条总线以及多个存储器和多种类型的存储器。而且,可以连接多个计算设备1600,其中,每个设备提供必要操作的部分(例如,作为服务器银行、一组刀片服务器或多处理器系统)。

存储器1604存储计算设备1600内的信息。在一种实施方式中,存储器1604是一个或多个易失性存储器单元。在另一个实施方式中,存储器1604是一个或多个非易失性存储单元。存储器1604也可以是另一种形式的计算机可读介质,例如磁盘或光盘。

存储设备1606能够为计算设备1600提供大容量存储。在一种实施方式中,存储设备1606可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储设备,或包括存储区域网络中或其他配置的设备的设备阵列。计算机程序产品可以有形地包含在信息载体中。计算机程序产品还可以包含当被执行时执行一个或多个方法的指令,例如上面描述的那些。信息载体是计算机或机器可读介质,诸如存储器1604、存储设备1606或处理器1602上的存储器。

高速控制器1608管理计算设备1600的带宽密集型操作,而低速控制器1612管理较低带宽密集型操作。这种功能分配仅仅是示例性的。在一种实施方式中,高速控制器1608耦合到存储器1604、显示器1616(例如,通过图形处理器或加速器),并且耦合到可以接受各种扩展卡(未示出)的高速扩展端口1610。在该实施方式中,低速控制器1612耦合到存储设备1606和低速扩展端口1614。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口可以是例如通过网络适配器耦合到一个或多个输入/输出设备,例如,键盘、定点设备、扫描仪或诸如交换机或路由器的联网设备。

如图所示,计算设备1600可以以多种不同的形式来实现。例如,它可以被实现为标准服务器1620或者在一组这样的服务器中被多次实现。它也可以被实现为机架服务器系统1624的一部分。另外,其可以在诸如膝上型计算机1622的个人计算机中实现。或者,来自计算设备1600的组件可以与诸如设备1650的移动设备中的其他组件(未示出)。这些设备中的每一个可以包含计算设备1600、1650中的一个或多个,并且整个系统可以由彼此通信的多个计算设备1600、1650构成。

除其他组件之外,计算设备1650包括处理器1652、存储器1664、诸如显示器1654的输入/输出设备、通信接口1666和收发器1668。设备1650还可以设置有存储设备,诸如微型硬盘或其他设备,以提供额外的存储。组件1650、1652、1664、1654、1666和1668中的每一个使用各种总线互连,并且若干组件可以安装在公共主板上或以其他方式适当地安装。

处理器1652可以执行计算设备1650内的指令,包括存储在存储器1664中的指令。处理器可以实现为包括分离的和多个模拟和数字处理器的芯片的芯片组。处理器可以例如提供设备1650的其他组件的协调,诸如用户界面、设备1650运行的应用以及设备1650的无线通信的控制。

处理器1652可以通过控制接口1658和耦合到显示器1654的显示接口1656与用户通信。显示器1654可以是例如TFT LCD(薄膜晶体管液晶显示器)或OLED(有机发光二极管)显示器或其他适当的显示技术。显示接口1656可以包括用于驱动显示器1654以向用户渲染图形和其他信息的适当电路。控制接口1658可以接收来自用户的命令并将它们转换成提交给处理器1652。另外,可以提供与处理器1652通信的外部接口1662,以便实现设备1650与其他设备的近距离通信。外部接口1662可以例如在一些实施方式中提供有线通信,或者在其他实施方式中提供无线通信,并且还可以使用多个接口。

存储器1664存储计算设备1650内的信息。存储器1664可以被实现为计算机可读介质、易失性存储器单元或非易失性存储器单元中的一个或多个。扩展存储器1674也可以被提供并且通过扩展接口1672连接到设备1650,该扩展接口1672可以包括例如SIMM(单列直插式存储器模块)卡接口。这样的扩展存储器1674可以为设备1650提供额外的存储空间,或者还可以存储设备1650的应用或其他信息。具体而言,扩展存储器1674可以包括执行或补充上述过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器1674可以作为设备1650的安全模块来提供,并且可以用允许安全使用设备1650的指令来编程。另外,可以经由SIMM卡提供安全应用以及附加信息,例如以不可破解的方式在SIMM卡上放置标识信息。

存储器可以包括例如闪存和/或NVRAM存储器,如下所述。在一种实施方式中,计算机程序产品有形地包含在信息载体中。计算机程序产品包含当被执行时执行一个或多个方法的指令,例如上面描述的那些方法。信息载体是可以例如通过收发器1668或外部接口1662接收的计算机或机器可读介质,诸如存储器1664、扩展存储器1674或处理器1652上的存储器。

设备1650可以通过通信接口1666进行无线通信,通信接口1666在必要时可以包括数字信号处理电路。通信接口1666可以在诸如GSM语音呼叫、SMS、EMS或MMS消息收发、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS等各种模式或协议下提供通信。这样的通信可以例如通过射频收发器1668发生。另外,例如使用蓝牙、Wi-Fi或其他这样的收发器(未示出)可以发生短距离通信。另外,GPS(全球定位系统)接收器模块1670可以向设备1650提供附加的导航和位置相关的无线数据,该数据可以适当地被该设备1650上运行的应用使用。

设备1650还可以使用音频编解码器1660进行可听地通信,音频编解码器1660可以从用户接收口头信息并将其转换为可用的数字信息。音频编解码器1660可以同样地例如通过扬声器(例如,在设备1650的手机中)为用户生成可听声音。这种声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如,语音消息、音乐文件等等),并且还可以包括由在设备1650上运行的应用产生的声音。

如图所示,可以以多种不同的形式来实现计算设备1650。例如,它可以被实现为蜂窝电话1680。其也可以被实现为智能电话1682、个人数字助理或其他类似的移动设备的一部分。

这里描述的系统和技术的各种实施方式可以在数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些各种实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该可编程系统包括至少一个可编程处理器,其可以是特殊的或通用的,耦合以从接收数据和指令,并且向其发送数据和指令。

这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以以高级过程和/或面向对象的编程语言和/或装配/机器语言实现。如本文所使用的,术语“机器可读介质”、“计算机可读介质”是指任何计算机程序产品、设备和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(PLD)),用于将机器指令和/或数据提供给可编程处理器,该可编程处理器包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。

为了提供与用户的交互,这里描述的系统和技术可以在计算机上实现,该计算机具有:显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器),用于向用户显示信息;以及,用户可以通过其向计算机提供输入的键盘和指点设备(例如,鼠标或轨迹球)。其他类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。

这里描述的系统和技术可以实现在计算系统中,该计算系统包括(诸如作为数据服务器的)后端组件,或者包括(诸如应用服务器的)中间件组件,或者包括(诸如具有用户可以通过其与本说明书中描述的系统和技术的实现进行交互的图形用户界面或Web浏览器的客户端计算机的)前端组件,或者包括这样的后端、中间件或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)和因特网。

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络进行交互。客户端和服务器之间的关系是通过运行在各个计算机上并且彼此具有客户端-服务器关系的计算机程序产生的。

已经描述了多个实施例。然而,应该理解,在不脱离本发明的精神和范围的情况下可以进行各种修改。

另外,附图中描绘的逻辑流程不需要所示出的特定顺序或依序来实现期望的结果。另外,从所描述的流程,可以提供其他步骤,或者可以消除步骤,并且可以将其他组件添加到所描述的系统或从所描述的系统移除。因此,其他实施例在所附权利要求的范围内。

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