一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

虚拟现实中的现实引导的漫游的制作方法

2021-11-06 06:12:00 来源:中国专利 TAG:

虚拟现实中的现实引导的漫游


背景技术:

1.虚拟现实技术采用专门的计算硬件和软件来为用户提供感知真实和完全沉浸式的虚拟环境以与之交互和探索。虚拟现实技术可以将用户置于虚拟的、计算机生成的环境中,在那里他们可以感知其中渲染的虚拟对象并且与之交互。虽然虚拟环境及其中的虚拟对象可以显得存在于用户感知的虚拟环境中,但是它们通常不存在于用户的直接物理世界中。反过来,通常也可以这样说,更具体地,存在于用户的直接物理环境中的对象通常不存在于用户感知的虚拟环境中。
2.虚拟环境和在虚拟现实中感知的虚拟对象被图形化地渲染用于立体显示,以被佩戴完全沉浸式虚拟现实装备(诸如,头戴式显示器)的用户所感知。凭借其完全沉浸式性质,虚拟现实技术限制了用户查看其物理周围环境的能力,或者换句话说,用户的真实世界环境。从本质上讲,用户的真实世界环境与用户在真实世界环境内感知的完全沉浸式虚拟环境之间存在明显的脱节。


技术实现要素:

3.本文描述的实施例提供了用于动态地渲染和更新完全沉浸式虚拟环境以安全地引导真实世界漫游的系统和技术。更具体地,被耦合到头戴式显示器(hmd)的计算设备接收来自多个传感器的传感器数据。本质上,传感器尤其跟踪周围物理环境和其中的物理障碍,生成与存在于周围物理环境中的物理对象或障碍相对应的传感器数据。传感器数据由计算设备实时处理以动态地渲染和更新完全沉浸式虚拟环境,该完全沉浸式虚拟环境至少部分地对应于所跟踪的周围物理环境和物理障碍。虚拟环境被动态地调节以影响用户的路线并且避免在真实世界中检测的静态和移动障碍物。换句话说,虚拟环境被即时更新以重指引用户的真实世界穿越路径并且防止碰撞。以这种方式,佩戴hmd的用户可以安全地穿越(例如,漫游、走过)真实世界环境,同时完全沉浸在(即,仅感知)虚拟环境中。
4.本发明内容被提供来以简化的形式介绍以下在具体实施方式中进一步描述的概念的选择。本发明内容不旨在标识要求保护的主题的关键特征或必要特征,也不旨在单独被用来帮助确定要求保护的主题的范围。
附图说明
5.下面结合附图详细说明本发明,其中:
6.图1描绘了根据本公开的一些实施例的示出了用于基于传感器数据即时渲染和更新虚拟环境和/或虚拟对象的示例性操作环境和示例性实现的各种图示;
7.图2描绘了根据本公开的一些实施例的示出了用于基于传感器数据即时渲染和更新虚拟环境和/或虚拟对象的示例性实现的各种图示;
8.图3描绘了根据本公开的一些实施例的示出了用于基于传感器数据即时渲染和更新虚拟环境和/或虚拟对象的示例性实现的各种图示;
9.图4描绘了根据本公开的一些实施例的示出了用于基于传感器数据即时渲染和更
新虚拟环境和/或虚拟对象的示例性实现的各种图示;
10.图5描绘了根据本公开的一些实施例的示出了用于基于传感器数据即时渲染和更新虚拟环境和/或虚拟对象的示例性实现的各种图示;
11.图6是根据本公开的一些实施例的用于基于传感器数据即时渲染和更新虚拟环境和/或虚拟对象的示例性操作环境的框图;
12.图7是根据本公开的一些实施例的用于基于传感器数据即时渲染和更新虚拟环境和/或虚拟对象的示例性vr漫游跟踪设备的框图;
13.图8是描绘了根据本公开的一些实施例的用于基于传感器数据即时渲染和更新虚拟环境和/或虚拟对象的示例性过程流程的流程图;
14.图9是根据本公开的一些实施例的用于基于传感器数据即时渲染和更新虚拟环境和/或虚拟对象的另一示例性vr漫游跟踪设备的框图;
15.图10描绘了根据本公开的一些实施例的示出了确定的可行走路线和选择的虚拟路径的各种图示;
16.图11是描绘了根据本公开的一些实施例的用于基于传感器数据即时渲染和更新虚拟环境和/或虚拟对象的另一示例性过程流程的流程图;
17.图12是描绘了根据本公开的一些实施例的实时环境感测子系统的示例性过程流程的流程图;
18.图13是示出了根据本公开的一些实施例的用于基于接收的传感器数据实时地动态渲染和更新完全沉浸式虚拟环境的方法的流程图;
19.图14是示出了根据本公开的一些实施例的用于基于接收的传感器数据实时地动态渲染和更新完全沉浸式虚拟环境的方法的流程图;
20.图15是适合于根据本公开的一些实施例使用的示例性计算环境的框图。
具体实施方式
21.沉浸式技术是指在本质上模糊了物理世界和模拟世界之间的界限的感知和交互技术。感知技术可以欺骗用户的大脑相信在虚拟空间中感知的数字信息是真实的。另一方面,交互技术可以识别在物理空间中检测的用户输出(例如,语音、手势、移动等),并且可以相应地在虚拟空间中对它做出响应。合在一起,感知和交互技术可以为用户提供一种错觉,即沉浸式虚拟环境或“虚拟世界”就像他们所存在的物理环境或“物理世界”一样真实。
22.虚拟现实(vr)是一种完全沉浸式技术,在其中该技术的用户只能感知渲染的虚拟环境和其中的虚拟对象,就好像所感知的视觉信息是他们当前的现实一样。当沉浸在虚拟世界中时,通常是在佩戴头戴式显示器(hmd)时,用户在视觉上与真实世界脱节。换句话说,虽然用户仍然可以在真实世界中进行物理漫游,但是用户只能感知所显示的虚拟世界和其中的虚拟对象。所感知的虚拟世界和被掩盖的物理世界之间的脱节在用户体验方面呈现出缺陷。更具体地说,对于用户来说,在了解他们的周围物理环境内的内容与沉浸在虚拟世界中之间存在感官脱节。这种脱节不仅限制了虚拟现实体验的潜力,而且对用户构成了危险,他们很容易在没有意识的情况下与物理世界中的对象发生碰撞。
23.已经做出各种努力来解决这种感官脱节的缺点。例如,传统的vr系统通常依赖于使用诸如空房间或仓库的大型空旷空间,它们相对没有可能干扰用户漫游路径的障碍物。
其他传统的vr系统包括光学扫描仪,它必须扫描整个静态物理空间以生成可以从其中重建虚拟世界的模型。然而,这些传统的vr系统要求物理环境在使用之间保持不变。然而,这样的实现是不切实际的,因为它们不能促进到陌生环境的可移植性,也没有考虑到真实世界的真正动态性质。更具体地说,传统的vr系统不能保护用户在完全沉浸在虚拟现实中的同时在新的或动态的真实世界环境中物理漫游时免受物理障碍物的碰撞。
24.如将在整个本公开中利用的,术语“真实世界”或“物理”可以互换使用,两者都对应于有形或非虚拟环境或对象。此外,术语“即时”或“实时”可互换地进行参考以对应于响应行为,诸如响应于数据或信号(例如,来自传感器)的接收而执行操作。尽管在一些情形中这样的响应行为可能在速度或响应时间方面受到限制,但是设想以优选地基本上瞬时(例如,小于1秒)的方式来执行响应行为。此外,如将在整个本公开中利用的,术语“渲染”和“生成”可互换地进行参考以对应于虚拟对象或环境的数字创建,诸如可以被提供用于显示给hmd的虚拟对象或环境。术语“对象”和“障碍物”也可互换地进行参考以对应于无论是在虚拟环境还是物理环境中都可感知的“事物”。对象或障碍物通常包括墙壁、人、动物、家具、植物或任何可能干扰用户穿越路径的有形对象。在一些方面,对象或障碍物可以基于传感器数据而被检测,并且通常包括被确定为高于参考高度(例如,基于传感器数据而被确定的地板高度)的任何对象。本领域普通技术人员可以理解,物理环境内的移动(例如,穿越、行走、漫游)可以对应于虚拟环境内的感知移动。也就是说,当用户在他们的物理环境中改变他/她的位置(例如,迈出一步)时,在该位置的对应变化可以在所感知的虚拟环境中被感知到。就此而言,在一些方面,物理环境中的物理对象的维度(例如,宽度、长度、高度、相对距离)可以对应于虚拟环境中的虚拟对象。
25.在高级别处,本公开的实施例通常提供用于实时地动态渲染和更新完全沉浸式虚拟环境或“场景”的系统和方法,以安全地引导在陌生的(例如,未预先扫描或建模的)或动态的物理环境中的真实世界漫游。换句话说,本文所公开的各种实施例可以跟踪用户的物理环境以促进即时动态虚拟场景适应,以保护用户免受碰撞。在各种实施例中,被耦合到头戴式显示器(hmd)的计算设备从跟踪hmd定位、取向和周围物理环境等的多个传感器接收传感器数据。在各个方面中,传感器中的一些传感器可以基于检测的hmd的移动来生成与hmd相关联的跟踪数据(例如,取向、定位、移动)。一些其他传感器可以基于在物理环境内检测的物理对象或障碍物来生成环境数据(例如,深度帧)。跟踪数据和环境传感器数据由计算设备即时处理,以响应地渲染完全沉浸式虚拟环境。当用户在物理环境中漫游且hmd发生位移时,计算设备会不断更新所渲染的完全沉浸式虚拟环境,基于新接收的跟踪数据和环境数据来即时模拟用户在虚拟环境中的虚拟移动。虚拟环境动态地适应于影响用户的行进路线,在虚拟环境中响应地渲染和/或移动与在真实世界内检测的静态或动态物理对象相对应的虚拟对象。换句话说,虚拟环境即时被更新,以重新指向引用户在真实世界的穿越路径,并且防止与真实世界中的物理对象发生碰撞。以这种方式,佩戴hmd的用户可以安全地穿越(例如,漫游、走过)真实世界环境,同时完全沉浸在(即,仅感知)虚拟环境中。
26.参考图1

