3D对象注释的制作方法

文档序号:32351776发布日期:2022-11-26 14:55阅读:164来源:国知局
3D对象注释的制作方法
3d对象注释
1.相关申请的交叉引用
2.本技术要求于2020年2月14日提交的美国临时申请号62/977,073的权益,其内容通过引用整体并入本文。
技术领域
3.本公开大体涉及用于呈现和注释虚拟内容的系统和方法,并且特别地涉及用于在混合现实环境中呈现和注释虚拟内容的系统和方法。


背景技术:

4.在计算环境中虚拟环境是普遍存在的,虚拟环境应用于视频游戏(其中,虚拟环境可表示游戏世界);地图(其中,虚拟环境可表示待导航的地形);模拟(其中,虚拟环境可模拟真实环境);数字故事(其中,在虚拟环境中虚拟角色可彼此交互);和许多其他应用。现代计算机用户通常舒适感知虚拟环境并且与虚拟环境交互。然而,用户关于虚拟环境的体验可能受到用于呈现虚拟环境的技术的限制。例如,常规显示器(例如,2d显示屏)和音频系统(例如,固定扬声器)可能不能够以产生令人信服、现实并且沉浸式体验的方式实现虚拟环境。
5.虚拟现实(“vr”)、增强现实(“ar”)、混合现实(“mr”)、和相关技术(统称为“xr”)共享向xr系统的用户呈现对应于由计算机系统中的数据表示的虚拟环境的感觉信息的能力。本公开预期了vr、ar和mr系统之间的区别(尽管一些系统在一方面(例如,视觉方面)可被分类为vr并且同时在另一方面(例如,音频方面)被分类为ar或mr))。如本文所使用的,vr系统呈现了在至少一个方面中替换用户的真实环境的虚拟环境;例如,vr系统可以向用户呈现虚拟环境的视图,而同时模糊他或她的真实环境的视图,诸如利用光阻头戴式显示器。类似地,vr系统可以向用户呈现对应于虚拟环境的音频,而同时阻挡(衰减)来自真实环境的音频。
6.vr系统可能会体验到由于用虚拟环境替换用户的真实环境而导致的各种缺点。一个缺点是当用户的虚拟环境中的视场不再对应于他或她的内耳的状态时可能出现晕动病(motion sickness)的感觉,该状态检测到一个人在真实环境(非虚拟环境)中的平衡和取向。类似地,用户可能会在他们自己的身体和四肢(用户感觉到在真实环境中“落地”所依赖的视图)不是直接能看到的vr环境中体验到迷失方向。另一个缺点是必须呈现全3d虚拟环境的vr系统上的计算负担(例如,存储、处理能力),特别是在试图使用户沉浸在虚拟环境中的实时应用中。类似地,此类环境可能需要达到非常高的真实感标准才能被认为是沉浸式的,因为用户往往对虚拟环境中的微小缺陷都很敏感——任何缺陷都会破坏用户在虚拟环境中的沉浸感。此外,vr系统的另一个缺点是系统的此类应用无法利用真实环境中广泛的感官数据,诸如人们在中体验到的各种视与听。一个相关的缺点是,vr系统可能难以创建多个用户可以交互的共享环境,因为在真实环境中共享物理空间的用户可能无法在虚拟环境中直接看到彼此或与彼此交互。
7.如本文所使用的,ar系统呈现在至少一个方面中重叠或覆盖真实环境的虚拟环境。例如,ar系统可以向用户呈现重叠在用户的真实环境的视图上的虚拟环境的视图,诸如利用呈现所显示的图像同时允许光穿过显示器到用户的眼睛中的透射式头戴式显示器。类似地,ar系统可以向用户呈现对应于虚拟环境的音频,而同时在来自真实环境的音频中混合。类似地,如本文所使用的,mr系统呈现在至少一个方面中覆盖或重叠真实环境的虚拟环境,如ar系统所做,并且可以附加地允许在至少一个方面中mr系统中的虚拟环境可以与真实环境交互。例如,虚拟环境中的虚拟角色可以切换真实环境中的灯开关,使得真实环境中的对应的灯泡开启或关断。作为另一个示例,虚拟角色可以对真实环境中的音频信号作出反应(诸如用面部表情)。通过维持真实环境的呈现,ar和mr系统可以避免vr系统的前述缺点中的一些缺点;例如,用户的晕动病减少,因为来自真实环境(包括用户的自己的身体)的视觉提示可以保持可见,并且该系统不需要向用户呈现完全实现的3d环境即可沉浸其中。进一步地,ar和mr系统可以利用真实世界感觉输入(例如,布景、对象和其他用户的视图和声音)来创建增强该输入的新应用。
8.xr系统可以被独特地定位以实现人与人之间的更大协作。以持久和三维的方式呈现虚拟内容的能力可以让人们更自然地与虚拟内容进行交互。例如,相比二维屏幕所能提供的,在三维空间中布置虚拟对象可能实现更自然的定位回忆。在二维屏幕的用户可能必须通过搜寻四十个打开的选项卡中的一个选项卡来重新打开所需的应用的情况下,xr系统的用户可能能够精确定位显示在桌子上的所需虚拟对象(如拿起放在桌子上的真实文件夹)。此外,xr系统可以让用户看到其他用户的虚拟化身,以模拟其他人的现场存在。这可以比电话甚至视频会议所能提供的实现更自然的协作。因此,可能希望开发用于实现xr系统上的深度用户协作的系统和方法。
9.xr系统可通过将虚拟视觉和音频提示与真实的视与听组合来提供独特的提高的沉浸感和真实性。因此,在一些xr系统中,期望呈现增强、改进或更改对应的真实环境的虚拟环境。本公开涉及使能跨多个xr系统一致地放置虚拟对象的xr系统。


技术实现要素:

