前庭锚定

文档序号:1759674 发布日期:2019-11-29 浏览:10次 >En<

阅读说明:本技术 前庭锚定 (Vestibular anchoring ) 是由 M·L·布朗德 于 2018-04-06 设计创作,主要内容包括:用于呈现虚拟现实图像的方法和设备可以包括从跟踪用户头部的位置和取向的位置跟踪系统接收头部运动信息,以及接收独立于头部运动信息的虚拟运动信息以用于虚拟现实模拟。方法和设备可以包括基于虚拟运动信息和头部运动信息来生成虚拟现实模拟的第一场景。方法和设备还可以包括基于头部运动信息来生成视觉线索集合,以及对包括视觉线索集合和虚拟现实模拟的第一场景的帧进行渲染。方法和设备可以包括发送虚拟现实模拟的帧以用于在显示设备上呈现。(The method and apparatus of virtual reality image may include receiving head movement information from the position of tracking user&#39;s head and the positioning control system of orientation, and receive the fantasy sport information independently of head movement information to be used for virtual reality simulation for rendering.Method and apparatus may include the first scene that virtual reality simulation is generated based on fantasy sport information and head movement information.Method and apparatus can also include visual cues set being generated based on head movement information, and render to the frame for the first scene for including visual cues set and virtual reality simulation.Method and apparatus may include sending the frame of virtual reality simulation for presenting on the display device.)

前庭锚定

技术领域

本公开涉及计算机图形系统,并且更具体地涉及在显示器上呈现图像。

背景技术

近年来已发展的计算设备的一个领域是游戏设备和虚拟现实(VR)设备,这些设备使用图形处理单元(GPU),以基于从计算设备接收的渲染指令将图形从计算设备渲染到显示设备。在游戏设备中,可以基于用户输入(例如,外部控制器的移动以引起场景取向的移动,将项目引入场景等)来对显示设备上产生的场景进行定向或修改。类似地,在VR设备中,可以基于用户输入来对显示设备上产生的场景进行定向或修改,其中输入可以包括检测用户头部的移动(例如,所检测的VR设备(例如,头戴式显示器(HMD))的移动)。

VR应用中的常见问题是建立可能促进晕动病(也称为模拟病)的状况。个人可能在虚拟现实环境中容易患晕动病,因为他们对世界的外部视图被移除,并且被受到物理运动影响但不完全被物理运动控制的模拟视图完全取代。当模拟视图偏离大脑基于其他感官(最明显的是前庭系统)刺激所期望的视图时,可能导致患病。因此,当通过眼睛和内耳发送到大脑的信号存在差异时,用户可能在使用VR设备时具有不舒服的体验。例如,当用户正在观看包括运动的VR场景但是用户物理上没有移动时,发送到大脑的运动相关信号的差异可能导致用户感到不适、恶心、疲劳、出汗、眩晕或其他晕动病效应。一旦开始,晕动病效应通常会持续甚至恶化,直到视觉输入和来自内耳的信号之间的不一致得到解决。

通过将跟踪头部运动的准确性最大化、将预测未来运动的准确性最大化以及将头部姿势的计算和对应于姿势的虚拟场景的显示之间的延时最小化,可以减少或防止虚拟现实中的模拟病。当模拟视觉输入与前庭系统物理输入紧密匹配时,晕动症可能不再是大多数用户在虚拟现实中的影响因素。

但是,将虚拟现实环境中显示的视图仅局限于头部的运动可能限制传统上由维持独立手动输入控制的模拟提供的移动自由度(例如,在具有第一人称视图的视频游戏中发现的那些)。通过强制严格遵守头部运动,用户可能被限制在包含VR系统的物理空间的范围内;这进而可能会限制可以通过虚拟现实提供的体验范围。

例如,虽然视频游戏模拟通常可以让用户坐在舒适的沙发上并按下游戏手柄的拇指杆时,跨越外星世界奔跑若干英里,但是当局限于头部运动时,除非穿戴与模拟地形相匹配的数英里开放空间的独立VR装备,否则可能无法将相同的体验转换为虚拟现实。

因此,本领域需要改进在显示器上呈现VR图像。

发明内容

以下呈现了本公开的一个或多个实现的简化概述,以提供对这样的实现的基本理解。本发明内容不是所有预期实现的广泛概述,并且既不旨在标识所有实现的关键或重要元素,也不旨在描绘任何或所有实现的范围。其唯一目的是以简化形式呈现本公开的一个或多个实现的一些概念,作为稍后呈现的更详细描述的序言。

本公开涉及虚拟现实模拟,该虚拟现实模拟具有反映准确的头部运动、结合针对附加偏移运动并入手动输入控制的显示视图。将所显示的视图和与用户前庭系统感测的运动相匹配的场景进行锚定,同时还包括具有基于手动输入的虚拟运动的场景,可以提供逼真的虚拟环境,同时减少或防止现有解决方案中固有的、由于实际用户运动和虚拟运动之间的运动差异诱发的模拟病。

一个示例实现涉及计算机设备。计算机设备可以包括:存储器,其存储被配置为运行虚拟现实模拟的至少一个应用;处理器,其与存储器通信并且被配置为执行至少一个应用来运行虚拟现实模拟;操作系统,其与存储器和处理器通信。操作系统、处理器和至少一个应用可以是可操作的,用以:从跟踪用户头部的位置和取向的位置跟踪系统接收头部运动信息;接收独立于头部运动信息的虚拟运动信息,以用于虚拟现实模拟;基于虚拟运动信息和头部运动信息生成虚拟现实模拟的第一场景;基于头部运动信息生成视觉线索集合;对包括视觉线索集合和虚拟现实模拟的第一场景的帧进行渲染;发送虚拟现实模拟的帧,以用于在显示设备上呈现。

另一示例实现涉及用于呈现虚拟现实图像的方法。方法可以包括从跟踪用户头部的位置和取向的位置跟踪系统接收头部运动信息。方法还可以包括接收独立于头部运动信息的虚拟运动信息,以用于虚拟现实模拟。附加地,方法可以包括基于虚拟运动信息和头部运动信息来生成虚拟现实模拟的第一场景。方法可以包括基于头部运动信息生成视觉线索集合,以及执行于计算机设备上的操作系统处,对包括视觉线索集合和虚拟现实模拟的第一场景的帧进行渲染。方法还可以包括发送虚拟现实模拟的帧,以在显示设备上呈现。

另一示例实现涉及存储由计算机设备可执行的指令的计算机可读介质。计算机可读介质可以包括用于使得计算机设备从跟踪用户头部的位置和方向的位置跟踪系统接收头部运动信息的至少一个指令。计算机可读介质可以包括用于使得计算机设备接收独立于头部运动信息的虚拟运动信息以用于虚拟现实模拟的至少一个指令。计算机可读介质可以包括用于使得计算机设备基于虚拟运动信息和头部运动信息生成虚拟现实模拟的第一场景的至少一个指令。计算机可读介质可以包括用于使得计算机设备基于头部运动信息生成视觉线索集合的至少一个指令。计算机可读介质可以包括用于使得计算机设备对包括视觉线索集合和虚拟现实模拟的第一场景的帧进行渲染的至少一个指令。计算机可读介质可以包括用于使得计算机设备发送虚拟现实模拟的帧以在显示设备上呈现的至少一个指令。

与本公开的实现有关的附加优点和新颖特征的一部分将在下面的描述中阐述,并且本领域技术人员在检查以下内容或通过其实践进行学习时,一部分将变得更加显而易见。

附图说明

在附图中:

图1是根据本公开的实现的示例设备的示意性框图;

图2是根据本公开的实现的用于显示虚拟现实图像的头戴式显示器的光学器件和显示面板的示意图;

图3是根据本公开的实现的具有两个场景的虚拟现实模拟的示意图;

图4是根据本公开的实现的用于显示虚拟现实图像的方法的流程图;

图5是根据本公开的实现的用于显示具有两个场景的虚拟现实模拟的方法的流程图;以及

图6是根据本公开的实现的示例设备的示意性框图。

具体实施方式

本公开涉及用于在使用VR设备观看VR场景时减少或防止模拟病的设备和方法。如本文所使用的,VR设备可以包括生成和/或显示虚拟现实图像(例如,来自至少一个虚拟环境输入)、混合现实(MR)图像(例如,来自至少两个虚拟环境输入)和/或增强现实(AR)图像(例如,来自至少一个虚拟环境输入和一个真实环境输入)的设备。

前庭锚定是这样的技术,其中向虚拟现实环境中的用户提供视觉线索集合,以允许应用可以从头戴式显示器(HMD)中的跟踪系统以外的源获取的虚拟运动影响。可以基于从位置跟踪系统接收的头部运动信息(例如,用户头部的位置和/或取向)来获得视觉线索和视觉线索的相对运动。例如,位置跟踪系统可以被配置为跟踪HMD设备的移动,并且可以独立于HMD设备或安装在HMD设备上,并且因此可以被称为基于HMD的运动源。附加地,视觉线索可以产生对大脑的视觉信号,该视觉信号可以与由前庭系统响应于用户的物理运动产生的信号一致。基于HMD跟踪信息(例如,基本上与前庭感觉输入匹配的运动)、利用基于HMD的运动的视觉线索然后可以补充呈现给用户的虚拟现实环境,虚拟现实环境本身包括基于从一个或多个非HMD源(例如,从用户按下按钮或移动游戏控制器上的开关的手动输入,或从生成虚拟现实环境的应用)接收以及从基于HMD的运动源接收的虚拟运动信息的虚拟运动的组合。对应于头部运动信息的视觉线索可以呈现在虚拟现实环境中的任何地方,使得大脑中的互补视觉和前庭感觉输入的融合可以克服虚拟运动的冲突显示,该冲突显示否则可能表现为晕动病。

因此,本公开涉及提供以下的设备和方法:符合来自前庭系统的信号的视觉线索(例如,前庭锚定线索),以及具有与虚拟运动对应的不同的、冲突的虚拟现实环境的主要视图的显示。这样的线索可以采取任何形式并且存在于用户可见的范围内的任何地方(例如,在整个场景中混杂的网格)。在一些情况下,可以将线索放置在其中用户对细节的感知不那么敏锐的周边视觉的区域中。例如,可以向用户的每只眼睛视觉中心处的碟形区域内显示虚拟现实环境(其虚拟用户运动包括非基于HMD的影响),并且运动仅基于头部运动信息(例如,基于HMD的运动)的视觉线索集合可以被限制在围绕蝶形的周边环的区域中。在周边视觉区域中锚定线索可以不那么分散注意力,同时仍然向大脑提供必要的信号。

此外,本公开的设备和方法可以包括:基于源自除用户的头部跟踪之外的源的运动影响来动态引入和移除前庭锚定线索(当存在这样的影响时添加线索,并且在头部跟踪单独负责运动时移除它们);将锚定线索并入虚拟现实场景中的形成(涉及可能的过渡效果);锚定线索源自一个或多个现场相机馈送的可能性以及根据个体用户的舒适度需求来调整线索强度。

在一个实现中,所显示的虚拟环境可以是具有两个独立场景的VR模拟,两个场景被融合在一起成为呈现给用户的所显示的场景。例如,两个独立场景中的第一场景可以对应于主VR场景并且具有第一(虚拟)运动量,并且第二场景可以对应于上述视觉线索并且具有第二运动量,第二运动量由从跟踪系统接收的头部运动信息(例如,与用户的现实世界运动相对应的头部运动或HMD跟踪信息)进行控制。第二场景可以对应于不同的虚拟场景,或者对应于原始虚拟环境的独立视图。因此,第二场景可以包括视觉线索来匹配用户的前庭感觉输入(仅基于头部运动信息),这可以使得所显示的场景抑制或减少晕动病。

换言之,VR模拟的第一场景可以具有第一视图区域,第一视图区域具有跟踪虚拟场景的运动的第一运动量(其中这样的运动是来自模拟本身的运动源、头部运动或HMD跟踪、和/或用户输入控制的一些融合)。同时,VR模拟的第二场景可以具有与第一视图区域不同的第二视图区域,并且第二场景可以具有第二运动量,第二运动量独立于第一视图区域的第一运动量,并且相反它仅跟踪HMD的运动(来自跟踪系统的HMD跟踪信息或头部运动信息),HMD的运动是由用户的内耳感测到的运动。如上所述,在一些实现中,第二场景可以呈现在围绕第一场景的周边区域中。因此,所描述的设备和方法允许VR模拟包括具有虚拟世界中的独立运动的一个区域以及具有由现实世界运动驱动的运动的另一区域。通过向用户提供连贯的感觉输入,可以减少和/或防止否则由虚拟现实场景的冲突视图产生的晕动病。

现在参考图1,用于结合呈现VR图像使用的示例系统100可以包括与一个或多个显示设备106通信的计算机设备102,该VR图像包括具有虚拟世界中的独立运动的一个区域以及具有仅由现实世界运动驱动的运动的另一区域。计算机设备102可以执行至少一个应用10来运行虚拟现实模拟22,虚拟现实模拟22生成并且传送图像数据(例如,显示帧25),以用于显示一个或多个VR图像、限定虚拟现实模拟22在显示设备106上的一个或多个场景。显示设备106可以包括例如头戴式显示器(HMD)设备,并且可以具有能够输出(多个)显示帧25以供系统100的用户观看的一个或多个显示面板32(例如,发光二极管(LED)、有机LED(OLED)、液晶显示器(LCD)等)。

计算机设备102可以经由网络104和/或通过有线或无线连接与位置跟踪系统107通信来获得头部运动信息14,以应用于虚拟现实模拟22。位置跟踪系统107可以包括但不限于:一个或多个传感器(例如,相机)、发射器(例如,IR LED)、惯性设备(加速计和/或陀螺仪)、和/或能够检测系统100和/或显示设备106(例如,HMD设备)的用户头部的取向、位置和/或移动,用户正在观看的地方(例如,眼睛的注视方向)和/或用户的焦点的任何其他位置感测系统。例如,在一些实现(例如,“内向外(inside-out)”实现)中,位置跟踪系统107可以包括但不限于:一个或多个深度相机和一个或多个惯性测量单元(IMU)、跟踪软件、同时定位和映射算法以及一个或多个处理器。在其他实现(诸如“外向内(outside-in)”实现)中,位置跟踪系统107可以包括但不限于:用于检测位于环境中的一个或多个发射器(例如,IR LED)的一个或多个传感器(例如,相机)以及一个或多个处理器。虽然跟踪系统107被图示为与显示设备106分离,但是应当理解,跟踪系统107可以远离显示设备106或位于显示设备106上,或者部分地远离显示设备106且部分地位于显示设备106上。

附加地,计算机设备102可以经由网络104和/或通过有线或无线连接与一个或多个外部控制器108通信来获得虚拟运动信息12,以应用于虚拟现实模拟22。外部控制器108可以包括但不限于:游戏手柄、操纵杆、键盘、鼠标或可以为虚拟现实模拟22的虚拟环境(例如,游戏或虚拟世界)提供虚拟运动输入12的其他输入设备。

可选地,在一些情况下,计算机设备102可以经由网络104和/或通过有线或无线连接与一个或多个相机109通信来获得视频流信息111,以应用于虚拟现实模拟22。例如,在一些实现中,来自(多个)相机109的视频流信息111可以是现实世界的视频图像,现实世界的视频图像可以由来自虚拟现实模拟22的虚拟现实图像补充,以限定用于在显示设备106上呈现的增强现实图像。此外,例如在其他实现中,视频流信息111可以是可以用作创建计算机化环境重建的输入的现实世界的视频图像,该输入可以由虚拟现实模拟22用于在显示设备106上与其他虚拟图像一起呈现。

计算机设备102可以包括由处理器36和/或存储器38执行的操作系统110。计算机设备102的存储器38可以被配置用于存储限定操作系统110和/或与操作系统110相关联的数据和/或计算机可执行指令,并且处理器36可以执行这样的数据和/或指令来将操作系统110实例化。存储器38的示例可以包括但不限于计算机可使用的存储器类型,例如,随机存取存储器(RAM)、只读存储器(ROM)、磁带、磁盘、光盘、易失性存储器、非易失性存储器及其任何组合。处理器36的示例可以包括但不限于如本文所述的专门编程的任何处理器,包括控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、片上系统(SoC)或其他可编程逻辑或状态机。

计算机设备102可以包括可以连接到网络的任何移动或固定计算机设备。计算机设备102可以是例如诸如台式计算机或膝上型计算机或平板计算机的计算机设备、蜂窝电话、游戏设备、混合现实或虚拟现实设备、音乐设备、电视、导航系统、相机、个人数字助理(PDA)或手持设备、或具有与一个或多个其他设备和/或通信网络的有线和/或无线连接能力的任何其他计算机设备。

操作系统110可以包括可操作以对一个或多个图像帧进行渲染并确定何时发送经渲染的图像帧以在显示设备106上呈现的合成器18和图形处理单元(GPU)24。特别地,合成器18可以接收一个或多个VR图像并与GPU 24一起工作来将具有不同运动的区域进行组合并生成一个或多个显示帧25,该VR图像包括具有虚拟世界中的独立运动的一个区域以及具有仅由现实世界运动驱动的运动的另一区域。GPU 24和/或合成器18可以与显示控制器26通信,以发送经渲染的图像帧(例如,显示帧25),以用于在显示设备106上呈现。

附加地,操作系统110还可以包括显示接口28,显示接口28可以与处理器36和/或存储器38通信地耦合,以用于经由显示端口30与显示设备106通信。显示端口30可以包括各种类型的端口,包括但不限于:高清多媒体接口(HDMI)端口、显示器串行接口(DSI)端口、移动工业处理器接口(MIPI)DSI端口、通用串行总线(USB)端口、Firewire端口或可以允许例如经由计算机设备102和显示设备106之间的网络104进行通信的其他嵌入式显示端口或外部有线或无线显示端口。

计算机设备102还可以包括可以由处理器36执行以在显示设备106上呈现一个或多个虚拟现实图像(例如,显示帧25)的一个或多个应用10。由处理器36执行的一个或多个应用10还可以与操作系统110、GPU 24和/或合成器18协同操作,以运行虚拟现实模拟22并生成用于在显示设备106上呈现的(多个)显示帧25。

一个或多个应用10可以包括虚拟现实模拟22,虚拟现实模拟22可操作以接收运动输入,例如,头部运动信息14和/或虚拟运动信息12,并且基于所接收的运动输入对一个或多个图像帧进行渲染,以用于在显示设备106上呈现。例如,一个或多个应用10可以是可执行以运行虚拟现实模拟22来生成虚拟世界11的虚拟现实应用。虚拟世界11可以包括但不限于:虚拟现实游戏、混合现实游戏、增强现实游戏、增强现实环境(例如但不限于协同工作环境)、虚拟影院或任何其他类型的至少部分虚拟的环境。一个或多个应用10可以从位置跟踪系统107和/或(多个)外部控制器108接收运动输入。例如,一个或多个应用10可以从(多个)游戏控制器108接收对应于虚拟世界11中(例如,虚拟世界11中的角色和/或对象)的移动的虚拟运动信息12。一个或多个应用10还可以基于例如虚拟现实模拟22中的逻辑来接收虚拟运动信息12。附加地,一个或多个应用10可以从位置跟踪系统107接收对应于现实世界中、例如由系统100的用户穿戴的HMD形式的显示设备106的移动的头部运动信息14。

一个或多个应用10可以将虚拟运动信息12和/或头部运动信息14变换为虚拟坐标。一个或多个应用10还可以将头部运动信息14和虚拟运动信息12组合来确定虚拟世界11中的角色和/或对象的虚拟姿势(位置和取向)。在一个实现中,一个或多个应用10可以基于针对虚拟世界11中的场景的角色和/或对象的虚拟姿势来对虚拟世界11的第一场景16进行渲染。第一场景16可以对应于虚拟场景的原始视图区域并且可以跟踪虚拟场景的运动。第一场景16可以是主虚拟场景。

一个或多个应用10可以例如基于在由W*V*P的乘法串接的常规场景渲染中使用的变换矩阵来生成第一场景16,其中W是世界矩阵,V是视图矩阵,并且P是投影矩阵。在一个实现中,一个或多个应用10可以在渲染第一场景16时使用以下变换矩阵:

W*Vsimulation*Vhead*P

其中W是世界矩阵,P是投影矩阵,Vsimulation是由控制器输入和/或模拟设计形成的相机矩阵、并且Vhead是系统100的用户头部的跟踪位置并且可以并入从绝对跟踪原点到可在设置期间建立的游戏空间相对原点的附加基础变换。附加地,Vhead或P可以基于例如瞳孔间距来应用眼睛偏移。因此,基于上述变换矩阵,一个或多个应用10可以生成第一场景16并且然后将第一场景16提供给合成器18。

合成器18还可以接收一个或多个视觉线索17或限定这样的视觉线索17的第二场景20,并且可以与GPU 24一起工作来生成对应的(多个)渲染帧(例如,经渲染的第一场景113和(多个)经渲染的视觉线索或第二场景114,其被组合并作为(多个)显示帧25输出)。

一个或多个视觉线索17或第二场景20可以由一个或多个应用10中的第一应用、一个或多个应用10中的第二应用或者由操作系统110仅基于头部运动信息14来生成,使得一个或多个视觉线索17或第二场景20具有与系统100的用户的前庭系统感测的现实世界运动基本上匹配的运动量。一个或多个视觉线索17或第二场景20中包括的元素可以与来自第一场景16的内容具有密切关系,或者元素可以由完全分离的媒体集合组成。

此外,在一些情况下,可以通过与生成第一场景16的虚拟现实模拟相比不同的虚拟现实模拟或相同虚拟现实模拟的独立视图来生成一个或多个视觉线索17或限定这样的视觉线索17的第二场景20。换言之,虚拟现实模拟22可以包括生成第一场景16的主虚拟现实模拟115以及生成一个或多个视觉线索17或第二场景20的辅助虚拟现实模拟117。在这种情况下,辅助虚拟现实模拟117可以是与主虚拟现实模拟115不同的虚拟现实模拟,或者是相同虚拟现实模拟的独立视图。

因此,在一些情况下,一个或多个应用10中的第一应用可以生成第一场景16和一个或多个视觉线索17或第二场景20。例如,在这种情况下,一个或多个应用10的第一应用可以运行生成第一场景16的主虚拟现实模拟115和生成一个或多个视觉线索17或第二场景20的辅助虚拟现实模拟117。在一些实现中,一个或多个应用10中的第一应用然后可以将第一场景16和一个或多个视觉线索17或第二场景20组合,并将组合提供给合成器18。在其他实现中,一个或多个应用10中的第一应用可以向合成器18发送第一场景16以及一个或多个视觉线索17或第二场景20来进行组合(利用潜在的重投影)。

此外,在一些情况下,一个或多个应用10中的第二应用可以生成一个或多个视觉线索17或第二场景20,而一个或多个应用10中的第一应用可以生成第一场景16。例如,在这种情况下,一个或多个应用10中的第二应用运行辅助虚拟现实模拟117来生成一个或多个视觉线索17或第二场景20,并且一个或多个应用10中的第一应用运行主虚拟现实模拟115来生成第一场景16。然后,一个或多个应用10中的第一应用和第二应用可以单独地向合成器18分别提供第一场景16以及一个或多个视觉线索17或第二场景20。

附加地,在一些情况下,操作系统110可以生成一个或多个视觉线索17或第二场景20,而一个或多个应用10中的第一应用可以生成第一场景16。例如,在这种情况下,操作系统110运行辅助虚拟现实模拟117来生成一个或多个视觉线索17或第二场景20,并且一个或多个应用10中的第一应用运行主虚拟现实模拟115来生成第一场景16。然后,一个或多个应用10中的第一应用和操作系统110可以单独地向合成器18分别提供第一场景16和一个或多个视觉线索17或第二场景20。

如上文所解释的,尽管一个或多个视觉线索17或第二场景20可以由一个或多个应用10中的第一应用、一个或多个应用10中的第二应用或通过操作系统110来生成,但是为了简化说明,将基于一个或多个应用10中的第一应用的实现来讨论以下示例。换言之,在以下说明中,相同的应用10生成第一场景16以及一个或多个视觉线索17或第二场景20。

一个或多个应用10中的第一应用可以从位置跟踪系统107接收头部运动信息14,头部运动信息14对应于现实世界中例如穿戴HMD形式的显示设备106的用户的移动。

一个或多个应用10中的第一应用可以将头部运动信息14变换为虚拟坐标,以在虚拟模拟的坐标系统中表达头部位置和取向。头部位置/取向从所接收的原始物理坐标到虚拟坐标的变换可以将头部运动信息14从位置跟踪系统107转换到VR设备设置期间建立的可能被修改的“游戏空间”姿势(例如,将空间的原点/中心从由绝对传感器定位使用外向内跟踪系统指定的原点/中心修改为由用户基于家具或房间中的其他物体来选择房间中心时指定的原点/中心),并且然后可能转换到模拟中的虚拟用户姿势(例如,跟踪系统可以维持以米为单位的坐标,而游戏可以以英尺为单位构建其自己的坐标系,跟踪系统也可以将前向方向Z当作正值,而模拟可以使用负Z值表达前向)。一个或多个应用10中的第一应用可以基于头部运动信息14来生成(多个)视觉线索17或第二场景20。可以基于从显示设备106(例如,HMD)接收的头部运动信息14来产生(多个)视觉线索17或第二场景20以及(多个)视觉线索17或第二场景20的相对运动。(多个)视觉线索17或第二场景20可以产生到大脑的视觉信号,该视觉信号可以与由前庭系统响应于用户的物理运动产生的信号一致。

在一个实现中,(多个)视觉线索17可以呈现在第一场景16中的任何地方,使得大脑中的互补视觉输入和前庭感觉输入的融合可以克服虚拟运动(相对于由头部运动信息14表示的现实世界运动)的冲突显示,其否则可能表现为晕动病。

在一个实现中,一个或多个应用10中的第一应用可以对第二场景20形式的视觉线索17进行渲染,使得第二场景20可以包括与用户的前庭感觉输入匹配的运动。这样,第二场景20可以提供抑制和/或防止用户的晕动病所必需的视觉线索17。在该实现中,第二场景20可以对应于与第一场景16的虚拟场景不同的虚拟场景,其中元素可以由完全分离的媒体集合组成。虽然第二场景20可以包括任何类型的媒体、内容或构成,但是第二场景20构成的示例可以包括但不限于:虚拟大厅区域、虚拟剧院环境或者甚至是用户当前物理环境的显示。可以例如通过由与计算机设备102通信和/或存在于显示设备106上的(多个)外部相机109的重投影馈送进行的空间重建,或对于具有AR功能的显示设备106而言是现实世界的透明视图,来实现用户的当前物理环境。第二场景20可以以这样的方式来构造:向用户提供具有细节的几何和纹理结构的强烈立体视觉线索。例如,第二场景20可以包括提供相对于虚拟环境墙壁的深度的几何细节和/或指示虚拟环境中的移动的视觉线索。这样,第二场景20可以包括独立于第一场景16的运动量,并且第二场景20可以包括跟踪由用户的内耳感测的运动的运动量,例如,基于来自显示设备106(例如,HMD)的头部运动信息14的运动量。

在一个实现中,一个或多个应用10中的第一应用可以在针对第二场景20对每个眼睛进行渲染时,使用以下变换矩阵:

W*Vhead*P

其中W是世界矩阵,P是投影矩阵,Vhead是头部的跟踪位置和取向,并且可以并入从绝对跟踪原点到可以在设置期间建立的游戏空间相对原点的附加基础变换。附加地,Vhead或P可以基于例如瞳孔间距来应用眼睛偏移。因此,基于上述变换矩阵,一个或多个应用10中的第一应用(或者一个或多个应用10中的第二应用或操作系统110)可以生成具有仅基于头部运动信息14的运动的一个或多个视觉线索17或第二场景20,以基本上匹配由系统100的用户的前庭系统感测的运动。

在一些实现中,如上所述,合成器18可以包括第一场景16和第二场景20之间的过渡效果121。过渡效果121可以使得第一场景16和第二场景20中的元素之间的不连续性在视觉上较不明显,并且还可以减少第一场景16和第二场景20之间令人讨厌的“窗口违规”立体伪像。过渡效果121可以包括但不限于:在过渡区域(例如,第一场景16和第二场景20之间的区域)中具有调光的交叉渐变、模糊边界环的引入、整个周边场景的径向梯度调光(例如,边缘处最亮并且朝向中心逐渐变暗)、暗边界(例如,区域之间的黑色或其他深色)、彩色环(例如,区域之间的发光环)以及将来自第一场景16的图像混合到第二场景20中。

一个或多个应用10中的第一应用可以传送用于将场景从虚拟现实模拟22渲染到GPU 24的指令和数据。GPU 24可以生成经渲染的虚拟第一场景113(基于虚拟的第一场景16)以及(多个)经渲染的虚拟视觉线索或第二场景114(基于(多个)虚拟线索17或虚拟第二场景20)和/或它可以对第一场景16和(多个)视觉线索17或第二场景20的统一合成进行渲染来生成(多个)显示帧25。合成器18可以可选地将经渲染的第一场景113与经渲染的第二场景114组合,并且可选地可以将过渡效果121添加到这样的渲染,从而生成(多个)显示帧25。合成器18和/或GPU 24可以确定何时将包含组合场景的(多个)显示帧25发送到显示控制器26,以转发到显示设备106并在显示设备106上呈现。由GPU 24执行的渲染操作可以是计算密集的。完成渲染操作的时间可以依赖于正在被产生的显示图像的质量。例如,渲染时间可以基于诸如分辨率和颜色格式的因素以及各种视觉效果(例如,阴影或颗粒)的质量。可以基于硬件能力来调整图像的质量,使得GPU 24能够以显示设备106的刷新率生成新的显示帧。例如,虚拟现实(例如,虚拟现实模拟22)的刷新率可以是90Hz,从而得到每11毫秒刷新一次。合成器18和/或GPU 24可以与显示控制器26通信来发送经渲染的显示帧25,以用于在显示设备106上呈现。

显示控制器26可以通知显示接口28将经渲染的显示帧25传送到显示设备106,以在显示设备106上呈现。

因此,呈现在显示面板32上的显示帧25可以包括经渲染的第一场景113(对应于虚拟第一场景16),第一场景113具有基于虚拟运动信息12和头部运动信息14的运动。经渲染的第一场景113可以可选地包括具有仅基于头部运动信息14的运动的一个或多个经渲染的视觉线索114(基于虚拟视觉线索17)。备选地,所呈现的显示帧25可以包括经渲染的第一场景113和经渲染的第二场景114(基于虚拟第二场景20),经渲染的第二场景114包括或限定一个或多个视觉线索17。在任一情况下,经渲染的第一场景113可以对应于用户在显示面板32上的视图区域中观看的中心区域或焦点区域(并且可以具有例如基于虚拟运动信息12的一定的虚拟运动量),并且(多个)经渲染的视觉线索或第二场景114可以是视图区域中的中心或焦点区域外部的区域(并且具有例如与头部运动信息14相关联的独立运动)。

界定经渲染的第一场景113和(多个)经渲染的视觉线索或第二场景114的显示区域的相对直径可以依赖于显示面板32的显示面积。附加地,经渲染的第一场景113和(多个)经渲染的视觉线索或第二场景114的界定区域的相对直径可以是基于用户对晕动病的易感性而由用户控制的。例如,用户可以基于对晕动病的易感性来将经渲染的第一场景113扩展或最小化。如果用户对晕动病具有较低的易感性,则用户可以选择将经渲染的第一场景113扩展来具有更大的视图区域并将(多个)经渲染的视觉线索或第二场景114的视图区域最小化。然而,如果用户对晕动病具有较高的易感性,则用户可以选择增加(多个)经渲染的视觉线索或第二场景114的视觉区域,同时减小经渲染的第一场景113的视觉区域。

换言之,所呈现的显示帧25可以包括具有第一显示区域的经渲染的第一场景113,第一显示区域具有跟踪虚拟场景的运动的运动量。同时,(多个)经渲染的视觉线索或第二场景114可以在经渲染的第一场景113的周边,并且可以具有与第一显示区域不同的第二显示区域。(多个)经渲染的视觉线索或第二场景114的周边区域可以具有仅依赖于观看者的运动的运动量,并且因此可以独立于第一虚拟场景的运动。具体地,周边区域可以具有跟踪由用户的内耳感测的运动的运动量,例如,基于来自HMD设备的运动输入(例如,来自位置跟踪系统107的头部运动信息14)的运动量。这样,所呈现的(多个)显示帧25可以通过减少来自用户眼睛和内耳的冲突信号来改善用户舒适度,从而减少或消除恶心、晕动病或眩晕。

一个示例用例可以包括:用户玩虚拟游戏并且用户使用外部控制器108向前移动虚拟游戏(例如,虚拟现实模拟22)中的角色,同时物理上保持静止(例如,没有来自位置跟踪系统107的头部运动信息14)。显示帧25可以包括经渲染的第一场景113,其中虚拟游戏中的角色向前移动,以及包括静止视觉线索17的经渲染的第二场景114。静止视觉线索17可以产生对于用户大脑的视觉信号,该视觉信号可以与前庭系统响应于用户保持静止所产生的信号一致,使得大脑中互补视觉和前庭感觉输入的融合可以克服虚拟运动的冲突显示,该冲突显示否则可能表现为晕动病。

另一示例用例可以包括:用户玩虚拟游戏并且当用户头部左右旋转时(例如,从位置跟踪系统107所接收的头部运动信息14是左和右),用户使用外部控制器108向前移动虚拟游戏中的角色。显示帧25可以包括经渲染的第一场景113,其中虚拟游戏中的角色在虚拟游戏中向前移动同时向左和向右看。显示帧25还可以包括经渲染的第二场景114,经渲染的第二场景114包括视觉线索集合17。因为用户没有在物理上向前移动,所以经渲染的第二场景114中包括的视觉线索17可以不指示前向运动,但是可以与所接收的用户头部旋转的左右移动匹配。

又一示例用例可以包括:用户玩虚拟游戏并且用户通过物理向前走动来向前移动虚拟游戏中的角色,并且可以使用外部控制器108使虚拟游戏中的角色向左或向右看。显示帧25可以包括经渲染的第一场景113,其中角色基于从位置跟踪系统107接收的头部运动信息14向前移动,并且基于从外部控制器108接收的虚拟运动信息12在虚拟游戏中向左和向右看。显示帧25还可以包括在整个经渲染的第二场景114中的视觉线索17,视觉线索17反映前向运动、跟踪用户的物理移动。

当(多个)应用10和/或操作系统110在预定时间段之后停止从外部控制器108和/或虚拟现实模拟22接收虚拟运动信息12时(例如,除头部运动外,用户虚拟地停止移动持续5秒),经渲染的第一场景113可以被动态地扩展回来,以覆盖显示面板32的整个显示区域。例如,(多个)应用10或操作系统110可以从所呈现的显示帧25中移除视觉线索17和/或经渲染的第二场景114。经渲染的第一场景113的动画扩展可以在虚拟运动信息12停止之后发生。经渲染的第一场景113可以维持整个显示区域的完整覆盖,直到检测到另一辅助独立运动影响(例如,来自外部控制器108的虚拟运动信息12),并且经渲染的第二场景114可以再次变为对用户可见。经渲染的第二场景114可以通过一个或多个视觉线索17向用户提供即时锚定线索。

现在参考图2,概念图图示了根据实现的示例显示设备106(例如,HMD)的透镜和显示器的操作。显示设备106可以包括光学器件204(例如,一个或多个透镜),以用于将用户的视觉聚焦在一个或多个显示面板32的视图区域27的一个或多个部分上。例如,显示面板32可以包括液晶显示器(LCD)(其可以包括发光二极管(LED)、背光LCD显示器)、有机LED(OLED)显示器、数字光处理(DLP)显示器等。显示面板32可以基于从显示控制器26(图1)接收的信号来显示一个或多个图像(例如,左眼图像和右眼图像)。在一个实现中,显示控制器26可以以并排布置向显示设备106提供多路复用的左眼图像和右眼图像。应当理解,左眼图像和右眼图像也可以垂直复用或时间复用。显示面板32可以从显示端口34(图1)扫描图像(例如,所呈现的帧)。如本文所使用的,扫描可以是指更新(多个)显示面板32上的像素的过程。

光学器件204可以包括用于将用户的左眼聚焦在左眼图像上的左眼光学器件206,以及用于将用户的右眼聚焦在右眼图像上的右眼光学器件208。例如,光学器件206可以将用户的眼睛聚焦在左眼图像和右眼图像中的每一个图像的中心部分上。用户的大脑可以将每个眼睛观看的图像进行组合,以创建用户正在观看3D环境的感知。例如,左眼图像和右眼图像都可以包括可以被感知为三维对象的所呈现的帧内容。

所呈现的显示帧25可以包括具有第一视图区域210的经渲染的第一场景113,第一视图区域210具有至少基于虚拟运动信息12来跟踪虚拟世界111的虚拟场景的运动的运动量。同时,所呈现的显示帧25可以包括经渲染的第二场景114,经渲染的第二场景114在经渲染的第一场景113的周边。经渲染的第二场景114可以具有与第一视图区域210不同的尺寸(高度和/或宽度)的第二视图区域202。视图区域27被经渲染的第二场景114占据的周边区域可以具有独立于虚拟场景的运动(例如,独立于经渲染的第一场景113)的运动量。特别地,经渲染的第二场景114可以具有基于来自位置跟踪系统107的头部运动信息14的运动量,从而与用户的前庭系统感测的现实世界运动基本上匹配。

参考图3,图示了在显示设备106(图1)上显示的一个示例显示帧25。所呈现的显示帧25可以包括经渲染的第一场景113,经渲染的第一场景113对应于应用10(图1)的虚拟世界11(图1)的虚拟场景。附加地,所呈现的显示帧25可以包括经渲染的第二场景114(图1),经渲染的第二场景114基于从位置跟踪系统107(图1)接收的头部运动信息14(图1)来跟踪用户的移动。所呈现的显示帧25还可以包括在经渲染的第一场景113和经渲染的第二场景114之间的过渡效果121,过渡效果121使得场景中的元素之间的不连续性在视觉上较不明显。过渡效果121可以包括但不限于:在过渡区域中具有调光的交叉渐变、模糊边界环的引入以及整个周边场景的径向梯度调光(边缘处最亮且朝向中心逐渐变暗)。

如上所述,在图3的示例中,维持虚拟现实模拟内的两个独立场景。经渲染的第一场景113包括主虚拟现实模拟115的显示,并且用于对其进行渲染的相机可能受到与显示设备106(例如,头戴式显示器)分离的输入控制(例如,游戏手柄、键盘或鼠标)或模拟本身的逻辑的影响。当没有应用独立于头部跟踪提供的运动(例如,从位置跟踪系统107接收的头部运动信息14)的相机运动时,经渲染的第一场景113可以占据整个显示器。但是一旦应用被发现与前庭信号不一致的独立运动,就可以动态地减少主场景(例如,经渲染的第一场景113)的显示区域,使得场景被拉入视觉中心并且然后由占据用户周边视觉的辅助场景(例如,经渲染的第二场景114)环绕。

使用仅由头部跟踪运动(例如,从位置跟踪系统107接收的头部运动信息14)控制的相机来对经渲染的第二场景114(例如,周边场景)进行渲染,以匹配前庭感觉输入。周边场景提供抑制晕动病所必需的视觉线索17。该场景的元素可以与来自主场景的内容具有紧密关系,或者它们可以由完全分离的媒体集合组成。周边场景构成的示例包括:虚拟大厅区域,其包含来自包括主场景的游戏的艺术资产、虚拟影院环境或甚至是用户当前物理环境(通过空间重建、在HMD上存在的(多个)外部相机的重投影馈送、或者对于具有AR功能的显示器而言的现实世界的透明视图来实现)的显示。在一些实现中,周边场景以这样的方式构造:向用户提供具有细节的几何和纹理结构的强烈立体视觉线索。

如上面详细描述的,可以根据在其渲染中使用的矩阵来描述两个场景的相机控制。

在所有不是从头部跟踪导出的观看者运动停止预定的一段时间之后,可以动态地扩展回来经渲染的第一场景114(例如,主场景)以覆盖整个显示。内碟形区域的动画扩展优选于全视图的立即捕捉。然后,主场景可以保持完整覆盖,直到检测到另一辅助独立运动影响时,并且使得经渲染的第二场景114(例如,周边场景)再次可见。可能期望使得从全场景到双场景的该过渡更直接地提供即时锚定线索。对于经渲染的第一场景113和经渲染的第二场景114(例如,分别是主场景和周边场景)的相对直径,其可以部分地依赖于显示器的视场,并且甚至可以基于个体对晕动病的易感性而由用户控制。

现在参考图4,用于呈现VR图像的方法400可以在计算机设备102(图1)的操作系统110(图1)上实现。例如,方法400可以用于在显示设备106(例如,HMD)上显示由计算机设备102生成的虚拟现实模拟22的帧,显示设备106减少和/或防止用户在观看所呈现的帧时的不适,例如,模拟病或晕动病。

在402处,方法400可以包括从跟踪用户头部的位置和取向的位置跟踪系统接收头部运动信息。例如,(多个)应用10(图1)和/或操作系统110(图1)可以从位置跟踪系统107接收头部运动信息14(图1),位置跟踪系统107可以跟踪用户头部和/或显示设备106(例如,可以由用户穿戴的HMD)的位置和取向、用户正在观看的地方(例如,眼睛的注视方向)和/或用户的焦点。头部运动信息14可以对应于用户在现实世界中的移动。

在404处,方法400可以包括接收独立于头部运动信息的虚拟运动信息,以用于虚拟现实模拟。例如,(多个)应用10(图1)和/或操作系统110(图1)可以从一个或多个外部控制器108(图1)接收虚拟运动信息12(图1)。外部控制器108可以包括但不限于游戏手柄、操纵杆、键盘和鼠标。附加地,可以基于例如虚拟现实模拟22的设计来接收虚拟运动信息12。

在406处,方法400可以包括基于虚拟运动信息和头部运动信息来生成虚拟现实模拟的第一场景。与GPU 24组合的一个或多个应用10中的第一应用可以基于虚拟运动信息12和头部运动信息14来生成虚拟现实模拟22的第一场景16。第一场景16可以对应于虚拟世界11的主虚拟现实模拟115,并且可以具有跟踪虚拟世界11的运动的运动量。

在408处,方法400可以包括基于头部运动信息来生成视觉线索集合。例如,一个或多个应用10中的第一应用或第二应用或操作系统110可以基于所接收的头部运动信息14来生成一个或多个视觉线索17。可以基于从位置跟踪系统107接收的头部运动信息14来产生视觉线索17以及视觉线索17的相对运动,位置跟踪系统107可以监测显示设备106(例如,HMD)的位置、取向和移动。视觉线索17可以包括具有细节纹理结构的空间元素,以帮助将用户的晕动病最小化和/或抑制用户的晕动病。例如,视觉线索17可以包括但不限于:线条或抽象设计图案、灯光、火花、烟雾、雪花、气泡和颗粒效果。视觉线索17的纹理可以依赖于虚拟现实模拟22的第一场景16的内容,或者视觉线索17可以由整个单独的媒体集合组成。附加地,视觉线索17可以产生对大脑的视觉信号,该视觉信号可以与用户(例如,穿戴HMD)的前庭系统响应于用户的物理运动产生的视觉信号一致,而不会使用户从虚拟模拟22分散注意力。

在410处,方法400可以可选地包括生成具有视觉线索集合的虚拟现实模拟的第二场景。例如,(多个)应用10和/或操作系统110还可以例如基于运行的辅助虚拟现实模拟117、基于头部运动信息14来生成第二场景20,以***虚拟现实模拟22的第一场景16中或与虚拟现实模拟22的第一场景16组合。第二场景20可以包括与用户的前庭感觉信息匹配的视觉线索17。这样,第二场景20可以提供抑制和/或防止用户的晕动病所必需的视觉线索17。第二场景20,例如,基于运行的辅助虚拟现实模拟117,可以对应于不同的虚拟场景(与第一场景16相比)或者对应于原始虚拟场景(例如,第一场景16)的区域的独立视图。第二场景20中包括的元素可以与来自第一场景16的内容具有紧密关系,或者元素可以由完全分离的媒体集合组成。第二场景20可以以这样的方式构造:向用户提供具有细节的几何和纹理结构的强烈立体视觉线索17,以帮助将用户的晕动病最小化和/或抑制用户的晕动病。例如,对于虚拟大厅场景,视觉线索17可以包括但不限于搁架、墙壁上的线条或设计、灯具和家具。在另一示例中,如果包括视觉线索17的第二场景被选择为森林中的户外凹陷,则视觉线索17的细节可以包括树木、树叶和草。视觉线索17的几何形状和纹理依赖于所选择的场景。第二场景20可以包括独立于第一场景16的运动量,其中独立运动仅跟踪由用户的内耳感测的运动。例如,第二场景20的运动量基于来自位置跟踪系统107的头部运动信息14,位置跟踪系统107监测用户头部的运动和/或显示设备106(例如,HMD)的运动。

在412处,方法400可以包括对包括视觉线索集合(或可选地,第二场景)和虚拟现实模拟的第一场景的帧进行渲染。例如,一个或多个应用10中的第一应用(如果运行主虚拟现实模拟115和辅助虚拟现实模拟117两者)可以将视觉线索17(或第二场景16)和第一场景16组合,并且可选地将组合转发给合成器18。备选地,例如,合成器18可以单独地从应用10中的第一应用或第二应用或从操作系统110接收视觉线索17(或第二场景16),并且从应用10中的第一应用接收第一场景16。合成器18可以与GPU 24结合操作,以将视觉线索集合17(或第二场景16;或经渲染的视觉线索或第二场景114)和第一场景16(或经渲染的第一场景113)组合,从而得到表示虚拟现实模拟22中的场景的显示帧25。视觉线索17可以被放置在显示设备106的显示面板32上呈现的显示帧25的视图区域内的任何地方。在一个实现中,合成器18可以将视觉线索17(或经渲染的视觉线索114)组合在第一场景16(或经渲染的第一场景113)内,例如作为在整个第一场景16(或经渲染的第一场景113)上混合的视觉线索17(或经渲染的视觉线索114)的网格。在另一实现中,合成器18可以将第二场景20(或经渲染的视觉线索或第二场景114)组合在第一场景16(或经渲染的第一场景113)周围的周边区域中。

在414处,方法400可以包括发送虚拟现实模拟的帧,以在显示设备上呈现。例如,合成器18和/或GPU 24可以生成显示帧25并且可以与显示控制器26协作操作来确定何时发送显示帧25以在显示设备106上呈现,显示帧25包括经渲染的第一场景113和经渲染的视觉线索或第二场景114并且可选地包括过渡效果121。合成器18和/或GPU 24可以能够以显示设备106的刷新率生成用于虚拟现实模拟22的新的经渲染的显示帧25。例如,用于虚拟现实的刷新率可以是90Hz,从而得到每11毫秒刷新一次。

这样,呈现在显示设备106上的经渲染的显示帧25可以包括具有(多个)视觉线索17的经渲染的第一场景113,或经渲染的第一场景113和经渲染的第二场景114(其包括(多个)视觉线索17)。在一些实现中,经渲染的第一场景113对应于用户正在观看的中心区域或焦点区域,并且经渲染的第一场景113可以基于主虚拟现实模拟115并且可以具有与虚拟运动信息12对应的虚拟运动量。经渲染的第二场景114可以位于第一场景113周围的周边中,例如,在经渲染的第一场景113的焦点区域外部的区域中。此外,(多个)视觉线索17和/或经渲染的第二场景114具有例如相对于经渲染的第一场景113的运动的独立运动,其中独立运动仅与头部运动信息14相联系。经渲染的显示帧25还可以包括经渲染的第一场景113和视觉线索17和/或经渲染的第二场景114之间的过渡效果121。过渡效果121可以使得经渲染的第一场景113和视觉线索17和/或经渲染的第二场景114中的元素之间的不连续性在视觉上较不明显。因此,如本公开的方法和装置所生成的、具有与虚拟运动相关联的一个区域以及仅与头部运动相联系的另一区域的虚拟现实模拟22的显示帧25可以通过减少或消除来自用户眼睛和内耳的冲突信号来改善用户舒适度,从而减少或消除恶心、晕动病或眩晕。

现在参考图5,图示了可以由计算机设备102使用来生成显示虚拟世界11(图1)的虚拟现实模拟22(图1)的经渲染的显示帧25的方法500,经渲染的显示帧25由经渲染的第一场景113(图1)和经渲染的第二场景114(图1)限定,经渲染的第一场景113具有至少基于虚拟运动信息12的运动,经渲染的第二场景114在经渲染的第一场景113的周边、具有仅基于所接收的头部运动信息14的运动。当观看虚拟现实模拟22时,由于经渲染的第二场景114的运动类似于由用户的前庭系统感测的运动,在显示设备106(例如,HMD)上呈现显示帧25可以将用户不适最小化和/或防止用户不适(例如,模拟病或晕动病)。

所图示的方法500的实现包括一个或多个应用中第一应用生成第一场景16,以及操作系统110生成第二场景20。然而,如上所述,其他实现可以利用一个或多个应用10中的第一应用或一个或多个应用10中的第二应用生成第二场景。如下面所讨论的类似的动作将适用于那些其他实现。

在502和504处,方法500可以包括将所接收的虚拟运动信息和所接收的头部运动信息变换为虚拟坐标。可以将针对虚拟运动信息12和/或头部运动信息14接收的原始物理坐标转换为如在模拟的坐标系中表示的位置和取向。应用10中的第一应用可以将虚拟运动信息12和/或头部运动信息14转换为虚拟世界11中的相关联的角色运动。例如,应用10中的第一应用可以将所接收的头部运动信息14和/或者所接收的虚拟运动信息12转换为在VR设备设置期间建立的可能被修改的“游戏空间”姿势(例如,将空间的原点/中心从由绝对传感器定位使用外向内跟踪系统指定的原点/中心修改为由用户基于家具或房间中的其他物体选择房间中心时指定的原点/中心),并且然后可能转换为模拟中的虚拟用户姿势(例如,跟踪系统可以维持以米为单位的坐标,而游戏可以以英尺为单位建立其自己的坐标系,跟踪系统也可以将前向方向Z视为正值,而模拟可以使用负Z值表达前向)。

在506处,方法500可以包括将虚拟运动信息和头部运动信息的虚拟坐标组合,以确定虚拟世界中的角色位置。例如,应用10中的第一应用可以使用第一变换矩阵(例如,如上所述的W*Vsimulation*Vhead*P)来将虚拟头部运动信息504和虚拟运动信息502组合,以确定虚拟世界11中的角色和/或对象的虚拟位置。一个或多个应用10中的第一应用可以首先将模型几何变换为世界空间,之后变换为模拟中的用户的虚拟位置和取向,之后是通过头部跟踪的姿势(例如,头部运动信息14)指定的相对重新定位/重新定向。

在508和510处,方法500可以包括对第一场景图像帧进行渲染并输出第一场景图像帧。应用10中的第一应用可以基于虚拟世界11中的场景的角色和/或对象的虚拟位置来生成虚拟世界11的第一场景16(图1)。在一个实现中,应用10中的第一应用可以基于运行的主虚拟现实模拟115来生成第一场景16。第一场景16可以对应于虚拟场景的原始视图区域并且可以跟踪虚拟场景的运动。应用10中的第一应用还可以输出第一场景16的投影以用于显示。例如,应用10中的第一应用可以将第一场景16发送到GPU 24,以对第一场景16进行渲染,从而输出经渲染的第一场景113。

在512处,方法500可以包括将所接收的头部运动信息变换到锚定环境坐标。例如,操作系统110可以在针对第二场景20对每个眼睛进行渲染时,使用第二变换矩阵(例如,如上所述的W*Vhead*P)。

在514和516处,方法500可以包括对第二场景图像帧进行渲染并输出第二场景图像帧。操作系统110可以基于头部运动信息14,针对第一场景16周边的锚定环境对第二场景20进行渲染。第二场景20可以基于辅助虚拟现实模拟117,并且可以对应于不同的虚拟场景或者对应于原始虚拟场景区域的独立视图。第二场景20中包括的元素可以与来自第一场景16的内容具有紧密关系,或者元素可以由完全独立的媒体集合组成。第二场景20可以具有独立于虚拟场景(例如,第一场景16)的运动的运动量。具体地,锚定环境的周边区域可以具有跟踪由用户内耳感测的运动的运动量(例如,仅基于来自位置跟踪设备107的头部运动信息14的运动量)。在一个实现中,第二场景20包括视觉线索17或者是视觉线索17的形式。此外,例如,操作系统110可以将第二场景20发送到GPU 24,以对第二场景20进行渲染,从而输出经渲染的视觉线索或第二场景114。

在518处,方法500可以包括将经渲染的第二场景图像帧和经渲染的第一场景图像帧组合,并输出经组合的显示图像以用于显示。合成器18可以可选地基于经更新的头部运动信息14,将经渲染的第一场景113和/或经渲染的视觉线索或第二场景114重投影。合成器18可以通过将经渲染的第一场景113和经渲染的视觉线索或第二场景114组合来生成经组合的图像帧(例如,显示帧25)。经组合的图像帧可以包括经渲染的第一场景113和经渲染的视觉线索或第二场景114之间的过渡效果121。过渡效果121可以使得经渲染的第一场景113与经渲染的视觉线索或者第二场景114中的元素之间的不连续性在视觉上较不明显。合成器18可以输出经组合的图像帧(例如,显示帧25),以在显示设备106上显示。

在520处,方法500可以包括显示经组合的虚拟图像。所显示的经组合的虚拟图像(例如,显示帧)可以包括具有第一显示区域的经渲染的第一场景113,第一显示区域具有跟踪虚拟场景的运动的运动量(例如,对应于虚拟运动信息12)。同时,经渲染的第二场景114可以在经渲染的第一场景113的周边,并且可以具有与第一显示区域不同的第二显示区域。显示帧25中由经渲染的第二场景114占据的周边区域可以具有独立于虚拟场景(例如,经渲染的第一场景113)的运动的运动量。具体地,周边区域可以具有跟踪由用户的内耳感测的运动的运动量,例如,基于来自位置跟踪系统107的头部运动信息14的运动量。这样,显示帧25的经组合的图像可以通过减少或消除来自用户眼睛和内耳的冲突信号来提高用户舒适度,从而减少或消除恶心、晕动病或眩晕。

现在参考图6,图示了根据实现的计算机设备102的一个示例,与图1相比,计算机设备102包括附加组件细节。

计算机设备102可以包括通信组件40,提供通信组件40用于利用如本文所述的硬件、软件和服务来建立和维持与一方或多方的通信。通信组件40可以承载计算机设备102上的组件之间的通信以及计算机设备102和外部设备(例如,位于通信网络上的设备和/或串行或本地连接到计算机设备102的设备)之间的通信。例如,通信组件40可以包括一个或多个总线,并且还可以包括可操作用于与外部设备接口、分别与发射器和接收器相关联的发射链组件和接收链组件。

附加地,计算机设备102可以包括数据存储库42,数据存储库42可以是硬件和/或软件的任何合适的组合,其提供结合本文所描述的实现采用的信息、数据库和程序的大容量存储。例如,数据存储库42可以是针对应用10(图1)、合成器18(图1)、GPU 24(图1)、显示控制器26(图1)和/或显示接口28(图1)的数据储存库。

计算机设备102还可以包括用户接口组件44,用户接口组件44可操作以从计算机设备102的用户接收输入,并且还可操作以生成用于呈现给用户的输出。用户接口组件44可以包括一个或多个输入设备,包括但不限于键盘、数字键盘、鼠标、触敏显示器、导航键、功能键、麦克风、语音识别组件、能够接收来自用户的输入的任何其他机制或其任何组合。此外,用户接口组件44可以包括一个或多个输出设备,包括但不限于显示器、扬声器、触觉反馈机制、打印机、能够向用户呈现输出的任何其他机制或其任何组合。

在一个实现中,用户接口组件44可以发送和/或接收与应用10、合成器18、GPU 24、显示控制器26和/或显示接口28的操作相对应的消息。此外,处理器36执行应用10、合成器18、GPU 24、显示控制器26和/或显示接口28,并且存储器38或数据存储库42可以存储它们。

如在本申请中所使用的,术语“组件”、“系统”等旨在包括计算机相关实体,例如但不限于硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,组件可以是但不限于在处理器上运行的进程、处理器、对象、可执行文件、执行的线程、程序和/或计算机。通过图示,在计算机设备上运行的应用和计算机设备都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程内,并且组件可以位于一个计算机上和/或分布在两个或更多个计算机之间。附加地,这些组件可以从其上存储有各种数据结构的各种计算机可读介质来执行。组件可以例如根据具有一个或多个数据分组(例如,来自与本地系统、分布式系统和/或跨网络(例如,因特网)的另一组件交互的一个组件的数据)的信号,通过本地和/或远程过程进行通信和/或通过信号的方式与其他系统通信。

此外,术语“或”旨在表示包含性的“或”而不是排他性的“或”。即,除非另有说明或从上下文中清楚,否则短语“X采用A或B”旨在表示自然的包容性排列中的任一个。即,通过以下情况中的任一个满足短语“X采用A或B”:X采用A;X采用B;或者X采用A和B。附加地,针对单数形式,除非另有说明或从上下文中清楚,否则本申请和所附权利要求中使用的冠词“一(a)”和“一个(an)”通常应当理解为表示“一个或多个”。

可以根据可以包括若干设备、组件、模块等的系统来呈现各种实现或特征。应当理解和了解,各种系统可以包括附加设备、组件、模块等和/或可以不包括结合附图所讨论的所有设备、组件、模块等。也可以使用这些方法的组合。

可以使用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、离散门或晶体管逻辑、分立硬件组件中的专用于编程的一个或其被设计用于执行本文所述的功能的任何组合来实现或执行结合本文中所公开的实施例描述的方法的各种示例性逻辑、逻辑块和动作。通用处理器可以是微处理器,但是备选地,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可以被实现为计算机设备的组合(例如,DSP和微处理器的组合)、多个微处理器、一个或多个微处理器结合DSP内核或任何其他这样的配置。附加地,至少一个处理器可以包括可操作来执行上述步骤和/或动作中的一个或多个的一个或多个组件。

此外,结合本文中所公开的实现而描述的方法或算法的步骤和/或动作可以直接体现于硬件中、由处理器执行的软件模块中或两者的组合中。软件模块可以驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中已知的任何其他形式的存储介质中。示例性存储介质可以耦合到处理器,使得处理器可以从存储介质读取信息并向存储介质写入信息。在备选方案中,存储介质可以是处理器的组成部分。此外,在一些实现中,处理器和存储介质可以驻留在ASIC中。附加地,ASIC可以驻留在用户终端中。在备选方案中,处理器和存储介质可以作为分立组件驻留在用户终端中。附加地,在一些实现中,方法或算法的步骤和/或动作可以作为代码和/或指令的一个或任何组合或集合驻留在可以并入计算机程序产品的机器可读介质和/或计算机可读介质上。

在一个或多个实现中,所描述的功能可以硬件、软件、固件或其任何组合来实现。如果以软件实现,则可以将功能作为一个或多个指令或代码存储或传输到计算机可读介质上。计算机可读介质包括计算机存储介质和通信介质,通信介质包括便于将计算机程序从一个地方传递到另一地方的任何介质。存储介质可以是可由计算机访问的任何可用介质。作为示例而非限制,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储装置、磁盘存储装置或其他磁存储设备或可用于以指令或数据结构的方式存储期望的程序代码并且可由计算机访问的任何其他介质。本文所使用的磁盘和光盘包括光碟(CD)、激光光盘、光盘、数字通用光盘(DVD)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘通常用激光光学地再现数据。上述的组合也应包括在计算机可读介质的范围内。

虽然已结合其示例描述了本公开的实现,但是本领域技术人员将理解,可以在不脱离本发明的范围的情况下,对上述实现进行变化和修改。通过考虑说明书或根据本文所公开的示例的实践,其他实现对于本领域技术人员而言将是显而易见的。

27页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:游戏装置及游戏方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类