图5进一步提供本文所公开的各种实施例的简要概述。参考图1,图示105描绘了根据本公开的一些实施例的用户在佩戴被耦合到计算设备的hmd的同时在物理环境中漫游。hmd为用户提供了完全沉浸式虚拟现实体验,以使得用户只能感知正在由计算设备立体渲染并且由hmd显示的虚拟环境。另一图示110a描绘了用户如果没有佩戴hmd并且没有
完全沉浸在虚拟环境中的情况下可以从他/她的视场中感知到的东西的示例性视觉图像。除了示例性动态物理对象(例如,人、手推车)之外,图示110a还描绘了各种示例性静态物理对象(例如,沙发、椅子、墙壁、植物、桌子)。
27.与图示110a相比,图示110b描绘了用户在佩戴hmd并且完全沉浸在虚拟环境中时可以从相同视场感知到的东西的示例性视觉图像。根据各种实施例,计算设备可以采用连续跟踪hmd的取向、定位、位置和物理环境等的传感器。基于从传感器收集的传感器数据,计算设备可以在接收传感器数据时渲染和更新虚拟环境,该虚拟环境包括与在物理环境内检测的物理对象相对应的虚拟对象。在这方面,图示110b描绘了其中具有各种虚拟对象(例如,骑士、尖刺、墙壁)的虚拟环境(例如,地牢)。计算设备可以基于接收的对应于物理环境的传感器数据来确定物理对象存在并且阻碍(例如,物理上高于地面)物理上的可导航通路。在一些方面,计算设备可以确定某些物理对象(例如,人)正在移动而其他(例如,沙发、椅子、植物)没有移动。这样,计算设备可以针对确定的移动物理对象选择移动虚拟对象(例如,骑士),并且针对确定的非移动物理对象选择非移动虚拟对象(例如,来自地面的尖刺)。诸如视觉分类、特征(例如,高度、速度、特性)检测等的其他技术可以被采用以选择移动或非移动虚拟对象,甚至特定移动或非移动虚拟对象。
28.现在参考图2,根据本公开的一些实施例,提供了各种图示来描绘即时渲染和更新虚拟环境和/或与物理环境和/或物理对象相对应的虚拟对象的示例性实现。图示210a描绘了用户如果没有佩戴hmd并且没有完全沉浸在虚拟环境中的情况下可以从他/她的视场中感知到的东西的示例性视觉图像。与图示210a对照而言,图示210b描绘了用户在佩戴hmd并且完全沉浸在虚拟环境中时可以从相同的视场感知到的东西的示例性视觉图像。如在图示210b中呈现的虚拟环境中可见,虚拟环境由对应于物理环境中的物理障碍物(例如,墙壁、结构)的第一虚拟墙来有界化。虚拟环境还以左侧的第二虚拟墙和右侧的第三虚拟墙来有界化。虽然图示210a没有描绘左侧或右侧的物理障碍物,但是可以设想,超出第二虚拟墙和第三虚拟墙的物理区域可以是物理上可导航的或者其中具有其他物理对象。在210b中描绘的第二虚拟墙和第三虚拟墙由计算设备渲染以有效推迟针对那些对应物理区域的虚拟环境的渲染和更新,直到更多与这样的区域相对应的传感器数据(例如,用户更靠近这些物理区域)被接收。为此,在一些实施例中,计算设备可以即时生成虚拟房间(例如,虚拟墙有界化的区域)或虚拟廊道(例如,虚拟走廊)以在任何给定时间处基于物理环境有效地限制虚拟环境的渲染和/或更新量,从而提供更流畅、更高效的物理到虚拟的体验。
29.在一些方面,如果传感器数据指示物理空间(如图示210a中所描绘的)足够以渲染虚拟房间,则虚拟房间(如图示210b中所描绘的)可以被渲染。然而,在一些实例中,物理空间的充足性可能是不可确定的。因此,如果超出特定物理区域的足够物理空间是不可确定的(例如,在传感器的视场之外,没有收集到足够的数据),则计算设备可以采用一种或多种虚拟引导技术来指引用户移动靠近该特定的物理位置,以使得附加的传感器数据可以被收集。例如,虚拟门或其他虚拟障碍物可以沿着虚拟墙壁或虚拟廊道放置,这可以呈现阻止用户感知位于前方的东西的逼真的障碍物。这种虚拟障碍物可以被渲染为与物理边界相对应,这些物理边界是检测的、以编程方式定义的,或者是基于有限的传感器数据或处理状态而被重建的,等等。
30.举例来说,图示220a描绘了用户如果没有佩戴hmd并且没有完全沉浸在虚拟环境
中的情况下可以从他/她的视场中感知到的东西的示例性视觉图像。与图示220a对照而言,图示220b描绘了用户在佩戴hmd并且完全沉浸在虚拟环境中时可以从相同的视场感知到的东西的示例性视觉图像。在该示例中,计算设备可以基于接收的传感器数据来确定物理走廊的物理墙存在(如图示220a中所描绘的),因为它们相对靠近传感器,但不能确定位于前方是什么东西,无论是由于传感器分辨率、照明条件、处理或编程限制等等。这样,计算设备可以渲染对应于物理墙(如图示220a中所描绘的)的虚拟墙(如图示220b中所描绘的),并且渲染虚拟门(如图示220b中所描绘的),该虚拟门指引用户沿物理走廊向下移动,直到附加的传感器数据可以被收集。在一些方面,一旦用户到达对应于虚拟门的物理位置,虚拟门就可以在到达对应的物理位置后被自动打开,或者基于检测的用户输入(例如,感测的物理交互或其他输入)或其他技术而被打开。当新的传感器数据在对应的物理位置处被收集时,计算设备可以相应地基于新的传感器数据渲染另一虚拟环境和/或虚拟对象。
31.在一些方面,传感器数据可以指示用户简单地不能移出物理区域。举例来说,图示230a描绘了用户如果没有佩戴hmd并且没有完全沉浸在虚拟环境中时可以从他/她的视场中感知到的东西的示例性视觉图像。与图示230a对照而言,图示230b描绘了用户在佩戴hmd并且完全沉浸在虚拟环境中时可以从相同视场感知到的东西的示例性视觉图像。在该示例中,计算设备可以确定物理房间的物理墙存在,或者对象完全阻挡了用户的可导航路径(如图示230a中所描绘的)。这样,计算设备可以渲染对应于物理墙或物理对象的虚拟墙(如图示230b中所描绘的),渲染用户从其中无法逃离的完全封闭的虚拟房间。
32.在一些方面,计算设备可以简单地限制渲染的虚拟房间或虚拟廊道的一个或多个维度。在一些方面,如所简要描述的,虚拟房间或虚拟廊道可以基于接收的传感器数据指示物理环境内存在一个或多个周围墙壁或无法通过的障碍物的确定而被生成。在一些另外方面,除了限制生成的虚拟房间或廊道的一个或多个维度的预定义的虚拟维度之外,虚拟房间或虚拟走廊还可以基于前述内容而被生成。本质上,预定义的虚拟维度可以限制任何生成的虚拟房间的维度,即使传感器数据指示延伸超出对应虚拟维度的物理维度至少部分地没有物理障碍物。以这种方式,预定义的虚拟维度可以促进各种益处,无论与计算效率相关或者与用户体验相关。
33.现在参见图3,根据本公开的一些实施例,提供了各种图示以描绘被采用来在即时渲染虚拟环境和虚拟对象的同时减轻滞后或减少延迟并且还保持逼真的和主题的虚拟体验的示例性技术。图示310描绘了用户在佩戴hmd并且完全沉浸在虚拟环境中时可以从他们的视场中感知到的东西(例如,虚拟门)的示例性视觉图像。虚拟门可以被渲染来指示可能存在超出用户在物理世界中所站立的地方的可导航区域。在各种实施例中,虚拟门(或任何其他虚拟障碍物)可以被渲染来引导用户在物理上接近物理环境中的虚拟门的对应物理位置。在一些实施例中,虚拟门可以通向未被发现的房间,或者换言之,尚未被用户感知到的虚拟区域。在一些方面,如果计算设备基于在虚拟门的位置处或附近接收的传感器数据确定超出虚拟门的位置有物理可导航区域可用,则虚拟门可以被打开。在一些其他方面,计算设备可以确定传感器数据指示对应区域在物理上不可导航,并且阻止打开虚拟门。
34.假设虚拟门被打开,虚拟门的打开可以显露另一虚拟房间或廊道等等。图示320a描绘了如果在虚拟门打开之后用户如果没有佩戴hmd并且没有完全沉浸在虚拟环境中时可以从他/她的视场中感知到的东西的示例性视觉图像。图示320a描绘了行人站立在用户面
前的物理可导航区域。在一些实施例中,计算设备可以基于接收的传感器数据确定物理对象(例如,来自物理环境的行人)存在(例如,站在用户面前)。这样,计算设备可以渲染与检测的物理对象相对应的虚拟对象。图示320b描绘了用户在佩戴hmd并且完全沉浸在虚拟环境中时可以从他/她的视场中感知到的东西的示例性对应视觉图像。图示320b描绘了主题上一致的房间(例如,与地牢主题一致),房间具有的可导航路径被主题上一致的虚拟障碍物(例如,从地面升起的虚拟尖刺)部分地阻挡。虚拟障碍物的虚拟位置对应于物理对象(例如,图示320a的行人)的物理位置。
35.在一些实施例中,计算设备可以基于接收的传感器数据确定物理对象的一个或多个特性,诸如物理对象的移动(例如,相对于(多个)传感器)、移动的速度、物理对象的一个或多个维度,或物理对象到(多个)传感器的相对物理距离等等。基于任何一个或多个特性,计算设备可以选择多个虚拟对象中的一个虚拟对象作为物理对象的虚拟表示插入到虚拟环境里面。在一些方面,为了保持主题一致性并且避免某些虚拟对象的尴尬或突然的出现,可以选择主题上一致的虚拟对象(例如,从图示320b的虚拟地板升起的尖刺)以插入到虚拟环境里面。在该非限制性示例中,上升机构(即,虚拟尖刺)是主题上一致的(例如,地牢主题)并且还促进了逼真的虚拟体验,即使物理对象是在不久前被检测的(例如,该对象只是走步进入到用户的可导航区域中,用户只转向物理对象)。在这种实例中,计算设备选择上升机构作为虚拟表示,因为物理对象没有移动,并且物理对象物理上位于距(多个)传感器和/或hmd的阈值相对距离内的确定被做出。
36.图示330a

图示330b提供了视觉图像的进一步示例,描绘了具有物理对象的物理环境(如图示330a中所描绘的)和具有虚拟对象的对应虚拟环境(如图示330b中所描绘的),每个环境都从用户在相应的非沉浸式(即,物理)和完全沉浸式(即,虚拟)环境中从他/她的视场中被感知到。图示330b描绘了虚拟“熔岩地”,其描写了所确定的物理可导航路径,同时可以采用上升机构(例如,可行走的瓦片)或下降机构(例如,下沉的瓦片)来虚拟地表示检测的物理障碍物或不可导航的路径,等等。类似地,图示340a

340b提供了视觉图像的附加示例,描绘了物理环境(例如,如图340a中描绘的办公室走廊)和对应的虚拟环境(如在图示340b中描绘的),具有类似tron的效果,其本质上呈现了所确定的可导航区域或路径以及检测的障碍物(例如,办公室走廊中的墙壁或其他障碍物)。
37.现在参考图4,图示410a描绘了根据本公开的一些进一步实施例的用户在佩戴被耦合到计算设备的hmd时漫游室外(例如,不被墙有界化的)物理环境。类似于参考图1所描述的实施例,hmd为用户提供了完全沉浸式虚拟现实体验,以使得用户只能感知正在由计算设备立体渲染并且由hmd显示的虚拟环境。在图示410a中,用户正在漫游的物理环境是室外,或者换言之,在不被建筑物结构的物理墙有界化的区域中。除了示例性动态物理对象(例如,行走的人)之外,图示410a还描绘了各种示例性静态物理对象(例如,建筑物、桌子、长凳)。与图示410a对照而言,图示410b描绘了图示410a的用户在佩戴hmd并且完全沉浸在对应的虚拟环境中时可以从他/她的视场中感知到的东西的示例性视觉图像。
38.如所注意的,计算设备可以采用连续跟踪hmd的取向、定位、位置和物理环境等等的传感器。基于从传感器收集的传感器数据,计算设备可以在传感器数据被接收时渲染和更新虚拟环境,该虚拟环境包括与在物理环境内检测的物理对象相对应的虚拟对象。在一些方面,传感器可以包括诸如导航传感器或全球定位系统(gps)的位置传感器,位置传感器
可以在任何给定时间处跟踪其位置(从而跟踪用户)。设想在本公开的范围内可以采用能够确定位置(例如,蓝牙、wi

fi、小区或无线电塔三角测量等等)的任何类型的传感器或传感器集。就此而言,计算设备可以采用电子地图或其他导航数据,其他导航数据可以在任何给定时间处确定用户相对于他/她的物理周围环境的位置。通过确定用户在地图上的位置,诸如描绘用户位置的鸟瞰图的俯视图,计算设备可以确定:可以相对于用户的位置定位物理障碍物(例如,树木、路缘、建筑物)或回避区域(例如,街道、水面、私有财产)。
39.就此而言,图示410b描绘了其中具有各种虚拟对象(例如,建筑物、行人)的虚拟环境(例如,城市街道)。计算设备可以基于接收的对应于物理环境的传感器数据来确定物理对象存在并且阻碍(例如,物理上高于地面)物理可导航通路。在一些方面,物理可导航通路可以基于地图数据和用户的确定的位置而被确定。此外,物理障碍物的位置可以基于根据地图数据的它们的已知位置及其与用户的相对定位而被确定。在一些方面,计算设备可以确定某些物理对象(例如,人、车辆、动物)正在移动而其他(例如,灌木、桌子、椅子、停放的)没有移动。这样,计算设备可以针对确定的移动物理对象选择移动虚拟对象(例如,行人),或者针对确定的非移动物理对象选择非移动虚拟对象(例如,灌木、树)。诸如视觉分类、特征(例如,高度、速度、特性)检测等的其他技术可以被采用来选择移动或非移动虚拟对象,甚至特定移动或非移动虚拟对象。在一些实施例中,如果用户正在室外环境中导航的确定被做出,则计算设备可以选择移动虚拟对象来表示所有未知物理对象,或者换言之,检测的物理对象尚未通过地图数据的方式被确定存在。以这种方式,在控制较少的环境中,诸如室外物理环境,任何检测的物理对象的表示通常可以用移动虚拟对象来表示,以促进室外物理环境的真实性和真正动态性质。
40.现在参见图5,图示510a

图示510b提供了视觉图像的另外示例,描绘了由传感器集从视场中作为输入接收的具有物理对象的物理室外环境(如图示510a中所描绘的),以及由佩戴hmd的用户从相同视场感知到的具有虚拟对象的对应虚拟环境(如图示510b中所描绘的)。在各种实施例中,计算设备可以基于所确定的位置数据和所获取的地图数据等来确定相对于用户的物理位置的某些静态物理障碍物(例如,建筑物、街道或其他不可导航区域)的相对位置和/或维度。图示510a描绘了具有可以从地图数据确定的位置和/或维度的建筑物520a。建筑物520a相对于用户定位的位置可以基于用户的物理位置和建筑物520a的已知物理位置而被确定。就此而言,计算设备可以基于在地图数据中定义的对应物理对象来确定特定虚拟障碍物是静态障碍物,并且渲染对应的静态虚拟对象(例如,图示510b的虚拟建筑物520b)以对应于建筑物520a的确定的物理位置和/或维度。
41.在一些实施例中,由(多个)传感器检测的并且不与地图数据中所定义的物理对象相对应的物理对象可以被确定为特设(ad

hoc)物理对象。在一些方面,特设物理对象(例如,灌木530a)可以是静态物理对象或动态物理对象(例如,行人540a)。在一些实施例中,(多个)传感器可以检测特设物理对象并且生成对应的虚拟对象来表示检测的特设物理对象。在优选实施例中,任何或所有确定的特设物理对象可以用移动虚拟对象来表示,诸如图示510b的虚拟行人530b和540b。在一些实例中,计算设备可以基于多种因素来区分静态或动态的特设物理对象,诸如检测的移动、视觉分类或经由(多个)传感器检测的其他关联的特性。上面根据图1