10.本公开的示例描述了用于呈现和注释虚拟内容的系统和方法。根据示例方法,经由可穿戴设备的透射式显示器在第一位置处向第一用户呈现虚拟对象。从第一用户接收第一输入。响应于接收到第一输入,经由透射式显示器在距第一位置的第一位移处呈现虚拟注释。向第二用户发送第一数据,第一数据与虚拟注释和第一位移相关联。从第二用户接收第二输入。响应于接收到第二输入,经由透射式显示器在距第一位置的第二位移处向第一用户呈现虚拟注释。向远程服务器发送第二数据,第二数据与虚拟对象、虚拟注释、第二位移和第一位置相关联。
附图说明
11.图1a至1c示出根据一些实施例的示例混合现实环境。
12.图2a至2d示出根据一些实施例的可用于生成混合现实环境并且与混合现实环境交互的示例混合现实环境的组件。
13.图3a示出根据一些实施例的可用于向混合现实环境提供输入的示例混合现实手
持式控制器。
14.图3b示出根据一些实施例的可与示例混合现实系统一起使用的示例辅助单元。
15.图4示出根据一些实施例的用于示例混合现实系统的示例功能框图。
16.图5a-5c示出根据一些实施例的混合现实协作会话的示例。
17.图6示出根据一些实施例的会话管理器架构的示例。
18.图7示出根据一些实施例的会话实例的示例。
19.图8示出根据一些实施例的混合现实协作会话的示例。
20.图9示出根据一些实施例的注释菜单的示例。
21.图10示出根据一些实施例的混合现实注释的示例。
22.图11示出根据一些实施例的混合现实注释的示例。
具体实施方式
23.在示例的以下描述中,参考了构成其一部分的附图,并且在附图中通过图示的方式示出了可以实施的具体示例。应理解,在不脱离所公开的示例的范围的情况下,可以使用其他示例并且可以做出结构改变。
24.混合现实环境
25.像所有人一样,混合现实系统的用户存在于真实环境中——即,用户可感知“真实世界”的三维部分和所有其内容。例如,用户使用自己的普通人类感官——视觉、听觉、触觉、味觉、嗅觉——感知真实环境,并通过在真实环境中移动自己的身体与真实环境进行交互。真实环境中的定位可被描述为坐标空间中的坐标;例如,坐标可包括纬度、经度和相对于海平面的海拔;在三个正交维度上距参考点的距离;或其他适合的值。同样地,矢量可描述在坐标空间中具有方向和幅度的量。
26.计算设备可例如在与设备相关联的存储器中维护虚拟环境的表示。如本文所使用的,虚拟环境是三维空间的计算表示。虚拟环境可包括与该空间相关联的任何对象、动作、信号、参数、坐标、矢量、或其他特性的表示。在一些示例中,计算设备的电路(例如,处理器)可以维护和更新虚拟环境的状态;即,处理器可以在第一时间t0,基于与虚拟环境相关联的数据和/或由用户提供的输入来确定第二时间t1的虚拟环境的状态。例如,如果虚拟环境中的对象在时间t0位于第一坐标处,并且具有某个编程的物理参数(例如,质量、摩擦系数);以及从用户接收的输入指示应该在方向矢量中向对象施加力;处理器可应用运动学定律以使用基础力学确定对象在时间t1的位置。处理器可以使用已知的关于虚拟环境的任何适合的信息和/或任何适合的输入来确定虚拟环境在时间t1的状态。在维护和更新虚拟环境的状态时,处理器可执行任何适合的软件,包括与在虚拟环境中创建和删除虚拟对象有关的软件;用于定义虚拟环境中的虚拟对象或角色的行为的软件(例如,脚本);用于定义虚拟环境中的信号(例如,音频信号)的行为的软件;用于创建和更新与虚拟环境相关联的参数的软件;用于生成虚拟环境中的音频信号的软件;用于处理输入和输出的软件;用于实现网络操作的软件;用于应用资产数据(例如,随时间移动虚拟对象的动画数据)的软件;或许多其他可能性。
27.输出设备(诸如显示器或者扬声器)可以向用户呈现虚拟环境的任何或所有方面。例如,虚拟环境可包括可以呈现给用户的虚拟对象(其可包括无生命对象;人;动物;光等的
表示)。处理器可以确定虚拟环境的视图(例如,对应于具有坐标原点、视图轴和视锥的“相机”);以及向显示器渲染对应于该视图的虚拟环境的可视场景。出于该目的,可以使用任何适合的渲染技术。在一些示例中,可视场景可以仅包括虚拟环境中的一些虚拟对象,并且不包括某些其他虚拟对象。类似地,虚拟环境可包括可呈现给用户作为一个或多个音频信号的音频方面。例如,虚拟环境中的虚拟对象可生成起源于对象的位置坐标的声音(例如,虚拟角色可以说话或引起声音效果);或者虚拟环境可与音乐提示或环境声音相关联,该音乐提示或环境声音可能与特定定位相关联,或可能不相关联。处理器可以确定与“听者”坐标对应的音频信号——例如,与虚拟环境中的声音的合成对应的音频信号,并进行混合和处理以模拟听者在听者坐标处听到的音频信号——并经由一个或多个扬声器将音频信号呈现给用户。
28.由于虚拟环境仅作为计算结构存在,所以用户不能使用自己的普通感官直接感知虚拟环境。相反,用户只能间接地感知虚拟环境,如例如通过显示器、扬声器、触觉输出设备等呈现给用户的。类似地,用户不能直接接触、操控、或以其他方式与虚拟环境交互;但可以经由输入设备或传感器向处理器提供输入数据,该处理器可以使用设备或传感器数据更新虚拟环境。例如,相机传感器可提供指示用户试图移动虚拟环境中的对象的光学数据,并且处理器可使用该数据使得对象在虚拟环境中做出相应响应。
29.混合现实系统可以向用户呈现组合真实环境和虚拟环境的各方面的混合现实环境(“mre”),例如使用透射式显示器和/或一个或多个扬声器(其可以例如并入可穿戴头部设备中)。在一些实施例中,一个或多个扬声器可以在头戴式可穿戴单元的外部。如本文所使用的,mre是真实环境和对应的虚拟环境的同时表示。在一些示例中,对应的真实环境和虚拟环境共享单个坐标空间;在一些示例中,真实坐标空间和对应的虚拟坐标空间通过变换矩阵(或其他适合的表示)彼此相关。因此,单个坐标(在一些示例中,连同变换矩阵一起)可以定义真实环境中的第一位置,以及虚拟环境中的第二对应位置;反之亦然。
30.在mre中,虚拟对象(例如,在与mre相关联的虚拟环境中)可以对应于真实对象(例如,在与mre相关联的真实环境中)。例如,如果mre的真实环境包括位置坐标处的真实灯杆(真实对象),则mre的虚拟环境可包括对应的位置坐标处的虚拟灯杆(虚拟对象)。如本文所使用的,真实对象与其对应的虚拟对象组合在一起构成“混合现实对象”。不需要虚拟对象与对应的真实对象完美匹配或者对准。在一些示例中,虚拟对象可以是对应的真实对象的简化版本。例如,如果真实环境包括真实灯杆,则对应的虚拟对象可以包括具有与真实灯杆大致相同高度和半径的圆柱体(反映该灯杆在形状方面可能大致是圆柱形的)。以这种方式简化虚拟对象可提高计算效率,并且可以简化将对该虚拟对象执行的计算。进一步地,在mre的一些示例中,真实环境中的并非所有真实对象都可以与对应的虚拟对象相关联。同样地,在mre的一些示例中,虚拟环境中的并非所有虚拟对象都可以与对应的真实对象相关联。即,一些虚拟对象可能仅存在于mre的虚拟环境中,而没有任何真实世界的对应物。
31.在一些示例中,虚拟对象可以具有与对应的真实对象的特性不同的特征,有时甚至是大相径庭的特征。例如,虽然mre中的真实环境可包括绿色双臂仙人掌——多刺无生命对象——但mre中的对应的虚拟对象可以具有具有人类面部特征和粗暴行为的绿色双臂虚拟角色的特性。在该示例中,虚拟对象在某些特性(颜色、手臂数量)方面与其对应的真实对象类似;但是在其他特性(面部特征、个性)方面与真实对象不同。以这种方式,虚拟对象就
有可能以创造性、抽象、夸大、或想象的方式表示真实对象;或者向其他无生命的真实对象赋予行为(例如,人类个性)。在一些示例中,虚拟对象可以是纯想象创造而没有现实世界对应物(例如,虚拟环境中的虚拟怪物,也许在与真实环境中的空白空间对应的位置处)。
32.与向用户呈现虚拟环境同时模糊真实环境的vr系统相比,呈现mre的混合现实系统提供了在呈现虚拟环境时真实环境保持可感知的优点。因此,混合现实系统的用户能够使用与真实环境相关联的视觉和听觉提示来体验对应的虚拟环境并且与之交互。作为示例,虽然vr系统的用户可能难以感知虚拟环境中显示的虚拟对象或与之交互——因为如上所述,用户不能直接感知虚拟环境或与之交互——但mr系统的用户可发现通过看到、听到和触摸他或她自己的真实环境中的对应的真实对象来与虚拟对象交互是直观并且自然的。该级别的交互性可以增强用户对虚拟环境的沉浸感、联系感和参与感。类似地,通过同时呈现真实环境和虚拟环境,混合现实系统可以减少与vr系统相关联的负面心理感觉(例如,认知失调)和负面身体感觉(例如,晕动病)。混合现实系统进一步为可以增加或更改我们对现实世界的体验的应用提供了许多可能性。
33.图1a示出了用户110使用混合现实系统112的示例真实环境100。例如如下文所描述的,混合现实系统112可以包括显示器(例如,透射式显示器)和一个或多个扬声器,以及一个或多个传感器(例如,相机)。示出的真实环境100包括用户110站立的矩形房间104a;以及真实对象122a(灯)、124a(桌子)、126a(沙发)和128a(画)。房间104a还包括位置坐标106,其可以被认为是真实环境100的原点。如图1a所示,以点106(世界坐标)处为原点的环境/世界坐标系108(包括x轴108x、y轴108y和z轴108z)可以定义真实环境100的坐标空间。在一些实施例中,环境/世界坐标系108的原点106可以对应于混合现实环境112被通电的位置。在一些实施例中,环境/世界坐标系108的原点106可以在操作期间重置。在一些示例中,用户110可以被认为是真实环境100中的真实对象;类似地,用户110的身体部分(例如,手、脚)可以被认为是真实环境100中的真实对象。在一些示例中,以点115(例如,用户/听众/头部坐标)处为原点的用户/听众/头部坐标系114(包括x轴114x、y轴114y和z轴114z)可以定义混合现实系统112所在的用户/听众/头部的坐标空间。可以相对于混合现实系统112的一个或多个组件来定义用户/听众/头部坐标系114的原点115。例如,诸如在混合现实系统112的初始校准期间,可以相对于混合现实系统112的显示来定义用户/听众/头部坐标系114的原点115。矩阵(其可以包括平移矩阵和四元数矩阵或其他旋转矩阵)或其他适合的表示可以表征用户/听众/头部坐标系114空间与环境/世界坐标系108空间之间的变换。在一些实施例中,可以相对于用户/听众/头部坐标系114的原点115来定义左耳坐标116和右耳坐标117。矩阵(其可以包括平移矩阵和四元数矩阵或其他旋转矩阵)或其他适合的表示可以表征左耳坐标116和右耳坐标117与用户/听众/头部坐标系114空间之间的变换。用户/听众/头部坐标系114可以简化相对于用户的头部或头戴式设备(例如,相对于环境/世界坐标系108)的位置的表示。使用同时定位和地图创建(slam)、视觉里程计或其他技术,可以实时确定和更新用户坐标系114与环境坐标系108之间的变换。
34.图1b示出了与真实环境100对应的示例虚拟环境130。所示的虚拟环境130包括与真实矩形房间104a对应的虚拟矩形房间104b;与真实对象122a对应的虚拟对象122b;与真实对象124a对应的虚拟对象124b;以及与真实对象126a对应的虚拟对象126b。与虚拟对象122b、124b、126b相关联的元数据可以包括从对应的真实对象122a、124a、126a导出的信息。
虚拟环境130附加地包括虚拟怪物132,该虚拟怪物132不对应于真实环境100中的任何真实对象。真实环境100中的真实对象128a不对应于虚拟环境130中的任何虚拟对象。以点134(持久坐标)处为原点的持久坐标系133(包括x轴133x、y轴133y和z轴133z)可以定义虚拟内容的坐标空间。持久坐标系133的原点134可以相对于/关于一个或多个真实对象(诸如真实对象126a)来定义。矩阵(其可以包括平移矩阵和四元数矩阵或其他旋转矩阵)或其他适合的表示可以表征持久坐标系133空间与环境/世界坐标系108空间之间的变换。在一些实施例中,虚拟对象122b、124b、126b和132中的每个虚拟对象可以相对于持久坐标系133的原点134具有它们自己的持久坐标点。在一些实施例中,可以存在多个持久坐标系,并且虚拟对象122b、124b、126b和132中的每个虚拟对象可以相对于一个或多个持久坐标系具有其自己的持久坐标点。
35.持久坐标数据可以是相对于物理环境持续存在的坐标数据。mr系统(例如,mr系统112、200)可以使用持久坐标数据来放置永久虚拟内容,该持久虚拟内容可不与显示虚拟对象的显示器的运动相绑定。例如,二维屏幕可仅显示相对于屏幕上的位置的虚拟对象。随着二维屏幕移动,虚拟内容可以随着屏幕移动。在一些实施例中,可以在房间的角落显示持久虚拟内容。mr用户可能看向角落看到虚拟内容,看向角落之外(其中,因为由于用户头部的运动,虚拟内容可能已从用户视野内移动到用户视野外的定位,所以虚拟内容可能不再可见),并且再回看角落中的虚拟内容(类似于真实对象可如何表现)。
36.在一些实施例中,持久坐标数据(例如,持久坐标系(persistent coordinate system)和/或持久坐标系(persistent coordinate frame))可以包括原点和三个轴。例如,可以通过mr系统将持久坐标系分配给房间的中心。在一些实施例中,用户可以在房间周围移动、离开房间、重新进入房间等,并且持久坐标系可以保持在房间的中心(例如,因为它相对于物理环境持续存在)。在一些实施例中,可以使用对持久坐标数据的转换来显示虚拟对象,这可以实现显示持久虚拟内容。在一些实施例中,mr系统可使用同时定位和地图创建来生成持久坐标数据(例如,mr系统可将持久坐标系分配给空间中的点)。在一些实施例中,mr系统可通过以规则间隔生成持久坐标数据来映射环境(例如,mr系统可在网格中分配持久坐标系,其中持久坐标系可至少在另一持久坐标系的五英尺范围内)。
37.在一些实施例中,持久坐标数据可以由mr系统生成并发送到远程服务器。在一些实施例中,远程服务器可被配置为接收持久坐标数据。在一些实施例中,远程服务器可被配置为同步来自多个观察实例的持久坐标数据。例如,多个mr系统可以用持久坐标数据映射同一房间,并将该数据发送到远程服务器。在一些实施例中,远程服务器可以使用该观察数据来生成规范持久坐标数据,该数据可以基于一个或多个观察。在一些实施例中,规范持久坐标数据可能比持久坐标数据的单个观察更准确和/或更可靠。在一些实施例中,规范持久坐标数据可被发送到一个或多个mr系统。例如,mr系统可以使用图像识别和/或位置数据来识别它位于具有对应规范持久坐标数据的房间中(例如,因为其他mr系统先前已经映射了房间)。在一些实施例中,mr系统可以从远程服务器接收对应于其位置的规范持久坐标数据。
38.相对于图1a和图1b,环境/世界坐标系108定义用于真实环境100和虚拟环境130二者的共享坐标空间。在示出的示例中,坐标空间具有点106处的原点。进一步地,坐标空间由相同的三个正交轴(108x、108y、108z)定义。因此,真实环境100中的第一位置和虚拟环境
130中的第二对应位置可以相对于相同的坐标空间来描述。这简化了标识和显示真实环境和虚拟环境中的对应的位置,因为可使用相同的坐标来标识这两个位置。然而,在一些示例中,对应的真实环境和虚拟环境不需要使用共享坐标空间。例如,在一些示例中(未示出),矩阵(其可以包括平移矩阵和四元数矩阵或其他旋转矩阵)或其他适合的表示可以表征真实环境坐标空间与虚拟环境坐标空间之间的变换。
39.图1c示出了经由混合现实系统112向用户同时呈现真实环境100和虚拟环境130的各方面的示例mre 150。在示出的示例中,mre 150同时向用户110呈现来自真实环境100的真实对象122a、124a、126a和128a(例如,经由混合现实系统112的显示器的透射部分);以及来自虚拟环境130的虚拟对象122b、124b、126b和132(例如,经由混合现实系统112的显示器的活动显示部分)。如上文,原点106充当对应于mre 150的坐标空间的原点,并且坐标系108定义坐标空间的x轴、y轴和z轴。
40.在示出的示例中,混合现实对象包括占用坐标空间108中的对应位置的对应的真实对象和虚拟对象对(即,122a/122b、124a/124b、126a/126b)。在一些示例中,真实对象和虚拟对象二者可以同时对用户110可见。这可能在例如虚拟对象呈现被设计为增加对应的真实对象的视图的信息的实例中(诸如在博物馆应用中,其中虚拟对象呈现古代损坏雕塑件的缺失部分)是期望的。在一些示例中,可以显示虚拟对象(122b、124b和/或126b)(例如,经由使用像素化遮挡快门的活动像素化遮挡)以便遮挡对应的真实对象(122a、124a和/或126a)。这可能在例如虚拟对象充当对应的真实对象的视觉替换物的实例中(诸如在无生命真实对象变为“活的”角色的交互式讲故事应用中)是期望的。
41.在一些示例中,真实对象(例如,122a、124a、126a)可以与虚拟内容或辅助数据(helper data)(其可能不一定构成虚拟对象)相关联。虚拟内容或辅助数据可以促进混合现实环境中的虚拟对象的处理或处置。例如,这样的虚拟内容可以包括对应的真实对象的二维表示;与对应的真实对象相关联的自定义资产类型;或与对应的真实对象相关联的统计数据。该信息可以实现或者促进涉及真实对象的计算而不产生不必要的计算开销。
42.在一些示例中,上文所描述的呈现还可以包含音频方面。例如,在mre 150中,虚拟怪物132可以与一个或多个音频信号相关联,诸如当怪物在mre 150周围行走时生成的脚步声效果。如下文进一步描述的,混合现实系统112的处理器可以计算与mre 150中的所有此类声音的混合和处理合成所对应的音频信号,并且经由包括在混合现实系统112中的一个或多个扬声器和/或一个或多个外部扬声器将音频信号呈现给用户110。
43.示例混合现实系统
44.示例混合现实系统112可以包括可穿戴头部设备(例如,可穿戴增强现实或混合现实头部设备),其包括:显示器(其可以包括左和右透射式显示器,其可以是近眼显示器,以及用于将来自显示器的光耦合到用户的眼睛的相关联的组件);左和右扬声器(例如,其分别与用户的左耳和右耳邻近定位);惯性测量单元(imu)(例如,其安装到头部设备的镜腿);正交线圈电磁接收器(例如,其安装到左镜腿件);远离用户取向的左相机和右相机(例如,深度(飞行时间)相机);以及朝向用户取向的左眼相机和右眼相机(例如,用于检测用户的眼运动)。然而,混合现实系统112可以包含任何适合的显示技术以及任何适合的传感器(例如,光学、红外、声学、lidar、eog、gps、磁性)。另外,混合现实系统112可以包含与其他设备和系统(包括其他混合现实系统)通信的网络特征(例如,wi-fi能力)。混合现实系统112还
可以包括电池(其可以安装在辅助单元中,诸如被设计为穿戴在用户的腰部周围的腰带包)、处理器和存储器。混合现实系统112的可穿戴头部设备可以包括跟踪组件,诸如imu或其他适合的传感器,其被配置为输出可穿戴头部设备相对于用户的环境的一组坐标。在一些示例中,跟踪组件可以向执行同时定位和地图创建(slam)和/或视觉里程计算法的处理器提供输入。在一些示例中,混合现实系统112还可以包括手持式控制器300和/或辅助单元320,其可以是可穿戴腰带包,如下文进一步描述的。
45.图2a-2d示出了可以用于将mre(其可以对应于mre 150)或其他虚拟环境呈现给用户的示例混合现实系统200(其可以对应于混合现实系统112)的组件。图2a示出了在示例混合现实系统200中包括的可穿戴头部设备2102的透视图。图2b示出了在用户的头部2202上佩戴的可穿戴头部设备2102的俯视图。图2c示出了可穿戴头部设备2102的前视图。图2d示出了可穿戴头部设备2102的示例目镜2110的边视图。如图2a-2c所示,示例可穿戴头部设备2102包括示例左目镜(例如,左透明波导集目镜)2108和示例右目镜(例如,右透明波导集目镜)2110。每个目镜2108和2110可以包括:透射元件,通过该透射元件,真实环境可以是可见的;以及显示元件,其用于呈现与真实环境重叠的显示(例如,经由图像级调制光)。在一些示例中,这样的显示元件可以包括用于控制图像级调制光的流动的表面衍射光学元件。例如,左目镜2108可以包括左耦入(incoupling)光栅集2112、左正交光瞳扩展(ope)光栅集2120和左出射(输出)光瞳扩展(epe)光栅集2122。类似地,右目镜2110可以包括右耦入光栅集2118、右ope光栅集2114和右epe光栅集2116。图像级调制光可以经由耦入光栅2112和2118、ope 2114和2120、和epe 2116和2122传递到用户的眼睛。每个耦入光栅集2112、2118可以被配置为将光朝向其对应的ope光栅集2120、2114偏转。每个ope光栅集2120、2114可以被设计为递增地将光向下朝向其相关联的epe 2122、2116偏转,从而水平延伸所形成的出射光瞳。每个epe 2122、2116可以被配置为将从其对应的ope光栅集2120、2114接收的光的至少一部分向外递增地重引导到定义在目镜2108、2110后面的用户眼盒(eyebox)位置(未示出),垂直延伸在眼盒处形成的出射光瞳。可替代地,代替耦入光栅集2112和2118、ope光栅集2114和2120、和epe光栅集2116和2122,目镜2108和2110可以包括用于控制将图像级调制光耦合到用户的眼睛的光栅和/或折射和反射特征的其他布置。
46.在一些示例中,可穿戴头部设备2102可以包括左镜腿2130和右镜腿2132,其中,左镜腿2130包括左扬声器2134并且右镜腿2132包括右扬声器2136。正交线圈电磁接收器2138可以定位在左镜腿件中,或者在可穿戴头部单元2102中的另一适合的位置。惯性测量单元(imu)2140可以定位在右镜腿2132中,或者在可穿戴头部设备2102中的另一适合的位置。可穿戴头部设备2102还可以包括左深度(例如,飞行时间)相机2142和右深度相机2144。深度相机2142、2144可以在不同的方向上适合地取向以便一起覆盖更宽的视场。
47.在图2a-2d中示出的示例中,图像级调制左光源2124可以通过左耦入光栅集2112光学耦合到左目镜2108中,并且图像级调制右光源2126可以通过右耦入光栅集2118光学耦合到右目镜2110中。图像级调制光源2124、2126可以包括例如光纤扫描器;投影仪,包括电子光调制器,诸如数字光处理(dlp)芯片或硅上液晶(lcos)调制器;或发射显示器,诸如微型发光二极管(μled)或微型有机发光二极管(μoled)面板,其使用每侧一个或多个透镜耦合到耦入光栅集2112、2118中。输入耦合光栅集2112、2118可以将来自图像级调制光源2124、2126的光偏转到大于目镜2108、2110的全内反射(tir)的临界角的角。ope光栅集
2114、2120向下朝向epe光栅集2116、2122递增地偏转通过tir传播的光。epe光栅集2116、2122将光递增地耦合向用户的面部,包括用户的眼睛的瞳孔。
48.在一些示例中,如图2d所示,左目镜2108和右目镜2110中的每一个包括多个波导2402。例如,每个目镜2108、2110可以包括多个单独波导,每个波导专用于相应的颜色通道(例如,红色、蓝色和绿色)。在一些示例中,每个目镜2108、2110可以包括多组此类波导,其中,每组被配置为向发射光给予不同的波前曲率。波前曲率可以相对于用户的眼睛是凸的,例如以呈现定位在用户的前面一定距离(例如,对应于波前曲率的倒数的距离)的虚拟对象。在一些示例中,epe光栅集2116、2122可以包括通过变更跨每个epe出射光的坡印廷矢量实现凸波前曲率的弯曲光栅凹陷。
49.在一些示例中,为了创建所显示的内容是三维的感觉,可以通过图像级光调制器2124、2126和目镜2108、2110将立体调节的左和右眼影像呈现给用户。可以通过选择波导(并且因此对应的波前曲率)来增强三维虚拟对象的呈现的感知的真实性,使得在近似由立体左和右图像指示的距离的距离处显示虚拟对象。该技术还可以减少由一些用户经历的晕动病,其可能是由立体左眼和右眼影像提供的深度感知提示与人眼的自动调节(例如,对象距离相关的焦点)之间的差异引起的。
50.图2d示出了从示例可穿戴头部设备2102的右目镜2110的顶部看的面向边缘的视图。如图2d所示,多个波导2402可以包括三个波导的第一子集2404和三个波导的第二子集2406。波导的两个子集2404、2406可以通过不同的epe光栅来区分,不同的epe光栅的特征在于不同的光栅线曲率以向出射光给予不同的波前曲率。在波导的子集2404、2406中的每一个波导子集内,每个波导可以用于将不同光谱信道(例如,红色、绿色和蓝色光谱信道之一)耦合到用户的右眼2206。(虽然在图2d中未示出,但是左目镜2108的结构类似于右目镜2110的结构。)
51.图3a示出了混合现实系统200的示例手持式控制器组件300。在一些示例中,手持式控制器300包括手柄部分346和沿着顶面348设置的一个或多个按钮350。在一些示例中,按钮350可以被配置用于用作光学跟踪目标,例如,用于结合相机或其他光学传感器(其可以安装在混合现实系统200的头部单元(例如,可穿戴头部设备2102)中)跟踪手持式控制器300的六自由度(6dof)运动。在一些示例中,手持式控制器300包括用于检测位置或取向(诸如相对于可穿戴头部设备2102的位置或取向)的跟踪组件(例如,imu或其他适合的传感器)。在一些示例中,该跟踪组件可以定位在手持式控制器300的手柄中,和/或可以机械耦合到手持式控制器。手持式控制器300可以被配置为提供对应于按钮的按压状态中的一个或多个按压状态的一个或多个输出信号;或手持式控制器300的位置、取向和/或运动(例如,经由imu)。该输出信号可以用作混合现实系统200的处理器的输入。该输入可以对应于手持式控制器的位置、取向和/或运动(例如,通过扩展,对应于握住控制器的用户的手的位置、取向和/或运动)。该输入还可以对应于用户按钮350。
52.图3b示出了混合现实系统200的示例辅助单元320。辅助单元320可以包括提供操作系统200的能量的电池,并且可以包括用于执行操作系统200的程序的处理器。如图所示,示例辅助单元320包括夹子2128,诸如用于将辅助单元320附接到用户的腰带。其他形式因素适合于辅助单元320并且将是明显的,包括不涉及将单元安装到用户的腰带的形式因素。在一些示例中,辅助单元320通过多导管电缆耦合到可穿戴头部设备2102,该多导管电缆可
以包括例如电线和光纤。还可以使用辅助单元320与可穿戴头部设备2102之间的无线连接。
53.在一些示例中,混合现实系统200可以包括检测声音并且将对应的信号提供给混合现实系统的一个或多个麦克风。在一些示例中,麦克风可以附接到可穿戴头部设备2102或与可穿戴头部设备2102集成,并且被配置为检测用户的语音。在一些示例中,麦克风可以附接到手持式控制器300和/或辅助单元320或与手持式控制器300和/或辅助单元320集成。该麦克风可以被配置为检测环境声音、环境噪声、用户或第三方的语音或其他声音。
54.图4示出了可以对应于示例混合现实系统的示例功能框图,诸如上文所描述的混合现实系统200(其可以对应于相对于图1的混合现实系统112)。如图4所示,示例手持式控制器400b(其可以对应于手持式控制器300(“图腾”))包括图腾到可穿戴头部设备六自由度(6dof)图腾子系统404a,并且示例可穿戴头部设备400a(其可以对应于可穿戴头部设备2102)包括图腾到可穿戴头部设备6dof子系统404b。在示例中,6dof图腾子系统404a和6dof子系统404b合作以确定手持式控制器400b相对于可穿戴头部设备400a的六个坐标(例如,在三个平移方向上的偏移和沿着三个轴的旋转)。可以相对于可穿戴头部设备400a的坐标系表示六个自由度。三个平移偏移可以表示为该坐标系中的x、y和z偏移、平移矩阵、或某种其他表示。旋转自由度可以表示为偏转、俯仰和滚动旋转的序列、旋转矩阵、四元数或某种其他表示。在一些示例中,可穿戴头部设备400a;包括在可穿戴头部设备400a中的一个或多个深度相机444(和/或一个或多个非深度相机);和/或一个或多个光学目标(例如,如上文所描述的手持式控制器400b的按钮350,或包括在手持式控制器400b中的专用光学目标)可以用于6dof跟踪。在一些示例中,手持式控制器400b可以包括相机,如上文所描述的;并且可穿戴头部设备400a可以包括用于结合相机进行光学跟踪的光学目标。在一些示例中,可穿戴头部设备400a和手持式控制器400b各自包括一组三个正交取向的螺线管,其用于无线地发送和接收三个可区分的信号。通过测量用于接收的线圈中的每个线圈中接收的三个可区分信号的相对幅度,可以确定可穿戴头部设备400a相对于手持式控制器400b的6dof。此外,6dof图腾子系统404a可以包括惯性测量单元(imu),该惯性测量单元(imu)可用于提供关于手持式控制器400b的快速运动的经改进的准确度和/或更及时的信息。
55.在一些示例中,可能需要将坐标从局部坐标空间(例如,相对于可穿戴头部设备400a固定的坐标空间)变换到惯性坐标空间(例如,相对于真实环境固定的坐标空间),例如以便补偿可穿戴头部设备400a相对于坐标系108的运动。例如,该变换可能为可穿戴头部设备400a的显示器进行以下内容所必需:将虚拟对象呈现在相对于真实环境的期望位置和取向处(例如,坐在真实椅子中、面向前的虚拟人,而不管可穿戴头部设备的位置和取向),而不是在显示器上的固定位置和取向处(例如,在显示器的右下角的相同位置处),以保持虚拟对象存在于真实环境中的错觉(并且例如当可穿戴头部设备400a移动和旋转时不显得不自然地定位在真实环境中)。在一些示例中,坐标空间之间的补偿变换可以通过使用slam和/或视觉里程计程序处理来自深度相机444的图像确定,以便确定可穿戴头部设备400a相对于坐标系108的变换。在图4所示的示例中,深度相机444耦合到slam/视觉里程计块406并且可以向块406提供图像。slam/视觉里程计块406实施方式可以包括处理器,该处理器被配置为处理该图像并且确定用户的头部的位置和取向,其然后可以用于标识头部坐标空间与另一坐标空间(例如,惯性坐标空间)之间的变换。类似地,在一些示例中,从imu 409获得关于用户的头部姿势和位置的附加信息源。来自imu 409的信息可以与来自slam/视觉里程计
块406的信息集成以提供关于用户的头部姿势和位置的快速调节的经改进的准确度和/或更及时的信息。
56.在一些示例中,深度相机444可以将3d图像供应到手势跟踪器411,该手势跟踪器411可以实现在可穿戴头部设备400a的处理器中。手势跟踪器411可以标识用户的手势,例如通过将从深度相机444接收的3d图像与表示手势的存储的模式匹配。标识用户的手势的其他适合的技术将是明显的。
57.在一些示例中,一个或多个处理器416可以被配置为从可穿戴头部设备的6dof头带子系统404b、imu 409、slam/视觉里程计块406、深度相机444和/或手势跟踪器411接收数据。处理器416还可以发送和接收来自6dof图腾系统404a的控制信号。处理器416可以无线耦合到6dof图腾系统404a,诸如在手持式控制器400b不受限的示例中。处理器416还可以与附加组件通信,附加组件诸如是音频-视觉内容存储器418、图形处理单元(gpu)420、和/或数字信号处理器(dsp)音频空间化器。dsp音频空间化器422可以耦合到头部相关传递函数(hrtf)存储器425。gpu 420可以包括耦合到图像级调制光左源424的左通道输出和耦合到图像级调制右光源426的右通道输出。gpu 420可以将立体图像数据输出到图像级调制光源424、426,例如如上文相对于图2a-2d所描述的。dsp音频空间化器422可以向左扬声器412和/或右扬声器414输出音频。dsp音频空间化器422可以从处理器419接收指示从用户到虚拟声源(其可以由用户移动,例如,经由手持式控制器320)的方向矢量的输入。基于方向矢量,dsp音频空间化器422可以确定对应的hrtf(例如,通过访问hrtf、或通过内插多个hrtf)。dsp音频空间化器然后可以将所确定的hrtf应用到音频信号,诸如对应于由虚拟对象生成的虚拟声音的音频信号。这可以通过在混合现实环境中结合用户相对于虚拟声音的相对位置和取向来增强虚拟声音的可信度和真实感,即,通过呈现与用户对虚拟声音的期望相匹配的虚拟声音,虚拟声音听起来像是真实环境中的真实声音。
58.在一些示例中,诸如图4所示,处理器416、gpu 420、dsp音频空间化器422、hrtf存储器425和音频/视频内容存储器418中的一个或多个可以包括在辅助单元400c(其可以对应于上文所描述的辅助单元320)中。辅助单元400c可以包括对其组件供电和/或向可穿戴头部设备400a或手持式控制器400b供电的电池427。将这样的组件包括在可安装到用户的腰部的辅助单元中可以限制可穿戴头部设备400a的大小和重量,其进而可以减少用户的头部和颈部的疲劳。
59.虽然图4呈现了对应于示例混合现实系统的各种组件的元件,但是这些组件的各种其他适合的布置对于本领域技术人员来说将变得明显。例如,在图4中呈现为与辅助单元400c相关联的元件可以替代地与可穿戴头部设备400a或手持式控制器400b相关联。此外,一些混合现实系统可以完全放弃手持式控制器400b或辅助单元400c。将理解这样的改变和修改包括在所公开的示例的范围内。
60.会话管理器
61.mr系统可以被独特地定位以实现用户之间的交互式虚拟协作。因为mr系统可以以三维方式并在用户的物理环境中呈现虚拟内容,所以mr协作系统和方法可以实现至少与本地协作一样有效的远程协作。在一些实施例中,mr协作可以允许用户查看和/或操纵三维空间中的虚拟内容。例如,第一用户可以启动mr协作会话并且可以看到两个虚拟3d模型、文本文档和消息传递界面。第二用户可在本地加入会话(例如,第二用户可能与第一用户走进同
一房间),并且第二用户可与第一用户在相同的定位处看到相同的两个虚拟3d模型、文本文档和消息传递界面。在一些实施例中,第三用户可以远程加入会话(例如,第三用户可能与第一和第二用户不在同一房间),并且第三用户可以在第三用户环境中看到两个虚拟3d模型、文本文档和消息传递界面。在一些实施例中,对于所有会话用户,虚拟内容可以彼此共享空间关系(例如,可以以相同的方式布置虚拟内容)。在一些实施例中,mr协作可以允许同一物理空间中的用户利用共享物理上下文来享受涉及虚拟内容的更有意义的共享体验。
62.在一些实施例中,跨多个mr系统显示和/或同步虚拟内容可能带来挑战。例如,开发用于确保每个mr系统以与会话中的其它mr系统一致的方式显示共享虚拟内容的系统和方法可能是有益的。开发可以实现跨应用协作(例如,可以使用由不同开发人员创建的应用生成的虚拟内容)的系统和方法也可能是有益的。在一些实施例中,开发可以允许彼此处于本地的用户(例如,在同一房间中的用户)彼此协作以及与远程用户(例如,在不同房间中)协作的系统和方法可能是有益的。在一些实施例中,开发可以使协作会话能够随时间推移持续以使得会话用户可以在以后继续协作的系统和方法可能是有益的。在一些实施例中,开发可以实现内容持久性以使得会话用户即使在不与其他用户现场协作的情况下也能继续处理虚拟内容的系统和方法可能是有益的。
63.在一些实施例中,会话可以被广义地定义为可以随着时间和空间推移协作和共享一系列体验的一组用户(具有标识符)。在一些实施例中,会话可以包括提供网络连接、公共空间参考和用于与其它mr用户聊天和共享棱镜的集中式用户界面的通信和协作体验。会话参与者可以远程或本地在同一物理位置。在一些实施例中,会话管理器可以包括管理会话内的一些或所有活动的集中式后端服务。在一些实施例中,会话管理器可以包括一个或多个面向用户的前端控件和/或表达,其表示会话管理器和/或被配置为接收用户输入(例如,菜单和/或会话句柄(handle))。在一些实施例中,会话管理器可以包括通过各种会话状态来协调和管理各种会话事件的后台服务和/或守护进程(daemon)。会话管理器还可以通过允许发现用户并与其他用户建立联系来推动用户体验。在一些实施例中,会话管理器还可以管理各种ui组件,诸如菜单和/或会话ui相关状态。
64.在一些实施例中,可以通过将协作会话中的虚拟内容配置为与协作会话中的真实对象类似地表现来促进协作。例如,在“真实的”协作会话中,用户可能会围坐在具有文档和/或对象的桌子旁。用户可以通过指向特定文档来引用“这个”文档和/或“那个”文档。在一些实施例中,真实协作会话中的用户可以使用关系术语(例如,右侧的那个对象)来引用对象。由于多年的调节和实际上与其他人一起工作,该行为可能会自然发生在用户身上。因此,可能希望开发用于mr协作以实现用户与用户所协作的内容之间的自然交互的系统和方法。在一些实施例中,mr协作会话可以使用户能够引用并置的虚拟内容(例如,可能出现在多个用户的真实环境中的同一位置的虚拟内容),就好像该虚拟内容是存在于用户物理环境中的真实内容一样。在一些实施例中,mr协作会话可以持续。例如,所有用户都可退出会话,并且用户可在几周后启动同一会话。在一些实施例中,用户可以看到所有虚拟内容处于在用户先前退出会话时所处的状态(例如,在相同的相对位置和/或采用相同的编辑)。
65.在一些实施例中,会话可以包括用于呈现、同步、管理和/或存储在混合现实协作会话中使用的虚拟内容的平台。例如,会话用户可具有重复的每周会议,其中讨论和/或处理虚拟内容(例如,word文档、3d模型、演示幻灯片、对话历史等)。在一些实施例中,用户可
以利用会话平台将虚拟内容(其可以由不同的开发者创建)合并到可以随时间推移持续存在的单个虚拟空间中。例如,加载单个会话实例可以向用户呈现3d模型(使用由第一开发者创建的第一应用生成的)、描述对3d模型的更改和/或目标的文本文档(使用由第二开发者创建的第二应用生成的),以及与该会话相关的会话用户之间的对话历史。该虚拟内容可以跨时间和跨会话用户持续存在,使得同一用户或不同的会话用户可以加载会话并看到与任何其他会话用户相同的会话内容。在一些实施例中,会话可以实现用户存在的灵活性(例如,本地用户可以在他们的本地空间中共享虚拟内容放置,但是远程用户也可以在他们的远程空间中看到具有相同空间关系的虚拟内容)。在一些实施例中,会话可以实现能力灵活性。例如,能力(例如,与第三方应用对应的)可被交互/启用/禁用而不离开集中式会话平台。在一些实施例中,应用(例如,第三方应用)可以利用会话平台来放弃构建可能与其它应用软件不兼容的专有共享平台。在一些实施例中,会话可以实现时间灵活性。例如,用户可能在不同时间访问会话,并且可能不需要与其他用户进行实时通话。在一些实施例中,可以同步用户所做的改变,使得可以为其他会话用户反映该改变(无论他们当前在会话中还是稍后进入会话)。
66.在一些实施例中,会话可以包括随时间推移与一个或多个用户共享的虚拟内容。会话可以具有一个或多个所有者,并且在一些实施例中,可以认为创建会话的用户是会话所有者。会话可能具有可以访问该会话的一个或多个参与者。在一些实施例中,会话所有者可以控制哪些参与者可以加入会话。在一些实施例中,会话可以具有会话标识符。在一些实施例中,每个用户(例如,所有者或参与者)可以具有用户标识符。在一些实施例中,会话可以包括一个或多个用户化身,该化身可以表示远程用户相对于会话中的其它对象的定位。在一些实施例中,会话可以包括定位数据(例如,与每个用户对应的定位数据、与已经打开会话的定位对应的定位数据等)。定位数据可以包括持久坐标数据。在一些实施例中,定位数据可以包括一个或多个变换(例如,一个或多个变换矩阵),其可以将位置与持久坐标数据相关。
67.在一些实施例中,会话可以包括一个或多个能力。会话能力可以包括用户可以在会话中选择和/或启用的一个或多个特征。例如,可以认为虚拟对象共享是会话能力。在一些实施例中,可以认为确定用户对于其他用户是否是本地的是会话能力。在一些实施例中,可以认为投影用户化身是会话能力。在一些实施例中,可以认为将用户的屏幕投射到其他用户是会话能力。在一些实施例中,能力可以具有一个或多个能力实例(例如,能力可以具有同时运行的多个实例)。例如,可以与会话中的用户共享两个虚拟对象,并且可认为每个虚拟对象是单独的能力实例。
68.在一些实施例中,会话可以是持久的。例如,即使在所有用户都退出会话之后,会话也可继续存在。在一些实施例中,会话可以继续存储会话信息,诸如所使用的会话能力(例如,共享虚拟对象、虚拟对象在什么位置等)、用户定位、用户标识等。持久会话可以促进用户之间的长期协作。例如,用户可以从他们离开的地方继续,而不必根据他们的喜好重新布置他们的虚拟工作空间。在一些实施例中,会话持久性可以使不同的用户能够在稍后时间进入会话并且看到在前一个用户退出会话时所布置的虚拟内容。
69.图5a-5c示出根据一些实施例的示例性mr协作会话。图5a示出示例性混合现实协作会话,其中用户508a、508b和508c可以一起在第一定位(例如,第一房间)处。图5b示出示
例性混合现实协作会话,其中用户508d和508e可以一起在第二定位(例如,第二房间)处。图5c示出移动会话句柄的示例性混合现实协作会话。
70.在一些实施例中,用户508a、508b、508c、508d和508e都可以是同一混合现实协作会话500的一部分。在一些实施例中,协作会话可以包括会话句柄502a(其可以是虚拟对象)。会话句柄502a可以用作会话的本地锚。例如,可以向位于相同位置的所有会话用户(例如,如果用户508a、508b和508c共享共同的持久坐标数据,则可以认为用户508a、508b和508c在相同位置)呈现相对于会话句柄502a定位的虚拟内容,这可以使虚拟内容看起来像是位于真实世界中的特定定位和取向,类似于真实/物理对象。在一些实施例中,会话句柄502a可以相对于持久坐标数据定位(例如,使用变换)。在一些实施例中,用户508a、508b和508c可以使用规范持久坐标数据,这可以实现会话句柄502a在每个用户的mr系统中的一致放置。在一些实施例中,用户508a、508b和508c都可以在相同位置处看到会话句柄502a(例如,用户可能都在地板上相同位置处看到会话句柄502a)。
71.在一些实施例中,可以使用持久坐标数据来确定是否可以认为用户是彼此本地的。例如,用户508a的mr系统可以基于用户508a的识别环境(例如,从一个或多个远程服务器)接收规范持久坐标数据。用户508a的mr系统可以使用定位数据(例如,gps、wifi和/或蜂窝数据)和/或图像识别数据(例如,通过将采集的图像与已知环境的图像进行比较来识别已知环境)来识别用户508a的环境。在一些实施例中,用户508a的mr系统可以将其接收的持久坐标数据发送到会话中的其它mr系统(例如,用户508b的mr系统)。在一些实施例中,会话中的其它mr系统可以接收规范持久坐标数据并将从其它mr系统接收的发送数据与已经在使用中的规范持久坐标(和/或从一个或多个远程服务器接收的规范持久坐标数据)进行比较。如果确定(例如,使用唯一标识符)在会话中的mr系统之间共享规范持久坐标数据的一个或多个实例,则可以确定mr系统是彼此本地的。在一些实施例中,如果mr系统不共享规范持久坐标数据的实例,则可以确定mr系统彼此远离。在一些实施例中,可以与持久规范持久坐标数据的一个或多个共享实例相关地显示会话句柄(例如,会话句柄502a),这可以使得会话句柄502a能够在相同位置中被呈现给用户508a、508b和508c。
72.在一些实施例中,会话500可以包括共享虚拟对象504a。可以认为共享虚拟对象504a是会话能力实例。在一些实施例中,用户508a、508b和508c都可以在相同位置中看到虚拟对象504a(例如,用户可以都在真实桌子的末端看到虚拟对象504a)。在一些实施例中,可以相对于会话句柄502a定位共享虚拟对象504a(例如,使用变换)。在一些实施例中,可以相对于持久坐标数据(例如,规范持久坐标数据)定位共享虚拟对象504a。在一些实施例中,用户(例如,用户508c)可以操纵共享虚拟对象504a。例如,用户508c可以将对象504a从桌子的边缘移动到桌子的中心。在一些实施例中,用户508a和508b还可以看到对象504a从桌子的边缘移动到桌子的中心。在一些实施例中,如果用户(例如,用户508b)指向对象504a(例如,头盔)的一部分,则其他用户(例如,508a和508c)也可以看到用户508b指向对象504a的同一部分。
73.在一些实施例中,也可以移动会话句柄502a。例如,在图5c中,用户508a可以向左移动会话句柄502a。在一些实施例中,作为会话的一部分显示的任何虚拟内容也可以移动,从而保持与会话句柄502a相同的相对定位。例如,随着会话句柄502a向左移动,对象504a也可以向左移动相同的量。在一些实施例中,移动在一个定位处的会话句柄(例如,会话句柄
502a)可能不移动在不同定位处的会话句柄(例如,会话句柄502b)。允许每组本地用户管理他们自己的会话句柄放置可能是有益的。例如,因为可以相对于会话句柄来定位虚拟内容,所以每个本地组可以针对他们相应的本地物理环境确定他们的虚拟内容的最优定位。
74.会话500可涉及可能不共享相同定位的用户。例如,在图5b中,用户508d和508e也可以是会话500的一部分。在一些实施例中,可以认为用户508d和508e远离用户508a、508b和508c(例如,因为在用户508d/508e和508a/508b/508c之间可能不存在共同的持久坐标数据)。在一些实施例中,用户508d和508e可以看到第二会话句柄502b。在一些实施例中,不具有与其他用户(或用户组)共同的持久坐标数据的每个用户(或用户组)可以看到他们自己的会话句柄。可以相对于会话句柄502b显示向用户508d和508e显示的共享虚拟内容。例如,共享虚拟对象504b可以对应于对象504a。在一些实施例中,当相对于会话句柄502a来定位对象504a时,可以相对于会话句柄502b在相同的地点定位对象504b。在一些实施例中,如果相对于会话句柄502a移动对象504a,则也可以相对于会话句柄502b移动对象504b(反之亦然)。在一些实施例中,如果移动会话句柄502a,则会话句柄502b可能不会移动。这可以使本地用户能够管理如何向本地用户组呈现会话内容。
75.在一些实施例中,会话500可以包括用户化身506e。在一些实施例中,用户化身506e可以表示会话500中的用户,该用户对于会话中的其他用户可能是远程的。例如,可以认为用户508a、508b和508c是彼此本地的(例如,因为他们可以共享持久坐标数据),并且可以认为用户508e远离用户508a、508b和508c(例如,因为用户508e可能不与其他用户共享持久坐标数据)。在一些实施例中,用户508e(在图5b中)也可以是会话500的一部分,并且用户化身506e可以对应于用户508e。
76.在一些实施例中,用户化身506e可以使用户508e能够与用户508a、508b和508c协作。在一些实施例中,化身506e可以反映用户508e的一个或多个运动。例如,当用户508e接近会话句柄502b时,用户化身506e可以接近会话句柄502a,从而在用户508e和会话句柄502b之间保持相同的相对定位。在一些实施例中,用户508e可以指向对象504b,并且化身506e可以相应地指向相同位置处的对象504a。类似地,化身506b可以表示用户508b,而化身506a可以表示用户508a。随着用户508a接近对象504a,化身506a也可以相应地接近对象504b。在一些实施例中,远程用户可能不向其他用户广播化身。例如,用户508d可能远离用户508a、508b和508c,但用户508d可能不针对会话句柄502a投影对应的化身。
77.在一些实施例中,会话持久性可以允许用户动态定位到不同的会话定位。例如,用户508a、508b和508c可以在第一房间中,而用户508d和508e可以在第二房间中,该第二房间可以在第一房间的走廊下方。在一些实施例中,用户508a可以离开第一房间,走下大厅并进入第二房间,并且可以相对于会话句柄502b向用户508a显示虚拟内容。在一些实施例中,用户使用的每个mr系统可以定期轮询用户的定位(例如,使用gps数据和/或图像识别)。在一些实施例中,mr系统可以触发新的定位查询(例如,通过使用地理围栏)。
78.图6示出根据一些实施例的示例性会话管理器架构。在一些实施例中,会话管理器604可以在mr系统602上运行,该mr系统602可以包括一个或多个计算机系统并且可以对应于mr系统112、200。在一些实施例中,会话管理器604可以包括过程、子过程、线程、和/或服务。在一些实施例中,会话管理器604可以包括被配置为存储信息的一个或多个数据结构。在一些实施例中,会话管理器604可以包括服务(例如,后台操作系统服务)。在一些实施例
中,会话管理器604的过程、子过程、线程和/或服务可以被配置为在主机系统的操作系统运行时连续运行(例如,在后台)。在一些实施例中,会话管理器604可以包括父后台服务的实例化,其可以用作一个或多个后台过程和/或子过程的主机过程。在一些实施例中,会话管理器604可以包括父过程的子过程。在一些实施例中,会话管理器604可以包括父过程的线程。
79.会话管理器604可以包括一个或多个会话实例606a和/或606b。在一些实施例中,会话实例可以对应于mr协作会话(例如,会话500)。在一些实施例中,会话实例可以管理在mr协作会话中使用的信息。在一些实施例中,会话实例可以包括被配置为存储信息的一个或多个数据结构。在一些实施例中,会话实例可以包括一个或多个过程、子过程、线程和/或服务。在一些实施例中,一个或多个会话实例可被存储在一个或多个远程服务器处。在一些实施例中,可以在存储会话实例之前对存储会话加密(本地地在mr设备处或在一个或多个远程服务器处)。
80.在一些实施例中,会话实例可以被配置为与一个或多个能力实例通信。例如,会话实例606b可以被配置为与能力实例608b和608c通信。能力实例可以对应于一个或多个会话能力。例如,能力实例608b可以对应于共享对象504a。在一些实施例中,能力实例可以包括被配置为存储信息的一个或多个数据结构。在一些实施例中,能力实例可以包括一个或多个过程、子过程、线程和/或服务。
81.在一些实施例中,能力实例可以被配置为与一个或多个连接服务通信,诸如应用连接平台610a和/或协作核心610b。在一些实施例中,应用连接平台610a和/或协作核心610b可以包括过程、子过程、线程和/或服务。在一些实施例中,应用连接平台610a和/或协作核心610b可以包括被配置为存储信息的一个或多个数据结构。在一些实施例中,应用连接平台610a和/或协作核心610b可以包括服务(例如,后台操作系统服务)。在一些实施例中,应用连接平台610a和/或协作核心610b的过程、子过程、线程和/或服务可以被配置为在主机系统的操作系统运行时连续运行(例如,在后台)。在一些实施例中,应用连接平台610a和/或协作核心610b可以包括父后台服务的实例化,父后台服务可以用作一个或多个后台过程和/或子过程的主机过程。在一些实施例中,应用连接平台610a和/或协作核心610b可以包括父过程的子过程。在一些实施例中,应用连接平台610a和/或协作核心610b可以包括父过程的线程。
82.在一些实施例中,应用连接平台610a可以在共置(colocation)会话中提供mr系统之间的低延迟通信路径以实现实时虚拟对象共置。在一些实施例中,应用连接平台610a可以包括一种或多种网络实时通信(“webrtc”)的实现方式。例如,在一些实施例中,可以经由一个或多个twilio轨道发送数据以进行低延迟通信。在一些实施例中,能力实例可以利用应用连接平台610a在会话中从mr系统发送和/或接收低延迟数据(例如,当共享虚拟对象移动时的关系变换数据)。在一些实施例中,应用连接平台610a可以被配置为与在其它mr系统上运行的其它应用连接平台通信。
83.在一些实施例中,协作核心610b可以提供针对同时编辑的数据同步服务。在一些实施例中,协作核心610b可以被配置为从一个或多个能力实例接收编辑数据。在一些实施例中,协作核心610b可以被配置为与外部同步服务(例如,firebase)通信以同步对会话中的虚拟内容的同时编辑。
84.在一些实施例中,应用连接平台610a和/或协作核心610b可以与会话管理器604通信。在一些实施例中,会话管理器604可以将特权信息直接提供给应用连接平台610a和/或协作核心610b(例如,用户识别数据)。因为可能由未知的开发者开发能力实例,这可能对特权数据造成安全风险,所以从能力实例中屏蔽特权信息可能是有益的。
85.尽管应用连接平台610a和协作核心610b被描绘为单独的服务,但也可以设想由它们每者提供的功能可以作为单个服务或作为两个以上服务来提供。
86.在一些实施例中,会话管理器604可以与一个或多个远程服务器和/或一个或多个mr系统通信以同步会话实例。例如,第二mr系统可以发起会话并邀请mr系统602参与该会话。在一些实施例中,会话管理器604可以创建与新加入的会话对应的新会话实例。在一些实施例中,新会话实例可以是第二mr系统上的会话实例的副本。在一些实施例中,可以从一个或多个远程服务器接收会话实例。在一些实施例中,可将会话实例数据发送到一个或多个远程服务器(例如,如果能力实例已被更新,则可能希望将更新发送到其他会话用户)。在一些实施例中,可以在会话结束时(例如,当最后一个用户离开会话时)将会话实例数据发送到一个或多个远程服务器,使得可以保存会话数据并在以后重新访问。在一些实施例中,会话管理器和/或会话实例可以与一个或多个服务(例如,由应用连接平台610a提供的一个或多个服务)通信,以使会话实例数据与其它会话实例(其可以存储在另一个mr系统或远程服务器处)同步。在一些实施例中,会话管理器和/或会话实例可以与一个或多个服务通信以建立与一个或多个远程端点(例如,会话中的其它mr系统)的实时和/或低延迟通信链路。
87.图7示出根据一些实施例的示例性会话实例架构。在一些实施例中,会话实例702可以对应于会话实例604a和/或604b。在一些实施例中,会话实例702可以包括一个或多个数据结构,其可以被配置为存储一个或多个附加数据结构(例如,能力模块704、参与者模块708、定位模块712和/或存在模块716)。能力模块704可以管理与会话中的一个或多个能力实例相对应的数据和/或数据结构。例如,实例706a可以对应于虚拟对象。在一些实施例中,实例706a可以包括变换数据,该变换数据可以将虚拟对象的位置与持久坐标数据和/或一个或多个会话句柄位置相关。在一些实施例中,实例706a可以包括对协作核心服务的一个或多个引用。在一些实施例中,如果用户对实例706a做出改变,则对协作核心服务的引用可以使实例706a能够被适当地通知和/或更新。在一些实施例中,实例706a可以包括应用连接平台数据(例如,数据应该被发送到哪里,应该使用什么管道等)。在一些实施例中,能力模块704可以被配置为与一个或多个能力实例(例如,能力实例608a)通信。
88.在一些实施例中,会话实例702可以包括参与者模块708。参与者模块708可以管理与会话中的一个或多个用户相对应的数据和/或数据结构。例如,用户710a可以包括用户使用的mr系统的标识符。在一些实施例中,用户710a可以包括化身数据(例如,外观、大小、颜色等)。在一些实施例中,用户710a可以包括定位数据。在一些实施例中,定位数据可以包括gps数据、wifi数据、蜂窝数据、持久坐标数据等。
89.在一些实施例中,会话实例702可以包括定位模块712。定位模块712可以管理与会话中的一个或多个定位相对应的数据和/或数据结构。例如,定位714a可以包括持久坐标数据、变换数据、与地面平面对应的数据等。在一些实施例中,定位714a可以对应于用户定位。在一些实施例中,定位714a可以对应于会话句柄定位。
90.在一些实施例中,会话实例702可以包括存在模块716。存在模块716可以管理与一
个或多个用户的本地和/或远程状态相对应的数据和/或数据结构。例如,实例718a可以指示第一用户远离第二用户,而第三用户在第二用户本地。在一些实施例中,实例718a可以包括用于用户之间的通信(例如,使用应用连接平台610a)的数据。
91.3d对象注释
92.mr协作对于3d虚拟内容创建特别有用。利用虚拟对象持久性,mr系统可以使得用户能够看到虚拟内容,就好像虚拟内容是真实的一样。例如,可以将虚拟对象显示为放在真实桌子上。在一些实施例中,用户可以在桌子周围走动并且从不同的角度观察虚拟对象,就好像虚拟对象真实放在桌子上一样。这种自然查看虚拟内容和/或与虚拟内容交互的能力可能优于其他方法。例如,在2d屏幕上查看3d模型可能要求多种应变方法。用户可能必须使用计算机鼠标拖动3d模型来显示不同的视角。然而,由于在2d屏幕上显示3d内容的性质,因为3d内容可能以非预期的方式改变视图,所以这样的体验可能令人沮丧。在一些实施例中,mr系统还可以使得多个用户能够在3d内容上协作。例如,处理同一3d内容的两个用户可以使用mr系统查看投射在3d空间中的3d内容。在一些实施例中,可以针对mr系统的两个用户以相同方式同步和/或定位3d内容。然后,用户可以通过参考3d内容的各方面、四处移动来查看不同的角度等进行协作。在一些实施例中,可以使对虚拟内容的注释对协作用户实时可用。例如,第一用户可以向虚拟内容添加虚拟标记和/或评论,并且第二用户可以在第一用户创建虚拟标记和/或评论时看到虚拟标记和/或评论。因此,开发实现对3d对象进行实时协作的系统和方法可能是有益的。
93.图8示出了根据一些实施例的示例性混合现实协作会话。在一些实施例中,用户802和804可以使用一个或多个mr系统(例如,mr系统806,其可以对应于mr系统112、200)来在3d虚拟内容上进行协作。在一些实施例中,用户802和804可以利用会话来显示虚拟内容和/或在虚拟内容上协作。例如,可以向用户802和804呈现虚拟模型808。在一些实施例中,可以在相同位置(例如,位置和/或取向)向用户802和804呈现虚拟模型808。在一些实施例中,可以使用相同的会话句柄向用户802和804呈现虚拟模型808。在一些实施例中,可以由能力实例管理虚拟模型808。在一些实施例中,虚拟模型808的特性可以存储在能力实例中和/或由能力实例管理。在一些实施例中,能力实例可以存储在会话实例中和/或由会话实例管理。
94.在一些实施例中,用户802可以注释虚拟模型808(例如,通过创建虚拟标记和/或添加虚拟评论)。例如,用户802可以创建虚拟标记812,虚拟标记812可以指示咖啡馆可以放置在虚拟模型808中的位置。在一些实施例中,用户804可以看到虚拟标记812。在一些实施例中,用户804可以在用户802创建虚拟标记812时看到虚拟标记812。在一些实施例中,用户804可以在与用户802看到虚拟标记812相同的位置看到虚拟标记812。在一些实施例中,用户802可以创建一个或多个虚拟评论。在一些实施例中,虚拟评论可以包括位置指示符814和/或评论气泡816。在一些实施例中,评论气泡816可以包括对应于位置指示符814的视觉指示符(例如,评论气泡816和位置指示符814可以共享编号)。在一些实施例中,位置指示符814可以在与它呈现给用户802相同的位置(例如,相对于现实世界和/或相对于其他虚拟内容)呈现给用户804。在一些实施例中,可以针对不同的用户在不同的位置呈现评论气泡816。例如,评论气泡816可以面向用户802呈现给用户802,并且评论气泡816可以面向用户804呈现给用户804。在一些实施例中,评论气泡816可以被配置为当用户以不同位置看时持
续面对用户。在一些实施例中,可以针对会话的多个用户(例如,所有本地用户)在相同位置呈现评论气泡816。
95.在一些实施例中,对应于虚拟注释的数据可以从能力实例(例如,能力实例608c)发送到会话实例(例如,会话实例606b)。在一些实施例中,对应于虚拟注释的数据可以从能力实例发送到协作核心610b。在一些实施例中,协作核心610b可以将对应于虚拟注释的数据发送到一个或多个远程服务器(例如,一个或多个被配置为处理数据同步和/或同步冲突的远程服务器)。在一些实施例中,一个或多个远程服务器可以将对应于虚拟注释的数据发送给其他会话用户。在一些实施例中,可以在会话实例中存储对应于虚拟注释的数据。在一些实施例中,可以关闭和重新打开会话实例,并且一个或多个能力实例(例如,虚拟模型808和/或虚拟标记812)可以被加载和/或显示给用户。
96.在一些实施例中,用户802可以远离用户804。例如,用户802可能在第一房间中,以及用户804可能在与第一房间不同的第二房间中。在一些实施例中,用户802和804可以使用会话实例关于虚拟模型808进行协作。在一些实施例中,用户802可以在第一房间中看到虚拟模型808,并且用户804可以在第二房间中看到虚拟模型808。在一些实施例中,可以相对于用于用户802的第一会话句柄来呈现虚拟模型808,并且可以相对于用于用户804的第二会话句柄来呈现虚拟模型808。在一些实施例中,由一个用户(例如,用户802)做出的虚拟注释可以对所有会话用户(例如,用户804)可见。
97.图9示出了根据一些实施例的示例性注释菜单。在一些实施例中,用户902可以使用mr系统904来查看虚拟对象906。在一些实施例中,mr系统904可以显示注释菜单908,这可以允许用户902注释虚拟对象906。在一些实施例中,mr系统904可以将注释菜单908动态地显示为面向用户902,而不管用户902面向哪个方向。例如,当用户902围绕对象906移动时,注释菜单908可以转动,使得完整的菜单可以对用户902可见。,因为如果以与用户902成一定角度显示注释菜单908(例如,因为对于用户902注释菜单908上按钮的有效可见区域可能太小而无法识别和/或选择),对于用户902来说选择注释菜单908上的选项可能是困难的,所以可能希望动态地定向注释菜单908。在一些实施例中,可以通过确定用户902的头部的位置(例如,位置和/或取向)来确定菜单908的期望取向。在一些实施例中,可确定菜单908的取向使得菜单908的法向量指向用户902。在一些实施例中,mr系统904可以显示注释菜单908,其接近对应的虚拟对象(例如,虚拟对象906)。
98.在一些实施例中,mr系统904可以显示注释菜单908,使得虚拟对象906可不遮挡注释菜单908。例如,如果在对象906的前面显示注释菜单908,并且用户902移动到对象906的相对侧,则对象906可能完全或部分遮挡注释菜单908。可能希望动态地重新定位注释菜单908,使得对应的虚拟对象(例如,使用菜单908注释的虚拟对象)可能不遮挡注释菜单908(例如,因为如果菜单908被对应的虚拟对象遮挡,则用户902可能无法与菜单908交互)。在一些实施例中,可以通过确定虚拟对象906(和/或与虚拟对象906相关联的棱镜)是否与在用户902和注释菜单908之间的直接路径相交来确定遮挡。
99.注释菜单908可以具有用于注释虚拟对象的若干特征。例如,注释菜单908可包括虚拟绘图按钮。在一些实施例中,虚拟绘图按钮可以切换绘图模式,这可以使得用户能够在虚拟对象上和/或周围创建虚拟标记。在一些实施例中,在绘图模式中创建的虚拟标记可能对其他会话用户可见。在一些实施例中,注释菜单908可包括虚拟删除按钮。在一些实施例
中,虚拟删除按钮可以删除选择的虚拟对象和/或虚拟标记。在一些实施例中,注释菜单908可包括虚拟评论按钮。在一些实施例中,虚拟评论按钮可以使得用户能够放置针对虚拟评论的位置指示符和/或添加虚拟评论。在一些实施例中,注释菜单908可包括虚拟颜色选择器按钮。在一些实施例中,选择虚拟颜色选择器按钮可以使得用户能够选择用于虚拟标记的颜色。在一些实施例中,注释菜单908可包括虚拟大小切换按钮。在一些实施例中,选择虚拟大小切换按钮可以切换虚拟对象是否显示真实大小。例如,3d模型可包括诸如尺寸的参数。在一些实施例中,mr系统可以以修改的大小显示3d模型以使3d模型可容易查看。例如,建筑物的3d模型可能最初比其真实尺寸小得多地呈现给用户,使得用户可以容易地看到整个3d模型。在一些实施例中,注释菜单908可包括虚拟注释可见性按钮。在一些实施例中,选择虚拟注释可见性按钮可以切换与虚拟对象对应的注释(例如,虚拟标记和/或虚拟评论)的可见性(例如,显示器可以显示或不显示)。在一些实施例中,注释菜单908可包括虚拟清除按钮。在一些实施例中,选择虚拟清除按钮可以移除对应于虚拟对象的所有虚拟注释。
100.在一些实施例中,用户902可以移动虚拟对象906。例如,用户902可以使用手持式控制器910(其可以对应于手持式控制器300)和虚拟选择光束912来选择虚拟对象906并将虚拟对象906拖动到新位置。在一些实施例中,注释菜单908可以随着虚拟对象906移动并保持与虚拟对象906的相对位置。
101.图10示出了根据一些实施例的混合现实注释的示例。在一些实施例中,虚拟对象1002可以是棱镜并且可以在其内包括一个或多个虚拟对象(例如,虚拟对象1004)。在一些实施例中,棱镜可包括边界体积和/或所包括的虚拟对象的参数。在一些实施例中,虚拟对象1012可以包括棱镜,该棱镜可以包括注释菜单(其可以对应于注释菜单908)。在一些实施例中,虚拟对象1012可能不与棱镜1002相交(例如,因为对象1004可能遮挡注释菜单1012的视图,这可能阻止用户与注释菜单1012交互)。
102.在一些实施例中,用户可以选择位置指示符1008,该位置指示符1008可以显示在虚拟对象1002和/或1004上和/或在其附近。在一些实施例中,选择位置指示符1008可以使得将向用户显示虚拟对象1010。虚拟对象1010可包括棱镜,该棱镜可包括虚拟评论气泡。在一些实施例中,虚拟对象1010可以显示在位置指示符1008附近。在一些实施例中,虚拟对象1010可能不与虚拟对象1002相交(例如,因为它可能遮挡虚拟评论气泡的视图)。在一些实施例中,当用户在环境中移动时,虚拟对象1012和/或1010可以持续面对用户。在一些实施例中,如果虚拟对象1012和/或1010的视图变得被遮挡(例如,如果用户移动使得虚拟对象1002阻挡了从用户到虚拟对象1010的视线),则虚拟对象1012和/或1010可以重新定位它们自己。
103.图11示出了根据一些实施例的混合现实注释的示例。在一些实施例中,虚拟对象1108(其可以包括棱镜)可以非常大(例如,因为包括的虚拟对象1102非常大)。在一些实施例中,虚拟对象1104可以显示在另一虚拟对象(例如,虚拟对象1108)内。例如,虚拟对象1108可以包括虚拟对象1102的边界棱镜,但是由于虚拟对象1102的大小,在虚拟对象1102不阻挡其他虚拟对象的视觉的地方可能存在显著空间。在一些实施例中,虚拟对象1104可以包括虚拟评论气泡,用户可以在虚拟评论气泡中输入文本。在一些实施例中,可以在用户编辑虚拟评论气泡时显示虚拟键盘1106。在一些实施例中,可以显示虚拟键盘1106接近对应的虚拟评论气泡。例如,用户可以编辑评论气泡1104,并且可以在气泡1104附近显示虚拟
键盘1106(而不是例如评论气泡1106)。视觉地指示用户在编辑哪个虚拟评论气泡可能是有益的(例如,通过在对应评论气泡附近显示键盘)。
104.公开了示例系统、方法和计算机可读介质。根据一些示例,系统包括:可穿戴设备,其包括透射式显示器;一个或多个处理器,其被配置为执行方法,该方法包括:经由可穿戴设备的透射式显示器在第一位置处向第一用户呈现虚拟对象;接收来自第一用户的第一输入;响应于接收到第一输入,经由透射式显示器在距第一位置的第一位移处呈现虚拟注释;将第一数据发送到第二用户,第一数据与虚拟注释和第一位移相关联;接收来自第二用户的第二输入;响应于接收到第二输入,经由透射式显示器在距第一位置的第二位移处将虚拟注释呈现给第一用户;以及将第二数据发送到远程服务器,第二数据与虚拟对象、虚拟注释、第二位移和第一位置相关联。在一些示例中,基于被配置为在可穿戴设备上运行的第一应用来呈现虚拟对象,并且基于来自插件库的数据来呈现虚拟注释,插件库被配置为由被配置为在可穿戴设备上运行的多个应用访问。在一些示例中,在第一时间发送第二数据,并且,方法还包括:退出会话实例,其中,会话实例被配置为存储第二数据;接收来自第一用户的第三输入;响应于接收到第三输入,请求第二数据;在比第一时间更晚的第二时间将第一位置处的虚拟对象呈现给第一用户;以及在第二时间向第一用户呈现在距第一位置的第二位移处的虚拟注释。在一些示例中,注释包括虚拟标记。在一些示例中,以第一大小呈现虚拟对象,虚拟对象包括目标尺寸数据,并且,方法还包括:接收来自第一用户的第三输入;响应于接收到第三输入,向第一用户以第二大小呈现虚拟对象,其中,第二大小与目标尺寸数据相关联;以及将第三数据发送到第二用户,第三数据与第二大小相关联。在一些示例中,方法还包括:接收来自第一用户的第三输入;响应于接收到第三输入,向第一用户呈现虚拟位置指示符,其中,虚拟位置指示符与虚拟评论相关联;以及将第三数据发送到第二用户,第三数据与虚拟位置指示符相关联。在一些示例中,方法还包括:经由透射式显示器向第一用户呈现虚拟注释菜单;重新定位虚拟注释菜单,以使得虚拟注释菜单不被虚拟对象遮挡。
105.根据一些示例,方法包括:经由可穿戴设备的透射式显示器在第一位置处向第一用户呈现虚拟对象;接收来自第一用户的第一输入;响应于接收到第一输入,经由透射式显示器在距第一位置的第一位移处呈现虚拟注释;将第一数据发送到第二用户,第一数据与虚拟注释和第一位移相关联;接收来自第二用户的第二输入;响应于接收到第二输入,经由透射式显示器在距第一位置的第二位移处将虚拟注释呈现给第一用户;以及将第二数据发送到远程服务器,第二数据与虚拟对象、虚拟注释、第二位移和第一位置相关联。在一些示例中,基于被配置为在可穿戴设备上运行的第一应用来呈现虚拟对象,并且基于来自插件库的数据来呈现虚拟注释,插件库被配置为由被配置为在可穿戴设备上运行的多个应用访问。在一些示例中,在第一时间发送第二数据,并且,方法还包括:退出会话实例,其中,会话实例被配置为存储第二数据;接收来自第一用户的第三输入;响应于接收到第三输入,请求第二数据;在比第一时间更晚的第二时间将第一位置处的虚拟对象呈现给第一用户;以及在第二时间处向第一用户呈现在距第一位置的第二位移处的虚拟注释。在一些示例中,注释包括虚拟标记。在一些示例中,以第一大小呈现虚拟对象,虚拟对象包括目标尺寸数据,并且,方法还包括:接收来自第一用户的第三输入;响应于接收到第三输入,向第一用户以第二大小呈现虚拟对象,其中,第二大小与目标尺寸数据相关联;以及将第三数据发送到第二用户,第三数据与第二大小相关联。在一些示例中,方法还包括:接收来自第一用户的第
三输入;响应于接收到第三输入,向第一用户呈现虚拟位置指示符,其中,虚拟位置指示符与虚拟评论相关联;以及将第三数据发送到第二用户,第三数据与虚拟位置指示符相关联。在一些示例中,方法还包括:经由透射式显示器向第一用户呈现虚拟注释菜单;重新定位虚拟注释菜单,使得虚拟注释菜单不被虚拟对象遮挡。
106.根据一些示例,非暂态计算机可读介质存储指令,该指令在由一个或多个处理器执行时使得一个或多个处理器执行方法,该方法包括:经由可穿戴设备的透射式显示器在第一位置处向第一用户呈现虚拟对象;接收来自第一用户的第一输入;响应于接收到第一输入,经由透射式显示器在距第一位置的第一位移处呈现虚拟注释;将第一数据发送到第二用户,第一数据与虚拟注释和第一位移相关联;接收来自第二用户的第二输入;响应于接收到第二输入,经由透射式显示器在距第一位置的第二位移处将虚拟注释呈现给第一用户;以及将第二数据发送到远程服务器,第二数据与虚拟对象、虚拟注释、第二位移和第一位置相关联。在一些示例中,基于被配置为在可穿戴设备上运行的第一应用来呈现虚拟对象,并且基于来自插件库的数据来呈现虚拟注释,插件库被配置为由被配置为在可穿戴设备上运行的多个应用访问。在一些示例中,在第一时间发送第二数据,并且,方法还包括:退出会话实例,其中,会话实例被配置为存储第二数据;接收来自第一用户的第三输入;响应于接收到第三输入,请求第二数据;在比第一时间更晚的第二时间将第一位置处的虚拟对象呈现给第一用户;在第二时间向第一用户呈现在距第一位置的第二位移处的虚拟注释。在一些示例中,注释包括虚拟标记。在一些示例中,以第一大小呈现虚拟对象,虚拟对象包括目标尺寸数据,并且,方法还包括:接收来自第一用户的第三输入;响应于接收到第三输入,向第一用户以第二大小呈现虚拟对象,其中,第二大小与目标尺寸数据相关联;以及将第三数据发送到第二用户,第三数据与第二大小相关联。在一些示例中,方法还包括:接收来自第一用户的第三输入;响应于接收到第三输入,向第一用户呈现虚拟位置指示符,其中,虚拟位置指示符与虚拟评论相关联;以及将第三数据发送到第二用户,第三数据与虚拟位置指示符相关联。在一些示例中,方法还包括:经由透射式显示器向第一用户呈现虚拟注释菜单;以及重新定位虚拟注释菜单,使得虚拟注释菜单不被虚拟对象遮挡。
107.虽然所公开的示例已经参考附图充分描述,但是,应注意到,对于本领域技术人员来说各种改变和修改将变得明显。例如,一个或多个实施方式的元素可以组合、删除、修改、或补充以形成进一步的实施方式。将理解该改变和修改包括在如由附加的权利要求限定的所公开的示例的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1