图5提供的描述被提供来说明本公开的各种实施例,并且不旨在以任何方式进行限制。
42.现在转向图6,提供了示出在其中可以采用本公开的一些实施例的示例操作环境600的框图。应当理解,本文所描述的该布置和其他布置仅作为示例来阐述。除了所示的那些之外或代替所示的那些,可以使用其他布置和元件(例如,机器、接口、功能、顺序和功能组),并且为了清楚起见,可以完全省略一些元件。此外,本文所描述的许多元件是功能性实体,它们可以被实现为离散或分布式组件或与其他组件相结合,并且以任何合适的组合和位置来实现。本文描述为由一个或多个实体执行的各种功能可以由硬件、固件和/或软件来执行。例如,一些功能可以由执行被存储在存储器中的指令的处理器来执行。
43.在未示出的其他组件之中,示例操作环境600包括被耦合到传感器集(诸如hmd 610和(多个)传感器620a、620b、630c)的头戴式显示器(hmd)。hmd 610可以包括立体显示器以促进可以被佩戴hmd 610的用户感知的三维虚拟环境和虚拟对象的立体呈现。hmd 610可以被耦合到vr漫游跟踪设备615,vr漫游跟踪设备可以被集成到hmd 610的主体中,与hmd 610分开但物理上被耦合到hmd 610,或无线地被耦合到hmd 610,以在完全沉浸在虚拟环境中的同时促进在物理环境中的物理漫游。在一些方面,被耦合到hmd 610的vr漫游跟踪设备615可以包括便携式计算设备,例如,由佩戴hmd 610的用户携带或佩戴的设备。
44.在各种实施例中,该组传感器可以包括跟踪传感器620a(例如,旋转跟踪传感器、定位跟踪传感器),跟踪传感器可以生成传感器数据,传感器数据能够由vr漫游跟踪设备615采用来确定相对于hmd 610的周围物理环境的hmd 610的物理取向和hmd 610的物理定位。在优选实施例中,跟踪传感器620a是由内向外的传感器,其包括固定到hmd 610的主体的传感器。然而,设想可以采用多种传感器(包括由外向内的传感器)来促进hmd 610的物理取向和/或物理定位等的确定。
45.在各种实施例中,该传感器集还可以包括环境传感器集620b(例如,光学传感器),环境传感器集能够被采用来接收来自周围物理环境的环境数据(例如,光学数据、声学数据)并且确定环境传感器的跟踪区域(例如,视场)内的物理对象的距离或其他特性等。作为非限制性示例,microsoft设备是一个示例性环境传感器(例如,深度地图传感器或rgbd相机),其可以为由此接收的每一帧光学输入信息连续地生成实时深度地图。就此而言,vr漫游跟踪设备615可以接收由环境传感器生成的每个深度地图帧以确定跟踪区域内物理对象的距离、形状、相对移动或其他物理特性等。在一些方面,通过确定hmd的定位相对于由环境传感器跟踪的物理环境正在移动,vr漫游跟踪设备615也可以采用环境传感器作为定位跟踪传感器。在优选实施例中,该环境传感器集620b是由内向外的传感器,其包括被固定到hmd 610的主体的(多个)传感器。在一些方面,该环境传感器集被刚性地安装到hmd 610,瞄准与hmd 610平行的观察方向。然而,设想可以采用包括由外向内的传感器的各种传感器,以促进(多个)环境传感器620b的(多个)对应跟踪区域内的物理对象的距离(例如,相对于hmd 610的距离)或其他特性的确定。
46.在一些另外的实施例中,该传感器集还可以包括诸如gps接收器的位置传感器集620c,能够被采用来确定与gps接收器的物理位置相对应的物理位置数据(例如,来自卫星或其他源的位置坐标)。在一些替代实施例中,该位置传感器集620c可以包括wi

fi无线电、蓝牙无线电、电信无线电或可以基于从该位置传感器集620c的可检测范围内的源发射器(例如,wi

fi接入点、蓝牙信标、电信塔)接收的信号或其特性(例如,信号强度、信号源)来进行三角测量的任何其他收发器。在各种实施例中,vr漫游跟踪设备615可以从一个或多个
位置传感器620c接收传感器数据以确定(多个)传感器(并由此确定佩戴hmd 610的用户)的物理位置坐标等,无论是通过接收坐标或是基于接收的源信号对近似位置进行三角测量,等等。例如,vr漫游跟踪设备615可以采用用户的位置坐标来确定相对于在电子地图(例如,鸟瞰透视图)上描绘的静态物理障碍物的物理位置的用户物理上所处的位置。设想电子地图可以被本地存储在vr漫游跟踪设备615的存储器中,或者可以经由网络利用第三方地图服务而被访问或检索。
47.在一些实施例中,第三方地图服务可以由远程服务器设备托管,诸如服务器设备640。vr漫游跟踪设备615可以经由网络630访问服务器设备640,举例来说,该网络可以包括lan、wan、pan或互联网。服务器设备640可以被耦合到数据库650,该数据库可以存储(多个)电子地图或可以被vr漫游跟踪设备615访问和/或检索的任何其他电子数据等。在一些实施例中,由vr漫游跟踪设备615确定的位置坐标可以被传送到服务器设备640,使服务器设备640向vr漫游跟踪设备615提供确定的与位置坐标相关的电子地图和/或在确定的相关地图上对接收的位置坐标的描述,等等。
48.现在转向图7,提供了框图700,其图示出了示例性vr漫游跟踪设备710,诸如图6的vr漫游跟踪设备615,用于基于接收的传感器数据实时地动态渲染和更新完全沉浸式虚拟环境。在示例中,根据所描述的实施例提供的vr漫游跟踪设备710可以安全地引导在陌生的(例如,未预先扫描或建模的)或动态物理环境中的真实世界漫游。应当理解,本文所描述的该布置和其他布置仅作为示例来阐述。除了所示的那些之外或代替所示的那些,可以使用其他布置和元件(例如,机器、接口、功能、顺序和功能组等),并且可以完全省略一些元件。此外,本文所描述的许多元件是功能实体,它们可以被实现为离散或分布式组件或与其他组件相结合,并且以任何合适的组合和位置来实现。本文描述为由一个或多个实体执行的各种功能可以由硬件、固件和/或软件来执行。例如,各种功能可以由执行被存储在存储器中的指令的处理器来执行。
49.vr漫游跟踪设备710是用于实现本公开的某些方面的合适架构的示例。应当理解,本公开的范围内的任意数目的用户设备、硬件、模块或组件可以被采用来执行与vr漫游跟踪设备710相关联描述的功能。在一些实施例中,vr漫游跟踪设备710可以包括计算设备,诸如在本文中关于图15描述的计算设备1500。由于所描述的组件中的每个组件都被描绘为被包括在vr漫游跟踪设备710中,因此设想其中所描述的任何组件不限于所图示的实施例,并且可以分布在多个计算设备、模块或硬件设备之中,或者在一些实例中,可以被合并为单个硬件设备或模块,诸如处理器或硬件设备。还设想可以从vr漫游跟踪设备710中完全移除所描述的组件中的任何一个或多个组件,只要与移除的组件对应描述的一个或多个操作可以由一个或多个其他组件、或第三方资源、远程计算设备或硬件设备等来补偿。
50.在一些实施例中,vr漫游跟踪设备710可以被耦合到头戴式显示器(hmd),诸如图6的hmd 610。vr漫游跟踪设备710还可以耦合被到传感器集,诸如(多个)跟踪传感器620a和(多个)环境传感器620b。如关于图6的简要描述,根据一些实施例,(多个)跟踪传感器620a和/或(多个)环境传感器620b中的任何一个或多个传感器可以被集成到hmd中或者被刚性固定到hmd。
51.vr漫游跟踪设备710可以包括从(多个)跟踪传感器620a接收跟踪传感器数据的hmd跟踪组件720。hmd跟踪组件720可以基于接收的跟踪传感器数据确定hmd的取向等。跟踪
传感器数据可以包括与检测的hmd的俯仰、偏航或横滚等相对应的电子信息。在各种实施例中,(多个)跟踪传感器620a可以包括加速度计、陀螺仪、磁力计和用于测量hmd的基本方向、线性加速度和/或角速度以及其他惯性特性的其他传感器。
52.在一些另外的实施例中,hmd跟踪组件720可以基于接收的跟踪传感器数据来确定hmd在空间(即,物理环境)中的定位。就此而言,跟踪传感器数据还可以包括与所确定的hmd在空间中的移动相对应的电子信息,包括hmd的向前/向后、向上/向下和向左/向右移动。在各种实施例中,(多个)这种跟踪传感器620a还可以包括声学跟踪传感器、光学传感器(例如,利用被动和/或主动标记、可见标记、不存在标记、深度地图或其组合)、qr跟踪系统、相机或用于跟踪hmd在空间中的移动的其他传感器。
53.在一些另外的实施例中,vr漫游跟踪设备710可以包括从(多个)环境传感器620b接收环境传感器数据的环境感测组件730。环境感测组件730可以基于接收的环境传感器数据来确定(多个)环境传感器620b的跟踪区域(例如,视场)中的物理对象的相对距离、形状和/或位置等。在一些实施例中,环境传感器数据可以作为基于接收的光学信息而生成的个体帧(例如,深度地图帧)而被接收。环境传感器数据(例如,每一帧)可以包括与在任何给定时间处在(多个)环境传感器620b的视场内检测的一个或多个物理对象(例如,地面、墙壁、人、动物、椅子、桌子、植物或任何物理结构)相对应的电子信息(例如,深度地图)。在一些实施例中,(多个)环境传感器620b可以包括例如深度地图传感器或rgbd传感器。在各种实施例中,(多个)环境传感器620b可以连续地从物理环境接收光学信息(例如,图像)并且响应地(例如,周期性地)生成对应于接收的光学信息的帧(例如,深度地图)。环境感测组件730可以响应于接收到所生成的帧,针对每个所生成的帧确定(多个)环境传感器620b的跟踪区域(例如,视场)中的物理对象的相对距离、形状和/或位置。作为非限制性示例,microsoft kinect设备可以被采用作为深度地图相机。在一些实施例中,跟踪传感器620a还可以操作为环境传感器620b,反之亦然,以使得由此生成的传感器数据可以被hmd跟踪组件720和/或环境感测组件730采用以跟踪hmd在空间中的移动并且确定在跟踪区域中的物理对象的相对距离、形状和/或位置两者。
54.在一些实施例中,环境感测组件730可以基于接收的环境传感器数据来确定在(多个)环境传感器620b的跟踪区域中存在物理对象或“障碍物”等。在一些方面,环境感测组件730可以在用户正在漫游的物理环境具有平坦平面地面的假设下操作,使得物理对象可以基于所生成的传感器数据中描绘的物理对象(例如,环境数据)显得比地面高的确定而被检测。然而,在一些实施例中,在确定物理对象是否是障碍物或可导航区域或通路(例如,平坦平面地面、台阶、路缘、坡道)时,可以通过(例如,利用视觉识别技术)标识可以被考虑的某些物理对象(例如,台阶、路缘、坡道)来避免上述假设。
55.vr漫游跟踪设备710还可以包括vr世界渲染组件740。在各种实施例中,vr世界渲染组件740可以生成虚拟环境或其任何部分(例如,虚拟场景或虚拟环境的一部分),其可以被提供给hmd用于显示,诸如图6的hmd 610,使得虚拟环境的至少一部分可以被佩戴hmd的用户感知。在一些实施例中,vr世界渲染组件740可以生成包括虚拟对象的虚拟环境,虚拟对象中的任何一个虚拟对象可以至少部分地基于经由环境感测组件730接收的一条或多条环境传感器数据(例如,深度地图帧)来对应于用户的周围物理环境内的物理对象。在一些另外的实施例中,vr世界渲染组件740可以生成包括虚拟对象的虚拟环境,该虚拟对象对应
于还基于从被存储在vr漫游跟踪设备710的存储器中的一个或多个定义的主题(例如,装饰、风格、配色方案、科目、话题)中选择的主题的物理对象。就此而言,虚拟环境和其中渲染的虚拟对象可以保持主题上一致。在一些方面,主题可以在虚拟游戏中被定义并且被自动选择(例如,基于级别或难度),或者可以基于从经由hmd提供用于显示的主题列表中接收的用户输入而被选择,等等。
56.vr世界渲染组件740可以包括漫游区域定义组件750,其可以接收一条环境传感器数据(例如,深度地图帧)并且确定周围物理环境(即,由深度地图帧捕获的物理区域)的一部分对应于可导航区域,或者换句话说,是平坦平面地面或者用户可以漫游的其他可确定的表面或区域。在一些实施例中,漫游区域定义组件750可以经由环境感测组件730接收一条环境传感器数据(例如,深度地图帧)并且确定接收的该条环境传感器数据的至少一部分对应于可导航区域。在一些方面,基于不具有可确定的深度或相对距离或者与平坦平面地面或其他可确定的表面或区域不具有可确定的高度差异的部分,漫游区域定义组件750可以确定接收的该条环境传感器数据的一部分对应于可导航区域。
57.vr世界渲染组件740还可以包括漫游区域渲染组件760,漫游区域渲染组件生成(或渲染)与由漫游区域定义组件750确定的可导航区域相对应的虚拟可导航区域(例如,虚拟通路、地板、地面、楼梯、坡道)。在一些实施例中,漫游区域渲染组件760可以针对虚拟可导航区域选择主题,主题与和虚拟环境相关联的选择的主题一致。举例来说,图3的图示320b中描绘的虚拟可导航区域是与所描绘的虚拟环境的地牢主题一致的石地板。在另一示例中,图3的图示330b中描绘的虚拟可导航区域是与所渲染的虚拟环境的火山主题一致的熔岩瓦片地板。
58.vr世界渲染组件740还可以包括障碍物选择组件770,障碍物选择组件可以接收一条环境传感器数据(例如,深度地图帧)并且确定周围物理环境(即,由深度地图帧捕获的物理区域)的一部分对应于物理障碍物,或者换句话说,是在可导航区域内检测的物理对象。在一些实施例中,障碍物选择组件770可以经由环境感测组件730接收一条环境传感器数据(例如,深度地图帧)并且确定所接收的该条环境传感器数据的至少一部分对应于物理对象,或者换句话说,是高于可导航区域的物理结构。在一些方面,基于具有可确定的深度或相对距离或与用户可以漫游的平坦平面地面或其他可确定的表面或区域具有可确定的高度差的部分,障碍物选择组件770可以确定所接收的该条环境传感器数据的一部分对应于物理障碍物。在一些实施例中,障碍物选择组件770可以从多个被存储的虚拟对象中选择一个或多个虚拟对象来表示检测的物理障碍物。在一些方面,一个或多个虚拟对象各自都基于与虚拟环境的主题一致(即,共同)的主题而被选择。
59.在一些实施例中,障碍物选择组件770可以还基于对应的物理障碍物的一个或多个确定的特性(诸如确定的相对距离、确定的高度、宽度、深度、(多个)颜色、形状、运动或移动、速度或其他可确定的可视方面)来选择一个或多个虚拟对象。
60.作为非限制性示例,在图320a

320b处回顾,图3的图示320a中描绘的物理障碍物(例如,人)是静止的(即,没有移动),但是可以位于距hmd的定义的阈值距离内。这样,障碍物选择组件770可以基于接收的第一条环境数据来确定物理对象在阈值距离内。障碍物选择组件770还可以基于接收的第一条环境数据和在接收的第一条之后顺序接收的至少另一条环境传感器数据来确定物理对象相对于hmd没有移动(或移动)。基于物理对象的定位和/
或距离没有移动并且在阈值距离内的确定,障碍物选择组件770可以选择主题上一致的虚拟对象或表示物理对象的其他上升机构,诸如在图示320b中从地面升起的尖刺。
61.在一些实施例中,所确定的物理对象的(多个)特性可以被障碍物选择组件770采用以识别可以适合于表示检测的物理对象的虚拟对象的类型或类别。基于所标识的类型或类别,多个可选择的虚拟对象可以被缩小到更相关的表示。作为非限制性示例,虚拟对象的类型或类别可以包括动态或“正在移动”虚拟对象(例如,行人、动物、车辆、机器人)、静态虚拟对象(例如,植物、家具、积水)、上升机构(例如,从地板升起的尖刺,向上漂浮的瓦片)或下降机构(例如,缩回地板的尖刺、下沉的瓦片),等等。
62.vr世界渲染组件740还可以包括障碍物渲染组件780,障碍物渲染组件可以生成(或渲染)与障碍物选择组件770检测的物理对象相对应的虚拟对象。在一些实施例中,障碍物渲染组件780可以通过将虚拟对象(诸如由障碍物选择组件770选择的对象)插入到生成的虚拟环境里面来修改生成的虚拟环境。障碍物渲染组件780可以在虚拟环境内定位和重新定位虚拟对象以对应于在物理环境内物理对象的定位。
63.在一些实施例中,障碍物渲染组件780可以基于确定的物理对象的相对距离或定位的变化来跟踪检测的物理对象的移动。如本文所指出,这种变化可以基于在顺序接收的环境数据片段集中所描绘的检测的物理对象的相对距离或定位而被确定。为此,障碍物渲染组件780可以基于物理对象在物理环境中的对应的移动或检测的感知变化(例如,当更近时放大的外观,当更远时缩小的外观)来在虚拟环境内移动虚拟对象、重新定位虚拟对象和/或对虚拟对象调整大小。
64.在各种实施例中,vr漫游跟踪设备710可以包括立体显示组件790,立体显示组件可以促进由vr世界渲染组件740生成的虚拟环境和/或虚拟对象的立体显示。由于漫游跟踪设备710所耦合的hmd可以立体地显示虚拟环境和/或虚拟对象,所以立体显示组件790可以被vr漫游跟踪设备710的任何一个或多个组件采用以旋转、偏移、重新定位或以其他方式调整要被立体显示用于用户观看的虚拟环境和/或虚拟对象。
65.现在参见图8,提供了流程图800,其描绘了根据一些实施例的用于基于接收的传感器数据实时地动态渲染和更新完全沉浸式虚拟环境的示例性过程流程。与流程图800相邻描绘的是在步行在未知的物理环境中时佩戴hmd(例如,图6的hmd 610)和包括vr漫游跟踪设备(例如,图7的vr漫游跟踪设备710)的背包pc的用户805。深度相机或rgbd相机810被附接到hmd并且将所有深度帧815传送到vr漫游跟踪设备,其中vr漫游跟踪设备处理它们以更新820由用户805所体验的虚拟环境。根据各种实施例,并且与许多同步定位和映射(slam)系统对照而言,用户物理环境的物理周围环境(“世界”)地图不假定时间一致性,利用更新的捕获(例如,接收的环境传感器数据片段)覆盖先前的知识。
66.如本文所述,并且根据一些实施例,vr漫游跟踪设备可以检测825物理环境区域,这些区域是可导航区域或者可能干扰用户行进路径的物理障碍物。可以假设平坦平面地面,并且vr漫游跟踪设备(例如,图7的vr漫游跟踪设备710)可以基于从环境传感器集(诸如图6

图7的(多个)环境传感器620b)接收的一条或多条环境传感器数据来确定地面的可见部分是可导航区域(即,用户在其上物理漫游的物理区域)。还根据一些实施例所描述的,vr漫游跟踪设备可以将具有高度高于或低于检测的地板(或确定的可导航区域)或定义的阈值高度的任何检测的物理对象分类为物理障碍。vr漫游跟踪设备可以存储世界的动态二维
(2d)地图,动态二维地图表示确定的可导航区域和(多个)物理障碍两者。在一些方面,vr漫游跟踪设备可以确定任何其他位置(例如,未被分类为物理对象的可导航区域)是未知的。
67.在一些实施例中,vr应用叙述可以指示需要来以特定的顺序向佩戴hmd的用户805显示特定信息830。例如,在冒险游戏中,用户可以看到若干场景,在这些场景中他们可以收集资源、解决谜题或与对手战斗以获得对其他的访问权限等等。训练应用可以要求用户执行某些任务并且将用户暴露于不同的情景。每个可以被定义为“房间”的“场景”可以要求部署一些物理资源。房间可以小到如要拾取的对象的大小,也可以大到如创作的房间。根据一些实施例,场景的“大小”可以对应于用户需要物理到达的区域,否则虚拟环境可以如期望的那样大。如果用户可以感觉到足够大以包含场景的空旷空间,则根据一些实施例的vr漫游跟踪设备可以将场景映射到该空间。
68.在一些实施例中,vr漫游跟踪设备可以确定835是否足够的物理空间可用于部署创作的场景(例如,虚拟房间)或路径(例如,虚拟廊道)。在一些实施例中,如果vr漫游跟踪设备确定840有足够的物理空间可用,则映射到物理空间的虚拟房间可以被部署840(例如,生成并且提供给hmd用于显示)。更重要的是,如果vr漫游跟踪设备确定没有可用的物理空间(例如,没有可导航区域),则用户可能需要物理移动(即,漫游)到找到合适空间的物理环境的另一部分。vr漫游跟踪设备可以检测可能的目标可行走方向用于用户探索并且生成845朝向避开检测的物理障碍物的那些目标的程序上的“路径”(例如,虚拟廊道),同时在一些实施例中模糊物理障碍物的物理几何形状。以这种方式,生成的程序上的路径可以影响用户805的穿越路径,从而避免检测的物理障碍物。在一些实施例中,生成的程序路径可以采取蜿蜒的廊道、森林中的小径或可能适合叙述的任何环境(即,与其虚拟环境在主题上一致)的形式。
69.除了创作的房间和主题廊道之外,生成的虚拟环境可以包括虚拟对象集,虚拟对象可以被vr漫游跟踪设备定位和移动,以基于其检测850来阻止用户接近物理障碍。一旦设置了虚拟环境的局部映射,vr漫游跟踪设备可以通过插入与检测的物理障碍相对应的虚拟对象集855来修改虚拟环境以完成虚拟环境。在各种实施例中,vr漫游跟踪设备可以从用户805的角度经由hmd向用户805显示虚拟环境,基于从该环境传感器集接收的一条或多条新的环境传感器数据来更新虚拟环境。vr漫游跟踪设备可以基于每条新的环境传感器数据(诸如从深度传感器或rgbd相机810接收的新的深度帧815)即时更新虚拟环境。
70.现在转向图9,提供了框图900,其图示出了示例性vr漫游跟踪设备910的另一实施例,诸如图6的vr漫游跟踪设备615,用于基于接收的传感器数据实时地动态渲染和更新完全沉浸式虚拟环境。在示例中,根据一些实施例提供的vr漫游跟踪设备910可以安全地引导在陌生的(例如,未预先扫描或建模的)或动态的物理环境内的真实世界漫游。vr漫游跟踪设备910可以进一步促进安全地引导在室外环境(诸如城市街道或其他地理区域)中的真实世界漫游。在优选实施例中,室外环境是可以用电子地图(例如鸟瞰图或三维地图)描绘的环境,并且对应于vr漫游跟踪设备910可以(例如,经由确定的位置数据)确定其精确位置的物理区域。应当理解,本文描述的该布置和其他布置仅作为示例来阐述。除了所示的那些之外或代替所示的那些,可以使用其他布置和元件(例如,机器、接口、功能、顺序和功能组等),并且可以完全省略一些元件。此外,本文所描述的许多元件是功能实体,它们可以被实现为离散或分布式组件或与其他组件相结合,并且以任何合适的组合和位置来实现。本文
描述为由一个或多个实体执行的各种功能可以由硬件、固件和/或软件来执行。例如,各种功能可以由执行被存储在存储器中的指令的处理器来执行。
71.vr漫游跟踪设备910是用于实现本公开的某些方面的合适架构的示例。应当理解,本公开范围内的任意数目的用户设备、硬件、模块或组件可以被采用来执行与vr漫游跟踪设备910相关联描述的功能。在一些实施例中,vr漫游跟踪设备910可以包括计算设备,诸如在本文中关于图15描述的计算设备1500。由于所描述的组件中的每个组件都被描绘为被包括在vr漫游跟踪设备910中,因此设想其中描述的任何组件不限于图示的实施例,并且可以分布在多个计算设备、模块或硬件设备之中,或者在一些实例中,可以被合并为单个硬件设备或模块,诸如处理器或硬件设备。还设想可以从vr漫游跟踪设备910中完全移除描述的组件中的任何一个或多个,只要与移除的组件对应描述的一个或多个操作可以由一个或多个其他组件、或第三方资源、远程计算设备或硬件设备等来补偿。
72.类似于图7的vr漫游跟踪设备710,vr漫游跟踪设备910可以被耦合到头戴式显示器(hmd),诸如图6的hmd 610。vr漫游跟踪设备910还可以被耦合到传感器集,诸如(多个)跟踪传感器620a和(多个)环境传感器620b。在各种实施例中,该传感器集还可以包括(多个)位置传感器集,诸如图6的位置传感器620c。如关于图6的简要描述,根据一些实施例,(多个)跟踪传感器620a、(多个)环境传感器620b和/或(多个)位置传感器620c中的任何一个或多个传感器可以被集成到hmd中或者被刚性固定到hmd。
73.除了每个都已经关于图7进行了描述的hmd跟踪组件720和/或环境感测组件730之外,vr漫游跟踪设备910还可以包括位置跟踪组件920。在一些实施例中,位置跟踪组件920可以从该位置传感器集接收物理位置数据,诸如图6的位置传感器620c。在各种实施例中,位置跟踪组件920可以从该位置传感器集620c接收物理位置数据以确定(多个)传感器(并且由此确定佩戴hmd 610的用户)的物理位置坐标,无论是通过接收确定的位置坐标(例如,gps坐标)或是通过基于接收到的源信号对近似位置进行三角测量,等等。在一些实施例中,位置跟踪组件920可以利用信号特性、信号源的已知位置坐标,或者通过经由网络(诸如图6的网络630)与第三方服务(例如,服务器设备640)通信来对近似位置进行三角测量。
74.在一些另外的实施例中,vr漫游跟踪设备910可以包括漫游路线组件930,漫游路线组件可以采用确定的位置坐标来标识该位置传感器集620c(以及由此佩戴hmd的用户)相对于在电子地图上定义和/或描绘的静态物理障碍物(例如,建筑物、街道、繁忙的十字路口、水面)的物理上所处的位置等。更重要的是,在一些另外的实施例中,漫游路线组件930还可以确定用户相对于诸如人行道、人行横道、通路的定义的和/或描绘的可导航区域的物理上所处的位置。在一些实施例中,漫游路线组件930可以从电子地图中提取对应于定义的静态物理障碍物或可导航区域的相关地图数据(例如,颜色、元数据、维度)以确定用户相对于其的位置。
75.在各种实施例中,漫游路线组件930可以生成从确定的当前物理位置到选择的目的地(例如,目的地坐标)的可导航路线(例如,可行走通路)。在一些方面,漫游路线组件930可以生成请求对应于预期的目的地的输入的提示。用户可以(例如,经由语音、控制器、眼睛跟踪、运动跟踪)提供输入来选择目的地作为对生成的提示的响应。在一些其他方面,漫游路线组件930可以生成并且呈现潜在目的地集,用户可以向潜在目的地集提供输入以选择目的地。提供选择的目的地,漫游路线组件930可以确定将用户从他/她的当前位置指引到
选择的目的地的可行走路线。在一些实施例中,漫游路线组件930可以采用被存储在vr漫游跟踪设备910的存储器中的电子地图。在一些其他实施例中,漫游路线组件930可以将确定的当前位置和选择的目的地发送到路由服务,诸如由图6的服务器设备640托管的地图路由服务。漫游路线组件930可以从服务器设备接收可行走路线。在各种实施例中,并且简要参考图图10,所确定的可行走路线可以包括定义可行走路线1010的一系列gps坐标。在一些实施例中,漫游路线组件930可以仅采用确定的可行走路线来将用户指引至选择的目的地。
76.在一些其他实施例中,并且再次简要参考图10,漫游路线组件930可以尝试将确定的可行走路线与被存储在vr漫游跟踪设备910的存储器中的定义的虚拟世界集中的一个虚拟世界中被包括的多个潜在虚拟路径中的虚拟路径1020进行匹配。就此而言,漫游路线组件930可以采用各种参数来计算虚拟路径的质量或相似性以用于映射到确定的可行走路线。在一些方面,如果选择的虚拟路径和确定的可行走路线之间的变化被标识,则可以采用漫游路线重指引组件940以在贯穿确定的可行走路线中的被识别标识的可变点处有效地重指引用户。
77.作为示例,漫游路线重指引组件940可以比较虚拟路径的长度尺度和确定的可行走路线。在一些方面,虚拟路径的长度不应超出实际距离多于一个阈值距离或百分比(例如,33%)。在优选实施例中,如果确定的可行走路线段映射到该可接受长度尺度内的虚拟路径段,则匹配确定的可行走路线段的成本为0;否则,它的成本是超出该量的长度变化,由段的长度来归一化。就此而言,漫游路线重指引组件940可以将路径的总成本(length_cost)计算为所有段成本的平方和。
78.在另一示例中,虽然虚拟路径和确定的可行走路线可能具有形状变化(例如,为了避免物理障碍物),但两者之间的局部差异不应超出街道或道路。因此,每段的成本可以被定义为映射到虚拟世界的线性段与匹配的虚拟路径之间的最大距离。就此而言,漫游路线重指引组件940可以将这些差异的总成本(length_cost)计算为每个段匹配成本的平方和。
79.在又一示例中,虽然虚拟路径和确定的可行走路线的总体形状可能不同,但是优选地,沿着路径的曲率变化在任何点处都不应超出45度。超出该角度,重指引对用户来说变得很明显,并且取而代之的是脚本化的干扰来代替。在优选实施例中,漫游路线重指引组件940的一个目标是将重指引的数量(dir_cost)保持为最小。
80.在一些实施例中,漫游路线重指引组件940可以计算关于这三个因素(例如,长度尺度、差异、重指引)的卷积的质量评级并且将质量定义为:
81.match
cost
=(w
len
*len
g
th
cost2
w
lin
*diff
cost2
w
dir
*dir_cost2)
1/2
82.其中w
len
,w
lin
,w
dir
被采用作在约束之间进行平衡的因素。在一些另外的实施例中,漫游路线重指引组件940可以包括更复杂的规划过程,并入了附加的因素,诸如倾斜度的差异、被动触觉(例如,建筑物)的拟合或在真实世界或物理环境中检测的音频源。
83.为了找到虚拟路径“q”并且将其拟合到给定的真实世界路径(即,确定的可行走路线)“p”,漫游路线重指引组件940可以执行对候选虚拟路径的贪婪搜索。在每次迭代时,漫游路线重指引组件940可以生成每个路径顶点p
i
到图中匹配顶点v
i
的似是而非的映射,其中[v
i
,v
i
1]之间的距离被确定在对应的确定的可行走路线段的长度尺度内。
[0084]
一旦虚拟路径和所确定的可行走路线之间的合适映射被获取,vr漫游跟踪设备910就可以开始生成沿着虚拟路径具有虚拟对象的虚拟环境。类似于图7的vr漫游跟踪设备
710,vr漫游跟踪设备910可以包括漫游区域渲染组件760,用于生成确定的可导航区域(例如,确定的可行走路线)和/或物理障碍物的虚拟表示。除了参考图7的漫游区域渲染组件760描述的一些特征之外,图9的漫游区域渲染组件760还可以生成并且插入表示由漫游路由组件930从电子地图中标识的静态物理障碍物的虚拟对象。在一些实施例中,表示被标识的静态物理障碍物的虚拟对象可以包括虚拟建筑物、虚拟路障、虚拟卡车、虚拟食物推车或虚拟海报架,以及代表非移动或非动画对象的其他虚拟对象。vr漫游跟踪设备910可以采用障碍物选择组件770,如参考图7所描述的,用于选择静态虚拟对象来以图形的方式表示被标识的静态物理障碍物。在一些方面,特别是对于表示室外虚拟世界的虚拟环境,附加的静态(非移动)和/或动态(例如,移动)虚拟对象可以由障碍物渲染组件780选择并且插入到虚拟环境里面,被定位在与确定的不可导航区域或检测的物理障碍物相对应的虚拟环境内。
[0085]
如本文所指出,vr漫游跟踪设备910可以包括hmd跟踪组件720、环境感测组件730、vr世界渲染组件740、漫游区域渲染组件760、障碍物选择组件770、障碍物渲染组件780和立体显示组件790,如关于图7所描述的。设想关于图7的vr漫游跟踪设备710的前述组件所描述的任何或所有特征都可以被包括在图9的vr漫游跟踪设备910中,如所描绘的那样。
[0086]
现在参见图11,提供了流程图1100,其描绘了根据一些实施例的用于基于在室外物理环境中接收的传感器数据实时地动态渲染和更新完全沉浸式虚拟环境的示例性过程流程。诸如图9的vr漫游跟踪设备910的vr漫游跟踪设备提供了一种跟踪和导航系统,其在安全地重指引用户通过物理环境以到达选择的目标目的地的同时利用真实世界的移动(例如,步行)引导被耦合到vr漫游跟踪设备的hmd的用户通过虚拟环境。如参考图9所描述的,vr漫游跟踪设备的各种组件可以至少提供vr漫游跟踪设备的路径规划子系统1110、实时环境感测子系统1120和运行时子系统1130。设想诸如图9的vr漫游跟踪设备910的vr漫游跟踪设备并非旨在进行限制,并且提供本文所描述的子系统,以使得图9中参考的或者以其他方式未参考图9描述但在下文描述的任何组件可以被采用来根据本公开的一些实施例执行vr漫游跟踪设备的特征。
[0087]
路径规划子系统1110的输入是给定的真实世界路径,诸如确定的可行走路线。在一些方面,确定的可行走路线可以对应于用户每天采取的可行走路线,或者只是到他/她的下一个目的地的路径。附加的输入是用户将要步入的虚拟世界。为了确保用户将是安全的,vr漫游跟踪设备的目标是确保用户仅在可导航区域(即,没有物理障碍物)中行进。
[0088]
为了保持虚拟体验是可信且沉浸式的,在优选实施例中,用户正在采取的路径在虚拟世界中也应该是可行的。根据本文所描述的各种实施例的vr漫游跟踪设备被设计为让用户享受通用vr内容,而不是专门为与特定物理位置(即,已知或预扫描的环境)一起使用而生成的。这样,路径规划子系统1110的第一个任务是在vr世界(例如,定义的虚拟世界或地图)中找到尽可能匹配“真实”路径(或者换言之,确定的可行走路线)的虚拟路径。真实路径和虚拟路径之间的任何差异都可以通过重指引和用户的虚拟步行速度的轻微变化而被解决。路径规划子系统1110可以标识可以应用这些校正的可能位置并且利用静态对象填充虚拟世界,这些静态对象可以阻止用户撞到预先从地图数据中标识的物理障碍(例如,建筑物、街道)。
[0089]
实时环境感测子系统1120和运行时子系统1130在运行时操作来沿着将用户导向选择的目标目的地的真实世界路径引导用户,同时保护用户免受检测的物理障碍。为此,vr
漫游跟踪设备可以采用实时收集传感器数据的传感器集。在一些实施例中,该传感器集可以包括跟踪传感器集(例如,6

dof由内向外的跟踪器)、位置传感器集(例如,gps传感器)和/或环境传感器集(例如,rgb深度相机)等。
[0090]
在各种实施例中,该位置传感器集可以被采用来确定真实世界位置(例如坐标),同时该跟踪和/或环境传感器集可以被采用来产生相对定位轨迹。vr漫游跟踪设备可以采用该环境传感器集来获取有关用户的周围环境和障碍的实时信息。vr漫游跟踪设备可以融合从所有源(例如,跟踪、位置和/或环境传感器)接收的传感器数据以估计用户的精确真实世界位置1140并且在虚拟世界中重指引他们以保持在规划路径上。包括虚拟对象的虚拟现实环境或场景1150可以被生成并且动态更新,以在视觉上表示真实世界中检测的障碍,从而创建用于用户体验的生动虚拟环境。
[0091]
现在参见图12,提供了描绘了根据一些实施例的vr漫游跟踪设备的实时环境感测子系统(诸如图11的实时环境感测子系统1120)的示例性过程流程的流程图1200。在一些实施例中,实时环境感测子系统可以针对vr漫游跟踪设备的运行时子系统(例如,图11的运行时子系统1130)生成两个信号。信号可以包括高度地图1210和路径地图1220(即,可行走路径),以及全局墙壁地图1230,全局墙壁地图可以包括被标识的静态物理障碍和/或其他检测的物理障碍的位置,其中任何一个可以被获取并被利用作为运行时子系统的输入。在一些实施例中,可以从环境传感器集接收深度流(例如,深度地图帧或图像集和/或rgb地图或图像集),以使得vr漫游跟踪设备可以相应地对齐它们。
[0092]
根据一些实施例,通过处理rgb深度流,vr漫游跟踪设备可以检测两种类型的不可行走区域,这两种区域都可以被认定为“特设”或检测的物理障碍。首先,一些不可行走区域(例如,长凳、柱子、墙壁)可以简单地通过物理阻碍确定的可导航区域或可行走路线来阻止步行,并且因此可以被确定为与周围地面相比具有明显的高度差异。其次,其他不可行走区域(例如,草地、土路或人行道带)可以具有与周围地面相似的高度,但是可以被确定为在纹理和颜色上与周围地面不同。
[0093]
为了检测和跟踪不可行走区域,vr漫游跟踪设备可以在接收深度图像或帧时根据深度图像或帧构造高度地图。每个rgb深度帧都可以从环境传感器集以点云的形式投影到跟踪空间中。然后可以将这些点投影到地平面上,这可以导致高度地图和颜色地图的生成。vr漫游跟踪设备可以将这些投影下采样为高度和颜色地图像。在一些方面,为了减少存储器消耗并且减轻计算延迟的目的,一个像素分别对应于10cm x 10cm和5cm x 5cm。在一些实施例中,用于投影的着色器集可以被采用来产生颜色地图和两个深度地图。
[0094]
为了获取几乎完整的颜色地图,vr漫游跟踪设备可以渲染从相邻像素构造的三角形。针对高度地图,vr漫游跟踪设备可以提取该像素的区域内的点云中的最高点和最低点,并且分别产生最高点和最低点的投影。vr漫游跟踪设备然后可以将像素的梯度定义为针对每个像素以及相邻像素的最高点和最低点之间的最大差值,从而导致高度梯度地图的生成。vr漫游跟踪设备可以针对每个rgb深度帧单独地执行这个过程,每个rgb深度帧都固有地具有噪声,因此不适合直接生成代表物理对象的虚拟对象。一旦vr漫游跟踪设备获取颜色地图、高度地图和高度梯度地图,它就可以利用跟踪和时间过滤等来对齐连续的地图。因此,vr漫游跟踪设备可以从全局颜色地图导出全局颜色梯度地图。
[0095]
然后,vr漫游跟踪设备可以生成路径地图(即,可行走路径地图)和墙壁地图,其对
vr漫游跟踪设备的运行时子系统必须将虚拟障碍定位在虚拟环境内的位置进行编码。墙壁地图的准确性可能对于针对用户创建引人注目且安全的虚拟环境至关重要。这样,vr漫游跟踪设备不是从全局高度地图本身而是从全局高度梯度地图中提取真实世界障碍。由于间距的小的不准确性,全局高度地图可能容易未对齐,这会在对齐的局部高度地图和现有的全局高度地图之间生成大的高度间隙。例如,1度的未对齐可以导致仅15英尺外就有4英寸的高度差异——这是一个相当大的障碍,其会导致假积极的vr表示。全局高度梯度地图不太容易出现这种错误,因为在计算该地图时,vr漫游跟踪设备仅比较局部高度地图中的高度,并且仅使用差异来融合它们。
[0096]
根据各种实施例,vr漫游跟踪设备基于全局高度梯度地图提取虚拟表示并且因此从真实世界障碍的边缘提取它们可以足以用于安全导航。这是因为大面积的不可行走障碍需要在vr中仅在离用户最近的位置进行表示——用户可能会冒险走进的那些位置。vr漫游跟踪设备可以从全局高度梯度地图通过从用户的位置开始的洪水(flood)填充生成路径地图,并且只填充颜色和高度梯度低于定义的阈值的区域。由于洪水填充不适合并行化,所以vr漫游跟踪设备利用了全局梯度地图随时间保持相对一致的事实,因为所有特设物理对象在真实世界中都是静止的。因此,vr漫游跟踪设备执行迭代的洪水填充,每次rgb深度更新可以将先前的洪水填充推进4个像素。当洪水填充无法填充到某个区域里面时,vr漫游跟踪设备可以将该像素标记为墙壁地图中的障碍。
[0097]
接下来,vr漫游跟踪设备可以基于预定义的rgb分布(诸如绿色或红色)对该合成rgb图像中的彩色区域的连续区域进行分类,因为这样的区域倾向于例如将人行道与路面的其他部分区分开来。对于那些在匹配期间产生足够分数的区域,vr漫游跟踪设备可以在路径地图中附加地将它们标记为不可行走。
[0098]
为了检测动态物理对象,vr漫游跟踪设备处理人和其他移动物理对象两者的rgb图像。vr漫游跟踪设备可以将yolo实时对象分类集成到单独的线程中,该线程可以(例如,以15hz)报告检测的对象的2d框。通过使用深度图像中的10x10像素区域内的最近距离和由内向外的跟踪来将它们投影到环境中,vr漫游跟踪设备可以在墙壁地图内登记它们的位置并且将它们报告给运行时子系统。这可以确保障碍表示被定位在更靠近用户的虚拟环境中,以有效地警告用户关于检测的物理障碍。
[0099]
返回参考图10,诸如图9的vr漫游跟踪设备910的vr漫游跟踪设备的运行时子系统1130,可以根据一些实施例执行三个主要任务。任务可以包括:定位——用于确定用户在真实世界中的准确位置;重指引——通过根据规划路径应用附加的重指引来补偿虚拟世界和真实世界跟踪之间的偏移;以及障碍表示——生成虚拟对象,以便以自然的方式安全地引导用户。
[0100]
由运行时子系统1130定位的任务是产生刚性变换t,该变换将位置和方向t
origin
从由内而外的跟踪空间映射到真实世界坐标t
gps
。任务的重点是提供用户定位的水平校正(即统一(unity)坐标中的x

z轴或gps坐标中的纬度

经度)。运行时子系统1130可以接收两种类型的输入:用户的定位p
user/gps
、在真实世界的gps坐标t
gps
和具有相对位置的由内而外的跟踪数据。与gps粗略但全局接地的测量相反,由内而外的跟踪数据可以测量定位和取向的差分变化。它的当前取向t
user/origin
可以对应于从路径的开始处的任意初始坐标系t
user/origin
到用户周围的当前坐标系t
user
的变换的累积。随着时间的推移,累积误差可以生
成相对于全局坐标系的t
user
的漂移。
[0101]
虽然一种朴素的解决方案是在最近的gps位置的历史和对应的用户位置之间进行刚性变换,但在实践中,由于多路径效应、大气效应等,由vr漫游跟踪设备收集的gps定位p
user/gps
与用户的真实定位存在系统偏移。例如,当在真实世界中沿着建筑物行走时,接收的gps坐标可以具有朝向街道或建筑物内的位置的恒定偏移。由此产生的变换可能会在真正的可行走区域之外创建一条路径,并且因此对于真正的行走来说是不安全的。为了在运行时期间导出准确的变换,运行时子系统1130在用户总是在规划路径上行走的假设下操作。这可以允许运行时子系统1130利用前述朴素方法的估计变换来变换由内而外的跟踪数据历史[p
user/origin
]以导出[p

user/gps
]。运行时子系统1130然后利用迭代的最近点匹配算法将结果与规划路径[p
path
]的用户已经走过(p

user/gps
)的部分准确地对齐。这种对齐可以产生校正矩阵t
history
,将估计的gps变换映射到更准确的gps变换。该目标刚性变换在本文中被标示为t2=t1*t
history

[0102]
虽然t2可以准确地映射跨用户路径的位置,但是沿着路径并且因此在最可能包含用户旁边的物理障碍(诸如,建筑物)的方向上,仍然发生不准确性。这种行为可能发生在走过一段又长又直的路段之后,例如,就在真实世界中的十字路口处右转之前。由于t
history
将用户的位置历史变换为已经走过的路径,所以它只会校正垂直于用户行走方向的不准确性。当到达规划路径上的转弯处时,例如在十字路口处,运行时子系统1130仅使用该变换无法准确地确定用户应该在何时何地进行该转弯,因为平行于当前行走方向的位置可能不准确。运行时子系统1130因此用另一个校正矩阵t3补充其先前的变换,该校正矩阵是基于参考图12描述的生成的全局高度地图而被生成的。用户的未来路径被投影到生成的高度地图上,并且在两个水平维度上的偏移以及旋转偏移上的t2=t1*t
history
的可能变换空间中启动搜索以寻找最佳拟合。利用计算着色器,运行时子系统1130可以确定沿着这些可能路径中的每个路径的总高度变化。给定源自路径规划子系统的路径,诸如确定的可行走路线,运行时子系统1130可以确定它通过平坦地面穿越真实世界,这意味着在搜索期间的高度的总变化较小。运行时子系统1130因此选择具有最低总高度变化的变换t
future
∈[t
future
],并且将该校正应用于原始变换t2。作为该校正的结果,运行时子系统1130可以获取补偿gps更新的两个维度中的不准确和跳跃的准确变换:t3=t
future
‑1*t2。下文中参考该变量t3以对应于将坐标从由内向外的跟踪空间t
origin
精确映射到gps空间t
gps
的变换。
[0103]
另一方面,由运行时子系统1130重指引的任务是跟踪用户在两个参考系统中的定位:用户物理上所处的位置(如运行时子系统1130的定位任务所报告的),以及在虚拟世界中的位置。当用户通过行走穿越两个参考系统时,运行时子系统1130可以确保呈现给用户的视觉结果导致他们在真实世界中准确且安全地行走。在两个参考系统之间存在差异的情况下,运行时子系统1130可以应用vr渲染的逐渐校正,以隐式地重指引用户的行走而不引起他们的注意。
[0104]
由运行时子系统1130重指引的任务可以通过根据用户的实际视口运动限制变换变化来实现重指引的行走。因为gps更新不准确,上面导出的变换矩阵t可以包括帧与帧的较大的差异,甚至可能在用户不执行运动时变化。因此,导致的视觉体验的变化可能使用户感到困惑或不舒服。
[0105]
在每一帧f
n
中,运行时子系统1130可以记录当前变换t
current
[n],以及用户由内而
外的跟踪原点的变换t
user/origin
[n]。在接下来的每一帧f
n 1
中,运行时子系统1130可以获取来自运行时子系统1130的定位任务的理想变换t[n 1]以及来自原点的用户的新变换t
userorigin
[n 1]。运行时子系统1130可以确定用户在gps空间中逐帧移动了多少m
target
[n 1]=t
user/origin
[n 1]*t
n 1

t
user/origin
[n]*t
current
[n]。这种实际运动的量可以对应于运行时子系统1130产生的视觉变化以满足用户的期望。如果运行时子系统1130现在直接应用来自定位任务的变换,则用户的变换将相当于t
user/origin
[n 1]*t
n 1
并且因此是m
target
[n 1]=t
user/origin
[n 1]*t
n 1

t
user/origin
[n]*t
current
[n]的(视觉)移动。假设变换t
current
[n 1]是由该帧产生的,则用户响应该帧所能体验的移动相当于m
actual
[n 1]=t
user/origin
[n 1]*t
current
[n 1]

t
user/origin
[n]*t
current
[n]。
[0106]
在优选实施例中,实际移动m
actual
[n 1]优选地在预期移动m
expected
[n 1]的人类检测阈值内,同时保持尽可能靠近目标移动m
target
[n 1]。因此,在一些实施例中,运行时子系统1130可以生成围绕预期移动m
expected
[n 1]可接受的移动范围并且将目标移动m
target
[n 1]缩放回到该阈值内。因此,这可以导致跟随该帧的实际移动m
actual
[n 1]。利用该实际移动,运行时子系统1130可以通过逆转移动方程来计算该帧的变换:
[0107]
t
current
[n 1]=(t
user/origin
[n 1])

1*t
user/origin
[n]*t
current
[n] *m
target
[n 1]。在一些实施例中,运行时子系统1130可以通过允许移动在可接受范围(例如,0.78和1.22)内在用户实际移动的方向上进行缩放来生成可接受的移动。垂直于用户的运动,运行时子系统1130可以在原始运动的定义的百分比(例如,2.2%)内对移动进行缩放。在一些另外的实施例中,运行时子系统1130可以按另一可接受范围内的因子(例如,0.9和1.68)来对旋转进行缩放。
[0108]
根据一些实施例,运行时子系统1130可以在通过采用前述技术将用户逐渐重指引到更准确的位置的同时向用户提供流畅的体验。
[0109]
在一些另外的实施例中,运行时子系统1130可以将真实世界定位映射到虚拟世界中。举例来说,运行时子系统1130可以利用在真实世界和运行时子系统1130在路径规划(例如,路径规划子系统1110)期间放置的虚拟世界中的对应控制点。优选地,运行时子系统1130可以在运行时期间匹配所有中间位置用于流畅的重指引。运行时子系统1130的一个目标是为真实世界中的每个点生成变换,以使得真实世界中最近的控制点可以映射到虚拟世界中的在理想情况下与对应虚拟控制点的偏移为零的位置。这意味着真实世界中的相邻点在虚拟世界中保持它们的空间邻域关系。这种变换还需要在电子地图上产生连续的旋转偏移,否则用户在行走时可能会遇到定位或旋转的突然变化。在一些实施例中,运行时子系统1130可以根据基于特征的图像变形来实现该目标——利用“线对”和线性插值将定位集变换为另一定位集。运行时子系统1130可以通过将相邻控制点连接到线段,然后匹配一系列它们来将该方法扩展为利用更细粒度的控制点对。运行时子系统1130还可以将上文提及的旋转变换合并到定位对的匹配中,将旋转视为附加的维度并且应用相同的插值。
[0110]
由于运行时子系统1130已经计算了用户在电子地图上的定位、重指引的视口,并且已经检测用户周围的物理对象,所以运行时子系统1130可以执行障碍表示的任务。运行时子系统1130可以融合上述计算来策划用户的vr体验。在一些实施例中,并且如本文简要描述的那样,运行时子系统1130可以用动画对象和/或角色来填充虚拟世界(即,虚拟环境)以实现真实感。这样,除了这样的对象或角色之外,运行时子系统1130可以引入表示检测的
物理对象的附加虚拟对象。
[0111]
关于一些静态物理对象,如上所述至少参考路径规划子系统1110,可以基于确定的地图地形(例如,检测的建筑物、道路)用静态障碍来填充虚拟环境。通过类似于确定的可行走路线的虚拟环境路由虚拟路径可以使得运行时子系统1130能够利用虚拟外立面和街道对象作为虚拟障碍物。在一些实例中,所确定的可行走路线在保持在可容忍的重指引的约束内的同时不能被完美地路由穿过虚拟环境。相反,路径规划子系统1110可以确定对角穿过街道的虚拟路线——在真实世界中不常见的动作。这样,运行时子系统1130可以考虑这样的情境。
[0112]
通过一些非限制性示例,在虚拟环境内的虚拟十字路口处交叉的常规情况下,运行时子系统1130可以简单地停止任何虚拟交通(例如,动画车辆)以礼让行人,可选地辅以交通灯等。在中途穿过虚拟街道的情况下,运行时子系统1130可以找到在虚拟街道中间停止虚拟交通的合理解决方案,诸如通过放置虚拟救火车或虚拟警察街区。如果路径规划子系统1110不能产生比对角交叉更好的路径,则运行时子系统1130可以通过用虚拟路障填充末端来关闭整个虚拟道路,从而防止虚拟交通并且允许用户“安全地”穿过虚拟街道。
[0113]
关于检测到的物理对象,无论是特设的还是动态的,运行时子系统1130可以使虚拟角色(例如,虚拟行人)动画化以移动到这些物理对象的对应位置。在一些方面,通过利用虚拟行人来处理物理对象检测中的不确定性,可以解决表示移动动态物理对象的挑战,同时赋予虚拟环境一种生动的感觉,这与表示大城市的虚拟环境很好地融合或在主题上一致。
[0114]
在一些实施例中,插入到虚拟世界里面的动画虚拟行人可以补充实时环境感测子系统,诸如vr漫游追踪设备的图11的实时环境感测子系统1120。由于运行时子系统1130系统的定位任务可以根据它接收的新数据逐帧逐渐改变t,因此利用前一帧变换t定位的动画虚拟行人可以移动到现在更新的检测的物理对象位置以匹配用户的相对定位。此外,由于主动行走重指引,运行时子系统1130不能用静态虚拟对象来表示特设物理对象,因为它们对应的定位也应该被更新。否则,由于在行走时应用的变换缩放,用户可能会误判虚拟环境中的虚拟对象的距离和方向。
[0115]
在一些实施例中,运行时子系统1130可以查阅墙壁地图和由实时环境感测子系统(例如,图11的实时环境感测子系统1120)检测或导出的动态物理对象的位置,以指派动画虚拟行人的目标位置。因为墙壁地图可以潜在地包含大量物理对象,所以运行时子系统1130可以将主动考虑的特设物理对象的数目限制到用户周围的半径内。运行时子系统1130还可以删除或减少动画虚拟行人的数目,以使得从用户的角度来看,不存在两个动画虚拟行人共享相同的方向。在一些方面,墙壁地图中标记的许多特设物理对象可以共享相似的位置(例如,沿着人行道)。这样,运行时子系统1130可以利用稀疏的动画虚拟行人集来虚拟地表示他们,赋予每个动画虚拟行人一个“个人空间”(例如,50cm),以防止用户与他们发生碰撞。
[0116]
在一些实施例中,运行时子系统1130可以使虚拟环境中的动画虚拟行人(或其他虚拟对象)的出现和消失显得自然。运行时子系统1130可以将虚拟行人动画化,以走向他们被指派的目标位置,如图5的图示510b中所描绘的。就此而言,运行时子系统1130可以“绘制”附近的虚拟行人来表示物理对象,从而在理想情况下保持虚拟行人显得好像他们正在
整个虚拟环境中行走,用于生动的虚拟场景的印象。每个虚拟行人都可以遵循一个主要方向,或者沿着用户将要遵循的方向上的路径行走,或者逆着它行走(即,朝向用户)。在一些实施例中,虚拟行人(或其他动态虚拟对象)的行走速度(例如,移动速度)可以由此取决于用户与他们的距离。虽然虚拟行人(或其他动态虚拟对象)可以超过用户到达检测的物理对象,但是如果距离足够远并且运行时子系统1130确定接近它的用户没有风险(例如,距离超过的阈值距离),则一些虚拟行人可以永远无法到达目标物理对象。
[0117]
在一些实施例中,并且为了确保合理的行为,运行时子系统1130可以利用在虚拟环境或场景内可见的虚拟行人(或其他动态虚拟对象)。如果可感知的虚拟行人(或其他动态虚拟对象)的数目不足以表示所有检测和/或确定的物理对象,则运行时子系统1130可以远在用户的当前视场之外并且在用户移动的相反方向上产生(例如,生成)新的虚拟行人(或其他动态虚拟对象)。就此而言,虚拟行人(或其他动态虚拟对象)然后可以朝向目标位置快速移动或行走。这种行为通常会产生沿着特设物理对象的轮廓移动或行走的虚拟行人(或其他动态虚拟对象)。换句话说,例如,它们可以在虚拟环境内移动,以在少量随机性被应用的情况下沿着墙壁地图中的轮廓移动或行走,以避免出现统一行军的印象。
[0118]
真实世界中的一些特设物理对象可以是孤立的,诸如柱子或灯笼。在这样的情况下,运行时子系统1130可以将虚拟行人(或其他动态虚拟对象)动画化,以行走到相应的虚拟位置并且在那里停下来。虽然在一些实施例中,虚拟行人(或其他动态虚拟对象)在这种情况下可以在到达相应虚拟位置后空闲,但是运行时子系统1130可以在相应虚拟位置处向虚拟行人(或其他动态虚拟对象)添加动画。例如,虚拟行人可以停下来系鞋带、玩他们的手机或抬头看,以及与虚拟环境看似常见或主题上一致的任何其他活动。
[0119]
为了表示动态物理对象,运行时子系统1130可以简单地移动虚拟行人(或其他动态虚拟对象)通过虚拟环境。实时环境感测子系统(例如,图11的实时环境感测子系统1120)可以跟踪动态物理对象的移动,使得运行时子系统1130能够持续更新虚拟世界中的关联的虚拟行人(或其他动态虚拟对象)以匹配其检测的对应定位和方向。
[0120]
在一些方面,如果虚拟行人(或其他动态虚拟对象)不再可用于表示物理对象,则运行时子系统1130可以在它们被确定在用户的视场之外后立即从虚拟环境中移除或删除它们。一旦已经确定用户在虚拟环境中走过它们,朝向用户移动以表示物理对象的虚拟行人(或其他动态虚拟对象)就可以简单地消失。一旦运行时子系统1130确定它们已经到达最远跟踪的特设障碍,走进与用户相同方向的虚拟行人(或其他动态虚拟对象)就可以移开。就此而言,运行时子系统1130可以将它们从虚拟环境中移除。
[0121]
如根据一些实施例描述的那样,运行时子系统1130可以引导用户导航到用户已经选择或提供的真实世界位置。除了在步行时保持用户安全之外,运行时子系统1130还可以生成被提供用于显示并且指向用户需要遵循的方向的指示符或提示,类似于真实世界的导航系统。这样,根据一些实施例,运行时子系统1130可以通过覆盖在虚拟环境上(例如,在用户视场的底部)的小箭头或其他图形指示符来表示方向。在一些方面,图形指示符可以将导航保持在最小,显露刚好足以让用户保持跟踪的信息。在一些其他方面,图形指示符可以与重指引的行走努力结合使用。在一些附加方面,虽然图形指示符可以指向大体方向,但虚拟行人(或其他动态虚拟对象)可以提供用户实际可以走哪条路径的更强线索。
[0122]
已经描述了本公开的各个方面,下面描述了用于基于接收的传感器数据实时地动
态渲染和更新完全沉浸式虚拟环境的示例性方法。参照图13,提供了描绘用于实时地动态渲染和更新完全沉浸式虚拟环境的方法1300的流程图。方法1300和本文描述的其他方法的每个框包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,各种功能可以由执行存储在存储器中的指令的模块、硬件设备或处理器来执行。方法的各个部分也可以被体现为存储在计算机存储介质上的计算机可用指令。
[0123]
在各种实施例中,头戴式显示器(hmd)被耦合到计算设备,诸如图6的vr漫游跟踪设备615。在一些实施例中,hmd可以被耦合到跟踪传感器集,诸如图6的跟踪传感器620a,以及环境传感器集,诸如图6的环境传感器620b。在一些另外的实施例中,hmd还可以被耦合到位置传感器集,诸如图6的位置传感器630c,等等。在各种实施例中,跟踪传感器、环境传感器或位置传感器中的任何一个或多个传感器可以被刚性地固定到hmd。最初,在框1310处,计算设备可以从该跟踪传感器集和该环境传感器集接收第一传感器数据集。设想用户佩戴hmd,以使得hmd被固定到用户的头部并且用户可以查看由计算设备生成的用于向hmd显示的图形输出。
[0124]
在框1320处,计算设备可以基于接收的第一传感器数据集来生成虚拟场景(例如,虚拟环境的至少一部分)。在一些方面,可以进一步基于定义的虚拟主题来生成虚拟场景。例如,虚拟主题可以包括可以基于计算设备接收的输入来选择的多个定义的虚拟主题中的一个主题。在另一实例中,例如,定义的虚拟主题可以与视频游戏的级别或世界相关联。所生成的虚拟场景可以与定义的虚拟主题相关联,以使得虚拟场景的可见特性与虚拟主题一致。举例来说,如果虚拟主题是幻想世界,则虚拟场景可以描绘草地、巨魔、仙女、巨石等。在另一示例中,如果虚拟主题是地牢世界,则虚拟场景可以描绘石地板、骑士、从地板升起的尖刺等。
[0125]
在一些实施例中,第一传感器数据集可以包括一个或多个环境传感器数据片段或帧,诸如由该组环境传感器生成的深度地图。就此而言,计算设备可以接收每条环境传感器数据,并且确定与该环境传感器集的视场或透视范围内的地面相关联的高度和/或距离,或者与存在于该环境传感器集的视场或透视范围内的其他物理对象相关联的高度和/或距离等。在一些实施例中,计算设备可以基于物理对象的确定的高度大于确定的地面高度来确定该物理对象存在于视场或透视范围内。在一些方面,地面的高度不是必须确定的,而是假设具有为零的高度。就此而言,基于接收的一条或多条环境传感器数据,被确定为具有大于零的高度的任何物理对象可以被检测,并且相对于该物理对象的距离可以被确定。
[0126]
计算设备因此可以生成虚拟场景以包括与确定的物理可导航路径(例如,真实世界中在物理上可穿越的无障碍物区域)相对应的虚拟路径的至少一部分(例如,虚拟可穿越区域的图形表示)。在一些实施例中,计算设备可以在虚拟场景内生成虚拟边界集(例如,虚拟墙),描绘至少部分地由虚拟边界有界化的虚拟房间或至少部分地由虚拟边界有界化的虚拟廊道。在一些实施例中,可以预先定义虚拟房间的维度。在一些其他实施例中,可以基于接收的环境传感器数据(例如,用于确定从hmd到周围墙壁的距离)来确定虚拟房间的维度。在一些方面,可以基于如下的确定来生成虚拟房间或虚拟廊道:没有接收足够的环境传感器数据来定义这样的维度,或者备选地已经接收足够的环境传感器数据来检测与物理环境相对应的位于(虚拟房间或廊道的)维度之外的物理对象。换句话说,基于接收的环境传感器数据,计算设备可以生成具有与物理环境中的物理房间或物理廊道(或走廊)的检测的
维度相对应的虚拟边界的虚拟房间或虚拟廊道,或者可以备选地生成具有预定义虚拟边界和预定义维度的虚拟房间或虚拟廊道。在一些实施例中,虚拟边界中的一个或多个可以呈现虚拟门,该虚拟门可以(例如基于接收的输入)被打开,以基于当用户处于与虚拟边界或虚拟门中的一项的位置相对应的物理环境中的某个位置时接收的附加环境传感器数据而显露另一虚拟房间或廊道。
[0127]
在一些另外的实施例中,在框1330处,计算设备可以从该环境传感器集接收第二传感器数据集。设想第二传感器数据集在第一传感器数据集之后被接收。在一些方面,第二传感器数据集在第一传感器数据集之后立即被接收,但是实施例不必限于此。基于接收的第二传感器数据集,计算设备可以检测物理对象存在于该环境传感器集的视场内。如上所指出,可以基于其确定的高度等来检测物理对象。这样,计算设备可以生成虚拟障碍物以表示检测的物理对象。在一些实施例中,所生成的虚拟障碍物可以与定义的虚拟主题相关联,以使得虚拟障碍物的可见特性与生成的虚拟环境的虚拟主题一致。在各种实施例中,生成的虚拟障碍物被放置在生成的虚拟环境内的与物理对象的确定的定位相对应的定位(例如,位置、距离)。
[0128]
在一些另外的实施例中,虚拟障碍物可以从存储在计算设备的存储器中的多个虚拟障碍物中被选择。可以基于多种因素来选择虚拟障碍物,诸如定义的虚拟主题、物理对象的确定的距离或相对位置、物理对象的确定的大小、物理对象的确定的颜色、物理对象的检测的可见特征、物理对象的检测的移动或运动等。在一些实施例中,可以选择虚拟上升机构(例如,从地板升起或落入地板的虚拟尖刺、从熔岩升起或下沉的岩石瓦片)以保持主题一致性、保持真实感并且说明在阈值距离内和/或在阈值时间量内检测的物理对象的原因等。
[0129]
在框1340处,计算设备可以提供用于向hmd立体显示的包括生成的虚拟障碍物的修改后的虚拟场景。hmd可以接收修改后的虚拟场景并且显示它,以使得用户可以体验虚拟环境。除了在物理世界中检测的一个或多个物理对象之外,修改后的虚拟场景还可以表示物理世界中确定的可导航路径。以这种方式,用户可以在物理环境中穿越,同时保持完全沉浸在虚拟环境中,而无需担心与佩戴hmd时无法看到的物理对象发生碰撞。
[0130]
参考图14,提供了描绘用于实时地动态渲染和更新完全沉浸式虚拟环境的方法1400的流程图。方法1400和本文所描述的其他方法的每个框包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,各种功能可以由执行存储在存储器中的指令的模块、硬件设备或处理器来执行。方法的各个部分也可以被体现为存储在计算机存储介质上的计算机可用指令。
[0131]
在各种实施例中,头戴式显示器(hmd)被耦合到计算设备,诸如图6的vr漫游跟踪设备615。在一些实施例中,hmd可以被耦合到跟踪传感器集,诸如图6的跟踪传感器620a,环境传感器集,诸如图6的环境传感器620b,以及位置传感器集,诸如图6的位置传感器630c等。在各种实施例中,跟踪传感器、环境传感器或位置传感器中的任何一个或多个传感器可以被刚性地固定到hmd。
[0132]
最初,在框1410处,计算设备可以从该跟踪传感器集、该环境传感器集和/或组位置传感器集接收第一传感器数据集。设想用户佩戴hmd,以使得hmd被固定到用户的头部并且用户可以查看由计算设备生成的用于向hmd显示的图形输出。在一些实施例中,计算设备可以基于从该位置传感器集接收的传感器数据来确定hmd的物理位置。计算设备可以获取
与确定的物理位置相对应的电子地图,无论是从计算设备的存储器中检索电子地图还是将确定的物理位置传送到第三方服务器以从中检索电子地图。在一些另外的实施例中,计算设备可以基于接收的输入从用户接收对应于目标物理目的地的选择。计算设备可以确定从确定的物理位置到选择的目标目的地的可行走路线,或者将确定的物理位置和目标物理目的地传送给第三方服务器以从中检索可行走路线。
[0133]
在框1420处,计算设备可以获取确定的可行走路线并且将其与与存储在计算设备的存储器中的虚拟世界相关联的虚拟路线集进行比较。计算设备可以基于执行的比较来选择与确定的可行走路线最佳对应的虚拟路线集中的一个虚拟路线。在各种实施例中,计算设备可以将选择的虚拟路线的一个或多个段映射到确定的可行走路线的一个或多个对应段。在一些另外的实施例中,当用户位于这些段内的确定被做出时,计算设备可以确定选择的虚拟路线的某些段可能需要对描绘给用户的虚拟场景进行调整。就此而言,计算设备可以补偿选择的虚拟路线和确定的可行走路线之间的确定的基于距离或角度的差异。
[0134]
在框1430处,计算设备可以基于接收的第一传感器数据集来生成虚拟场景(例如,虚拟环境的至少一部分)。在一些方面,虚拟场景可以还基于定义的虚拟主题而被生成。例如,虚拟主题可以包括可以基于由计算设备接收的输入而被选择的多个定义的虚拟主题中的一个虚拟主题。在另一实例中,例如,定义的虚拟主题可以与视频游戏的级别或世界相关联。所生成的虚拟场景可以与定义的虚拟主题相关联,以使得虚拟场景的可见特性与虚拟主题一致。
[0135]
在一些实施例中,计算设备可以基于确定的可行走路线和检索的电子地图来确定静态物理对象(例如,建筑物、街道)的存在。更具体地,电子地图可以描绘沿着确定的可行走路线的静态物理对象,以使得相对于hmd的静态物理对象的存在和位置可以在任何给定时间处由计算设备基于从该位置传感器集接收的位置数据而被确定。就此而言,计算设备可以提取描绘的静态物理对象的位置和维度,确定hmd的当前物理位置,并且修改虚拟场景以包括与确定的静态物理对象相对应的静态虚拟对象。
[0136]
计算设备因此可以生成虚拟场景以包括与确定的物理可导航路径(例如,真实世界中在物理上可穿越的无障碍物区域)相对应的虚拟路径的至少一部分(例如,虚拟可穿越区域的图形表示)。计算设备还可以生成表示虚拟场景内确定的静态虚拟对象的虚拟对象。
[0137]
在一些另外的实施例中,在框1440处,计算设备可以从该环境传感器集接收第二传感器数据集。在一些另外的实施例中,第二传感器数据集可以包括一个或多个环境传感器数据片段或帧,诸如由该环境传感器集生成的深度地图。就此而言,计算设备可以接收每条环境传感器数据,并且确定与该环境传感器集的视场或透视范围内的地面相关联的高度和/或距离,或者与存在于该环境传感器集的视场或透视范围内的其他物理对象相关联的高度和/或距离等。在一些实施例中,计算设备可以基于物理对象的确定的高度大于确定的地面高度来确定物理对象(例如,特设物理对象)存在于视场或透视范围内。在一些方面,地面的高度不是必须确定的,而是假设具有为零的高度。就此而言,基于一条或多条接收的环境传感器数据,被确定为具有大于零的高度的任何物理对象(例如,特设物理对象)可以被检测,并且相对于该物理对象的距离可以被确定。
[0138]
基于接收的第二传感器数据集,计算设备可以检测物理对象存在于该环境传感器集的视场内。如上所指出,物理对象可以基于其确定的高度等而被检测。这样,除了静态虚
拟对象之外,计算设备还可以生成虚拟障碍物来表示检测的物理对象(例如,特设物理对象)。在一些实施例中,生成的虚拟障碍物(或任何虚拟对象)可以与定义的虚拟主题相关联,以使得虚拟障碍物(或虚拟对象)的可见特性与生成的虚拟环境的虚拟主题一致。在各种实施例中,生成的虚拟障碍物被放置在生成的虚拟环境内、与检测的物理对象的确定的定位相对应的定位(例如,位置、距离)。
[0139]
在一些另外的实施例中,虚拟对象或障碍物可以从存储在计算设备的存储器中的多个虚拟障碍物被选择。可以基于各种因素来选择虚拟障碍物,诸如定义的虚拟主题、物理对象的确定的距离或相对位置、物理对象的确定的大小、物理对象的确定的颜色、物理对象的检测的可见特征、物理对象的检测的移动或运动等。在一些实施例中,可以选择虚拟上升机构(例如,从地板升起或落入地板的虚拟尖刺、从熔岩升起或下沉的岩石瓦片)以保持主题一致性、保持真实感并且说明在阈值距离内和/或在阈值时间量内检测的物理对象的原因等。在一些其他实施例中,可以选择动画或正在移动的虚拟对象(例如,行人、动物、车辆)来表示确定的正在移动物理对象或说明物理环境(例如,室外环境)的更多动态性质。
[0140]
在框1450处,计算设备可以提供用于向hmd立体显示的包括生成的静态虚拟对象和/或特设虚拟障碍物的修改后的虚拟场景。hmd可以接收修改后的虚拟场景并且显示它,以使得用户可以体验虚拟环境。除了在物理世界中检测的一个或多个物理对象之外,修改后的虚拟场景还可以表示物理世界中确定的可导航路径。以这种方式,用户可以在物理环境中穿越,同时保持完全沉浸在虚拟环境中,而无需担心与佩戴hmd时无法看到的物理对象发生碰撞。
[0141]
现在参考图15,计算设备1500包括直接或间接耦合以下设备的总线1510:存储器1512、一个或多个处理器1514、一个或多个呈现组件1516、输入/输出端口1518、输入/输出组件1520和说明性电源1522。总线1510表示的可以是一个或多个总线(诸如地址总线、数据总线或它们的组合)。虽然为了清楚起见,用线条表示图15的各个块,但是现实中,勾画各个组件不是那么清楚,并且比喻地,线条更准确地是灰色和模糊的。例如,人们可以将诸如显示设备的呈现组件视为i/o组件。此外,处理器具有存储器。我们认识到这就是本领域的本质,并且重申,图15的图表仅图示了可以结合本发明的一个或多个实施例使用的示例性计算设备。在诸如“工作站”、“服务器”、“膝上型计算机”、“手持设备”等的种类之间没有区别,因为所有这些都被设想在图15以及对“计算设备”的参考的范围内。
[0142]
计算设备1500通常包括各种计算机可读介质。计算机可读介质可以是可以由计算设备1500访问的任何可用介质并且包括易失性和非易失性介质、可移除和不可移除介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。
[0143]
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术所实现的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd

rom、数字多功能磁盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储装置或其他磁存储设备,或者可以被用于存储所需信息并且由计算设备1500可访问的任何其他介质。计算机存储介质本身不包括信号。
[0144]
通信介质通常在诸如载波或其他传输机制的调制数据信号中包含计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息递送介质。术语“调制数据信号”意
味着一种信号,该信号具有以使得对信号中的信息进行编码的方式来设置或改变的一个或多个特性。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、rf、红外线和其他无线介质的无线介质。上述任何一种的组合也应被包括在计算机可读介质的范围内。
[0145]
存储器1512包括易失性和/或非易失性存储器形式的计算机存储介质。存储器可以是可移除的、不可移除的或其组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备1500包括从诸如存储器1512或i/o组件1520的各种实体读取数据的一个或多个处理器。(多个)呈现组件1516向用户或其他设备呈现数据指示。示例性呈现组件包括显示设备、扬声器、打印组件、振动组件等。
[0146]
i/o端口1518允许计算设备1500逻辑地被耦合到包括i/o组件1520的其他设备,其中一些可以被内置。说明性组件包括麦克风、操纵杆、游戏手柄、卫星天线、扫描仪、打印机、无线设备等。
[0147]
本发明的实施例的主题在本文中被具体描述以满足法定要求。然而,描述本身并不旨在限制本专利的范围。相反,发明人已经设想到,所要求保护的主题也可以其他方式体现,以包括不同步骤或与本文档中描述的步骤类似的步骤组合,并且结合其他现有技术或未来技术。此外,尽管术语“步骤”和/或“框”在本文中可以被用来暗示所采用的方法的不同元素,但这些术语不应被解释为暗示本文所公开的各个步骤之中或之间的任何特定顺序——除非并且除了各个步骤的顺序被明确描述之外。
[0148]
出于本公开的目的,单词“包括(including)”与单词“包括(comprising)”具有相同的广泛含义,并且单词“访问”包括“接收”、“参考”或“检索”。此外,除非另有相反说明,否则诸如“一个(a)”和“一个(an)”的单词包括复数和单数。因此,例如,当存在一个或多个特征时,满足“一个特征”的约束。此外,术语“或”包括连词、析取词和两者(a或b因此包括a或者b,以及a和b)。
[0149]
出于以上详细讨论的目的,参考包括或被耦合到虚拟化计算设备的头戴式显示单元来描述本发明的实施例;然而,本文描述的头戴式显示单元仅仅是示例性的。组件可以被配置用于执行实施例的新颖方面,其中被配置用于包括被编程以使用代码执行特定任务或实现特定抽象数据类型。此外,虽然本发明的实施例通常可以参考头戴式显示单元和本文描述的示意图,但是应当理解,所描述的技术可以被扩展到其他实现上下文。
[0150]
本发明的实施例已经关于特定实施例进行了描述,这些特定实施例在所有方面都旨在是说明性的而不是限制性的。在不脱离本发明范围的情况下,备选实施例对于本发明所属领域的普通技术人员将变得明显。
[0151]
从上文可以看出,本发明很好地适用于实现上文阐述的所有目的和目标并且具有明显的结构固有的其他优点。
[0152]
应当理解,某些特征和子组合是实用的并且可以在不参考其他特征或子组合的情况下被采用。这被权利要求所设想并且在权利要求的范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献