首页 / 光标传送

光标传送实质审查 发明

技术领域

[0001] 本公开整体涉及使得能够在扩展现实(XR)环境内在对象的表面之间移动光标的系统、方法和设备,诸如头戴式设备(HMD)。

相关背景技术

[0002] 为了使得光标能够在经由诸如HMD之类的设备呈现的三维(3D)环境内移动,可能期望使得用户能够在3D环境的3D空间内在对象(诸如分开的用户界面对象)之间移动光标。然而,现有系统可能不足以实现这样的移动和/或考虑位于分开的3D位置内和/或3D环境的不同平面上的对象。

具体实施方式

[0015] 描述了许多细节以便提供对附图中所示的示例具体实施的透彻理解。然而,附图仅示出了本公开的一些示例方面,因此不应被视为限制。本领域的普通技术人员将理解,其他有效方面和/或变体不包括本文所述的所有具体细节。此外,没有详尽地描述众所周知的系统、方法、部件、设备和电路,以免模糊本文所述的示例性具体实施的更多相关方面。
[0016] 图1示出了经由头戴式显示器(HMD)呈现给用户110的示例性扩展现实(XR)环境105(例如,基于物理环境的对象和/或虚拟对象的环境)的视图100。XR环境105可包括虚拟现实(VR)内容、混合现实(MR)内容、增强现实(AR)内容等。在该示例中,XR环境105包括对象(例如,门)132、对象(例如,箱)114、对象138(例如,用户界面、显示器等)、光标134(例如,用于响应于用户输入而示出XR环境105内的用户交互的位置的指针或指示符)、以及对象137(例如,用户界面等)。对象114、对象132、对象137和/或对象138可各自包括通过由电子设备(例如,HMD)130提供的透传视频观看的真实对象。作为另选形式,对象114、对象132、对象
137和/或对象138可各自包括由HMD 130生成并呈现的虚拟对象。在一些具体实施中,HMD 
130可使得光标134能够相对于与XR环境105内的3D对象(例如,对象132、对象114、对象137和/或对象138)交互而在整个XR环境105中移动。
[0017] HMD 130可包括一个或多个相机、麦克风、深度传感器或可用于捕获关于XR环境105及其内的对象的信息和关于HMD 130的用户110的信息以及评估该物理环境及其内的对象的其他传感器。关于XR环境105和/或用户110的信息可用于提供视觉和音频内容(例如,用户界面),标识物理环境或XR环境105的当前位置,和/或用于其他目的。
[0018] 在一些具体实施中,可将XR环境105的视图(视图100)提供给一个或多个参与者(例如,用户110和/或未示出的其他参与者)。XR环境105可包括基于物理环境的相机图像和/或深度相机图像生成的3D环境的视图以及基于用户110的相机图像和/或深度相机图像的用户110的表示。此类XR环境105可包括定位在相对于与XR环境105相关联的3D坐标系的3D位置处的虚拟内容,该3D坐标系可对应于物理环境的3D坐标系。
[0019] 人们可在不使用电子设备的情况下感测物理环境或世界或者与物理环境或世界交互。物理特征诸如物理对象或表面可包括在物理环境内。例如,物理环境可对应于具有物理建筑物、道路和车辆的物理城市。人们可通过各种手段诸如嗅觉、视觉、味觉、听觉和触觉直接感知物理环境或与物理环境交互。这可与扩展现实(XR)环境形成对比,该XR环境可以是指人们可使用电子设备(特别是诸如HMD 130)感测或交互的部分或完全模拟的环境。使用XR系统,可跟踪人的物理运动或其表示的一部分,并且作为响应,可以以符合至少一个自然定律的方式改变XR环境105中的虚拟对象的特性。例如,XR系统可检测用户的头部移动,并且以模拟声音和视图将如何在物理环境中改变的方式调整呈现给用户的听觉和图形内容。在其他示例中,XR系统可检测呈现XR环境的电子设备(例如,膝上型计算机、平板计算机、移动电话、HMD等)的移动。因此,XR系统可以模拟声音和视图将如何在物理环境中改变的方式来调整呈现给用户的听觉和图形内容。在一些实例中,其他输入诸如身体运动的表示(例如,语音命令)可使XR系统调整图形内容的属性。
[0020] 众多类型的电子系统可允许用户感测XR环境或与XR环境交互。不完全示例列表包括放置在用户的眼睛上的具有集成显示能力的镜片(例如,隐形眼镜)、平视显示器(HUD)、基于投影的系统、可头戴式系统(例如,HMD 130)、触控板(例如,设备120的触控板125)、脚踏板、安装在用户头部附近的一系列按钮、神经传感器等(以控制光标来选择用户内容)、具有集成显示技术的窗户或挡风玻璃、头戴式耳机/听筒、具有或不具有触觉反馈的输入系统(例如,手持式或可佩戴控制器)、智能电话、平板电脑、台式/膝上型计算机和扬声器阵列。头戴式系统可包括不透明显示器和一个或多个扬声器。其他头戴式系统可被配置为接收不透明外部显示器,诸如,智能电话的不透明外部显示器。头戴式系统可使用一个或多个图像传感器来捕获物理环境的图像/视频,或者使用一个或多个麦克风来捕获物理环境的音频。
一些头戴式系统可包括透明或半透明显示器,而不是不透明显示器。透明或半透明显示器可通过介质诸如全息介质、光学波导、光学组合器、光学反射器、其他类似技术或它们的组合将表示图像的光引导到用户的眼睛。可使用各种显示技术,诸如硅上液晶、LED、uLED、OLED、激光扫描光源、数字光投影或它们的组合。在一些示例中,透明或半透明显示器可被选择性地控制而变得不透明。基于投影的系统可利用将图像投影到用户的视网膜上的视网膜投影技术,或者可将虚拟内容投影到物理环境中,诸如投影到物理表面上或者作为全息图。
[0021] 在一些具体实施中,HMD 130被配置为呈现或显示光标134以使得用户能够与诸如图1的对象114、132、137和/或138之类的内容项的表面交互。在一些具体实施中,对象137和/或138可以是向用户110显示的虚拟用户界面的部分。同样,光标134可被显示在虚拟用户界面上并且可响应于特别是经由手势、触控板输入、鼠标输入、基于凝视的输入、语音命令、脚踏板、安装在用户头部附近的一系列按钮、神经传感器等接收到的用户输入而在XR环境105内移动。
[0022] 在图1的示例中,虚拟用户界面可包括各种内容和用户界面元素,包括虚拟按钮、键盘、滚动条等。与虚拟用户界面的交互可由用户110发起以提供虚拟用户界面对其作出响应的输入。虚拟用户界面可包括平坦(例如,平面或无深度的曲面)或3维的一个或多个对象。
[0023] 虚拟用户界面可以是应用程序的用户界面。出于说明的目的,简化了虚拟用户界面,并且用户界面实际上可包括任何程度的复杂度、任何数量的用户界面元素、以及/或者2D和/或3D内容的组合。虚拟用户界面可由各种类型的操作系统和/或应用程序来提供,包括但不限于消息收发应用程序、网页浏览器应用程序、内容查看应用程序、内容创建和编辑应用程序、或者任何其他可显示、呈现、或按其他方式使用视觉和/或音频内容的应用程序。
[0024] 在一些具体实施中,使用一个或多个平坦的背景部分在XR环境105内依次和/或同时呈现多个用户界面(例如,对应于多个不同的应用程序)。在一些具体实施中,可确定此类一个或多个虚拟用户界面的位置和/或取向以促进可视化和/或使用。在3D环境内,一个或多个虚拟用户界面可处于固定位置和取向。在此类情况下,用户移动将不会影响用户界面在3D环境内的位置或取向。
[0025] 在一些具体实施中,HMD 130使得光标134能够在XR环境105内在对象114、132、137和/或138之间移动。在一些具体实施中,光标可以看起来在对象114、132、137和/或138的不连续表面之间翘曲或传送。例如(如图1中所示),光标134可以在根据路径135的方向上从对象138的表面移动到对象137的表面(而不显示光标在延伸非连续对象138和137之间的距离的间隙140上的移动)。响应于光标134接近或相交于对象138的边界138a,路径135可用于指示光标134将在何处相交于对象137的边界137a。该路径可另外使得过程能够确定用于在对象138上呈现光标的起始位置150(在从对象137的非连续移动之后)。路径135可包括对应于2D平面上的光标移动的线,该线具有非平面对象的平面关系的表示,例如,在对象137和138(和/或对象114和132)到平行平面上的正交投影上,如下文参考图2A至图2D所描述的。生成到平行平面上的正交投影可包括将(XR(3D)环境105的)对象137和138投影到2维(2D)平面上以确定与传送光标134相关联的属性。在一些具体实施中,正交投影被投影到独立于用户视点的2D平面上。另选地,可将投影投影到基于用户界面对象(例如,对象137或对象138)的取向而限定的2D平面上。
[0026] 仅相对于对象(例如,虚拟结构)的不连续表面(诸如对象138的表面和对象137的表面)启用光标翘曲或传送过程。如果对象的表面彼此重叠,则启用正常光标移动,使得光标可以在对象的重叠表面上自由移动。例如,如果光标位于悬停在第二虚拟结构(例如,较大应用程序窗口)前面或上面的第一虚拟结构(小警告窗口)上,并且光标到达第一虚拟结构的边界,则翘曲过程被最初启用,直到确定第一虚拟结构与第二虚拟结构之间的路径是连续的。作为响应,翘曲过程被禁用,并且光标可以从第一虚拟表面移动到第二虚拟表面而不翘曲。
[0027] 在一些具体实施中(在光标134在XR环境105内在第一虚拟结构上方移动期间),可以确定不存在与第一虚拟结构相邻定位的附加虚拟结构。在该实例中,邻近的光标134被夹紧(例如,锁定)到第一虚拟结构的边界,以防止光标的进一步移动,使得光标134不会浮在XR环境105内的空白空间(例如,没有虚拟结构)上方。
[0028] 图2A至图2B示出了利用投影上的路径235(来自3D环境,诸如图1的XR环境105)来确定光标134移动。图2A示出了到投影平面上的投影以将光标表示234从表示238(对应于图1的对象138)移动到表示237(对应于图1的对象137)。对应对象137、138(图2B)不位于3D环境内的相同平面中,但是表示237、238位于正交投影的相同平面中。图2A示出了正交投影的若干视图。正交投影(视图202a、视图202b、视图202c和视图202d)包括对象(例如,用户界面)138的表示238和对象(例如,用户界面)237的表示137。
[0029] 在图2A中,在对应于视图202a的第一时刻,用户(例如,图1的用户110)已经提供了对应于位于对象(例如,用户界面)238上的指定位置处的光标表示234的位置的光标移动输入(例如,使用他们的手经由图1的触控板125提供输入)。可以相对于光标234的移动来跟踪用户的手的移动或其他光标移动输入,以标识相对于当前与光标相关联的对象(例如,视图202a中的对象238)的光标移动和用户交互。在该示例中,视图202a示出了在从其初始位置沿着路径235移动之后的光标134的表示234的位置。在一些具体实施中,基于默认位置(诸如屏幕的中心)或输入模态(例如,基于手指或凝视位置)来确定初始位置,并且后续移动基于另一输入模态(例如,基于触控板用户输入)。
[0030] 图2B示出了对应于图2A中所示出的投影的视图202a的XR环境100的视图282a。在该示例中,光标134被定位在对象138上对应于和/或基于光标表示234在对应于对象138的表示238上的位置的位置处。
[0031] 在图2A中,在对应于视图202b的第二时刻,该示例示出用户已经在触控板上移动了他们的手或者提供了使得表示234(对应于光标134)继续沿着路径235移动并且接触(或接近)表示238的边界238a的其他光标移动输入。作为响应,光标234发起用于(例如,经由翘曲过程)在位于表示238与表示237之间的间隙240上移动(跨投影上的表示未占据的距离延伸)的过程。确定路径扩展236。在该示例中,通过将路径235线性地延伸超过光标表示234的当前位置来确定路径扩展236。路径扩展236遵循相对于用户输入命令的方向。例如,路径扩展236可遵循响应于相对于接收与光标移动相关联的输入的输入设备的用户移动(例如,手指沿着触控板的移动路径)的方向。
[0032] 图2B示出了对应于图2A中所示出的投影的视图202b的XR环境100的视图282b。在该示例中,光标134被定位在对象138上对应于和/或基于光标表示234在对应于对象138的表示238上的位置的位置处。
[0033] 在图2A中,响应于(光标表示234的)与边界238a的接触或接近/预期接触,在对应于视图202c的第三时刻,光标表示234被翘曲、传送或以任何其他类似的跳转方式到表示237,其中光标将出现在第一位置处,并且随后出现在与第一位置不同且不直接相邻的第二位置处。光标表示234在分开的对象之间的移动可以是瞬时的,或者可包括基于分开距离(例如,间隙240的大小)的时间延迟。在分开的对象之间的光标表示移动期间,对应的光标
134(图1)可以是可见的或不可见的。在一些具体实施中,可以呈现光标移动/传送的线或其他指示以指示光标在分开的对象之间的行进。
[0034] 图2B示出了对应于图2A中所示出的投影的视图202c的XR环境100的视图282c。在该示例中,在该示例中不显示光标134。在一些具体实施中,光标134在对象138、137之间的传送是瞬时的,并且因此光标134被连续地显示,例如在对象138上的一个帧中和对象137上的下一帧中被显示。
[0035] 在图2A中,在对应于视图202d的第四时刻,表示234被传送/翘曲到表示237。其在表示237上的位置可基于路径235/路径扩展236来确定,例如通过确定路径235/路径扩展236与对象237的对象边界237a的相交。随后,光标表示234可以基于用户光标移动输入而朝向诸如表示238和表示237之类的任何附加表示进一步行进。
[0036] 图2B示出了对应于图2A中所示出的投影的视图202d的XR环境100的视图282d。在该示例中,光标134被定位在对象137上对应于和/或基于光标表示234在对应于对象137的表示237上的位置的位置处。
[0037] 图2C至图2D示出了相对于关于图2A至图2B描述的光标134移动的另选光标134移动。图2C至图2D中示出的光标134移动利用由2D锥形结构215界定的区域来纠正关于用户输入的不准确性,使得如果用户不在相邻对象(例如,图1的对象137和138)的方向上移动光标134,则光标134的路径的方向可以在由锥形结构215界定的区域内被修改以定位要翘曲到的相邻对象表面(例如,以确定关于光标134移动到相邻对象表面上的用户意图)。
[0038] 图2C至图2D示出了利用投影上的路径235a和2D锥形结构215(来自3D环境,诸如图1的XR环境105)来确定光标134移动。图2C示出了到投影平面上的投影,以将光标表示234从表示238(对应于图1的对象138)移动到表示237(对应于图1的位于不同位置(例如,不位于光标134移动的定向路径(例如,路径235a)内的位置)的对象137)。对应对象137、138(图2D)不位于3D环境内的相同平面中,但是表示237、238位于正交投影的相同平面中。图2C示出了正交投影的若干视图。正交投影(视图202e、视图202f、视图202g和视图202h)包括对象(例如,用户界面)138的表示238和对象(例如,用户界面)237的表示137。
[0039] 在图2C中,在对应于视图202e的第一时刻,用户(例如,图1的用户110)已经提供了对应于位于对象(例如,用户界面)238上的指定位置处的光标表示234的位置的光标移动输入(例如,使用他们的手经由图1的触控板125提供输入)。可以相对于光标234的移动来跟踪用户的手的移动或其他光标移动输入,以标识相对于当前与光标相关联的对象(例如,视图202e中的对象238)的光标移动和用户交互。在该示例中,视图202e示出了在从其初始位置沿着路径235a移动之后的光标134的表示234的位置。在一些具体实施中,基于默认位置(诸如屏幕的中心)或输入模态(例如,基于手指或凝视位置)来确定初始位置,并且后续移动基于另一输入模态(例如,基于触控板用户输入)。
[0040] 图2D示出了对应于图2C中所示出的投影的视图202e的XR环境100的视图282e。在该示例中,光标134被定位在对象138上对应于和/或基于光标表示234在对应于对象138的表示238上的位置的位置处。
[0041] 在图2C中,在对应于视图202f的第二时刻,该示例示出用户已经在触控板上移动了他们的手或者提供了使得表示234(对应于光标134)继续沿着路径235a移动并且接触(或接近)表示238的边界238a的其他光标移动输入。作为响应,光标234发起用于(例如,经由翘曲过程)移动到位于(表示237的)边界238a附近且在表示238的边界237b上面的间隙240(延伸到投影上的表示未占据的区域中)中的过程。确定路径扩展236。在该示例中,通过将路径235a线性地延伸超过光标表示234的当前位置并进入由锥形结构215界定的区域中来确定路径扩展236。在该实例中,(经由路径扩展236)确定表示237(对应于对象137)没有定向地位于路径235a的路径扩展236内。因此,路径扩展236的方向必须被修改(经由锥形结构215的使用)以允许表示234(对应于光标134)翘曲(跨间隙240)到表示237(对应于对象137),如下文所描述的。
[0042] 图2D示出了对应于图2C中所示出的投影的视图202f的XR环境105的视图282f。在该示例中,光标134被定位在对象138上对应于和/或基于光标表示234在对应于对象138的表示238上的位置的位置处。
[0043] 在图2C中,响应于(光标表示234的)与边界238a的接触或接近/预期接触并且确定表示237(对应于对象137)没有定向地位于路径235a的路径扩展236的路径内,在对应于视图202g的第三时刻,在由锥形结构215界定的区域内修改路径扩展236的方向(变为路径扩展236a)。路径扩展236的原始方向和(修改的)路径扩展236a的当前方向是通过遵循相对于用户输入命令的方向来确定的。例如,路径扩展236和236a可遵循响应于相对于接收与光标移动相关联的输入的输入设备的用户移动(例如,手指沿着触控板的移动路径)的方向。路径236a的方向可以通过检测对象的表示(例如,对象137的表示237)来确定,该对象的表示位于由锥形结构215界定的区域内的(例如,原始路径扩展236的)原始路径方向附近。如果确定在由锥形结构215界定的区域内存在与对象137的表示237相邻的对象的多个表示,则可以基于检测哪个对象表示更靠近:表示237、(例如,原始路径扩展236的)原始路径方向等来确定路径236a的方向。另选地,如果确定在由锥形结构215界定的区域内存在与对象137的表示237相邻的对象的多个表示,则可以基于当光标表示234位于间隙240内和/或邻近对象237的任何边界时发生的用户输入移动(例如,用户手指的移动)方向来确定路径236a的方向。
[0044] 沿着路径扩展236a行进允许将光标表示234传送到表示237。光标表示234在分开的对象之间的移动可以是瞬时的,或者可包括基于分开距离(例如,间隙240的大小)的时间延迟以及定向修改路径扩展236的时间。在分开的对象之间的光标表示移动期间,对应的光标134(图1)可以是可见的或不可见的。在一些具体实施中,可以呈现光标移动/传送的线、锥或其他指示以指示光标在分开的对象之间的行进。
[0045] 图2D示出了对应于图2C中所示出的投影的视图202g的XR环境105的视图282f。在该示例中,在该示例中不显示光标134。在一些具体实施中,光标134在对象138、137之间的传送是瞬时的,并且因此光标134被连续地显示,例如在对象138上的一个帧中和对象137上的下一帧中被显示。
[0046] 在图2C中,在对应于视图202h的第四时刻,表示234被传送/翘曲到表示237。其在表示237上的位置可基于路径235a/路径扩展236/236a来确定,例如通过确定路径235/路径扩展236a与对象237的对象边界237a的相交。随后,光标表示234可以基于用户光标移动输入而朝向诸如表示238和表示237之类的任何附加表示进一步行进。
[0047] 图2D示出了对应于图2C中所示出的投影的视图202h的XR环境105的视图282h。在该示例中,光标134被定位在对象137上对应于和/或基于光标表示234在对应于对象137的表示237上的位置的位置处。
[0048] 图3示出了示例性系统300的系统流程图,其中系统利用(诸如图1的XR环境105之类的XR环境的)3D环境中的3D用户界面对象的表面到(2D)平面上的正交投影以实现3D环境中的3D用户界面对象之间的光标的无缝移动(例如,翘曲或传送)。在一些具体实施中,示例性系统300的系统流程在设备诸如HMD(例如,图1的HMD 130)上执行。示例性系统300的任何图像可显示在具有用于显示图像的屏幕和/或用于观看立体图像的屏幕的设备诸如HMD上。在一些具体实施中,示例性系统300的系统流程在处理逻辑部件(包括硬件、固件、软件或它们的组合)上执行。在一些具体实施中,在执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器上执行示例性系统300的系统流程。
[0049] 示例性系统300的整个系统流程执行从XR环境的传感器采集环境捕获数据302(例如,图像数据、深度数据、虚拟对象位置和取向数据等)并且实现3D环境中的对象的表面到平行(2D)平面上的正交投影的过程。该过程可进一步被配置为通过使用平行平面结合描述光标行进路径的投影线来确定光标移动,从而实现3D环境中的对象(例如,位于不同平面中)之间的光标移动。经由XR环境向使用设备的用户呈现光标移动。
[0050] 在一些具体实施中,示例性系统300的整个系统流程可执行从XR环境的传感器采集环境捕获数据302(例如,图像数据、深度数据、虚拟对象位置和取向数据等)并生成用于向用户呈现内容的模型(例如,以增强扩展现实(XR)环境)的过程。
[0051] 在示例性具体实施中,系统300包括从设备(例如,图1的HMD 130)上的传感器采集或获得物理环境的数据(例如,来自图像源的图像数据)作为环境捕获数据302的图像合成流水线。环境捕获数据302是采集多个图像帧的图像传感器数据(例如,光强度数据、深度数据和位置信息)的示例。例如,当用户在物理环境的房间中时,用户可采集图像数据。环境捕获数据的图像可显示在具有用于显示图像的屏幕和/或用于观看立体图像的屏幕的设备诸如HMD上。图像源可包括采集物理环境的深度数据的深度相机、采集光强度图像数据(例如,RGB图像帧序列)的光强度相机(例如,RGB相机),以及用于采集定位信息的位置传感器。对于定位信息,一些具体实施包括视觉惯性测距(VIO)系统,以通过使用相机序列图像(例如,光强度数据)确定等效测距信息来估计行进的距离。
[0052] 在示例性具体实施中,系统300包括被配置有可由处理器执行以生成平行(2D)平面的指令的平行平面投影指令集410。平行平面投影指令集310获得环境捕获数据302并生成平行平面数据312。例如,平行平面投影指令集310可以分析特定房间的环境捕获数据302并且生成该特定房间的对应平行(2D)平面(例如,平行(2D)平面模型327a)。因此,平行平面数据312包括所生成的用于环境捕获数据302中所包括的环境中的虚拟用户界面对象的平行(2D)平面模型327a。在一些具体实施中,所生成的平行(2D)平面模型327a包括所有3D虚拟用户界面对象和被变换成2D平面的3D环境的光标,如上文关于图2A至图2D所描述的。平行(2D)平面模型327a可以标识对象在3D或2D坐标系内的位置。在一个示例中,此类位置相对于对应于XR环境的3D坐标系。在另一示例中,此类位置相对于XR环境的2D自顶向下的平面布置图坐标系。
[0053] 在示例性具体实施中,示例性环境400的系统流程包括被配置有可由处理器执行以使得光标能够在XR环境304a内的对象之间移动的指令的平行平面移动指令集315。在一些具体实施中,光标可以看起来在对象的表面之间翘曲或传送,而不显示在间隙上的光标移动,该间隙在根据投影路径的方向上延伸对象之间的非连续距离。根据如在平行(2D)平面模型327b中所示的投影路径,光标重新出现在另一对象上。
[0054] 在示例性具体实施中,系统300包括被配置有可由处理器执行以在XR环境404b的对象上呈现光标(在对象之间移动之后)的指令的光标呈现指令集328。在一些具体实施中,光标呈现指令集428被配置为执行算法(经由专用计算机代码来实现)以检索平行(2D)平面模型327b的数据并将该数据转换成XR环境304b以供呈现给用户。
[0055] 图4是用于在XR环境内的对象(诸如用户界面)的表面之间传送光标的示例性方法400的流程图表示。在一些具体实施中,方法400由具有处理器和显示器的电子设备(例如,图1的HMD 130)执行。在一些具体实施中,方法400由处理逻辑部件(包括硬件、固件、软件或其组合)执行。在一些具体实施中,方法400由执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器执行。可以任何次序启用和执行方法400中的框中的每个框。
[0056] 在框401处,方法400在三维(3D)环境的视图中检测包括第一表面的第一对象和包括第二表面的第二对象。在一些具体实施中,第一对象与第二对象由第一对象和第二对象之间的间隙分开。
[0057] 在框402处,方法400经由显示器在3D环境(例如,XR环境)的视图中显示光标在第一对象(例如,用户界面)的第一表面上的移动。光标可以是示出响应于用户输入的XR环境内的用户交互的位置的指示符。光标可响应于用户的凝视或头部姿势而最初显示在第一表面上的初始位置处。在一些具体实施中,基于默认位置(诸如屏幕的中心)或输入模态(例如,基于手指或凝视位置)来确定初始位置,并且后续移动基于另一输入模态(例如,基于触控板用户输入)。
[0058] 在框404处,方法400确定光标的移动在第一位置处接近或相交于(第一对象的)第一表面的边界。
[0059] 在框406处(根据确定光标的移动接近或相交于第一表面的边界),方法400基于光标相对于第二表面的边界的交点的路径来确定3D环境中的第二对象的第二表面上的第二位置。
[0060] 在一些具体实施中,路径可以是与第一表面和第二表面的正交投影上的光标移动相对应的线。在一些具体实施中,路径可以是基于在正交投影上延伸与光标移动相对应的线段的线。正交投影可以被投影到独立于用户视点的平面上。另选地,正交投影可以被投影到基于用户界面对象的取向而限定的平面(例如,平行平面)上。
[0061] 在一些具体实施中,第一对象或第二对象可包括平坦用户界面对象,特别是诸如窗口、对应于分开的应用程序部件或分开的应用程序的窗口等。
[0062] 在一些具体实施中,(第一对象的)第一表面和(第二对象的)第二表面由包括3D环境内的非连续距离的间隙分开。在一些具体实施中,(第一对象的)第一表面和(第二对象的)第二表面可包括平坦表面,该平坦表面由包括3D环境中彼此非连续的距离的间隙分开并且在不同(非平行)方向上取向。
[0063] 在框408处,该方法将光标从第一位置移动到第二位置。在一些具体实施中,将光标从第一位置移动到第二位置可包括在第一位置处中断光标的显示并且在第二位置处发起光标的显示而不在第一位置与第二位置之间的间隙中显示光标。
[0064] 图5是根据一些具体实施的设备500(例如,图1的HMD 130)的示例的框图。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,在一些具体实施中,设备500包括一个或多个处理单元502(例如,微处理器、ASIC、FPGA、GPU、CPU、处理核心等)、一个或多个输入/输出(I/O)设备及传感器506、一个或多个通信接口508(例如,USB、FIREWIRE、THUNDERBOLT、IEEE 802.3x、IEEE 802.11x、IEEE 802.16x、GSM、CDMA、TDMA、GPS、IR、BLUETOOTH、ZIGBEE、SPI、I2C和/或类似类型的接口)、一个或多个编程(例如,I/O)接口510、一个或多个显示器512、一个或多个面向内部和/或面向外部的图像传感器系统514、存储器520以及用于互连这些部件和各种其他部件的一条或多条通信总线504。
[0065] 在一些具体实施中,一条或多条通信总线504包括互连并控制系统部件之间的通信的电路。在一些具体实施中,一个或多个I/O设备及传感器506包括以下各项中的至少一者:惯性测量单元(IMU)、加速度计、磁力计、陀螺仪、温度计、一个或多个生理传感器(例如,血压监测仪、心率监测仪、血氧传感器、血糖传感器等)、一个或多个麦克风、一个或多个扬声器、触觉引擎、一个或多个深度传感器(例如,结构光、飞行时间等)等。
[0066] 在一些具体实施中,一个或多个显示器512被配置为向用户呈现物理环境或图形环境的视图。在一些具体实施中,一个或多个显示器512被配置为向用户呈现(基于所确定的用户在物理环境内的用户/对象位置来确定的)内容。在一些具体实施中,一个或多个显示器512对应于全息、数字光处理(DLP)、液晶显示器(LCD)、硅上液晶(LCoS)、有机发光场效应晶体管(OLET)、有机发光二极管(OLED)、表面传导电子发射器显示器(SED)、场发射显示器(FED)、量子点发光二极管(QD‑LED)、微机电系统(MEMS)和/或类似显示器类型。在一些具体实施中,一个或多个显示器512对应于衍射、反射、偏振、全息等波导显示器。在一个示例中,设备500包括单个显示器。又如,设备500包括针对用户的每只眼睛的显示器。
[0067] 在一些具体实施中,一个或多个图像传感器系统514被配置为获得对应于物理环境105的至少一部分的图像数据。例如,一个或多个图像传感器系统514包括一个或多个RGB相机(例如,具有互补金属氧化物半导体(CMOS)图像传感器或电荷耦合器件(CCD)图像传感器)、单色相机、IR相机、深度相机、基于事件的相机等。在各种具体实施中,一个或多个图像传感器系统514还包括发射光的照明源,诸如闪光灯。在各种具体实施中,该一个或多个图像传感器系统514还包括相机上图像信号处理器(ISP),其被配置为对图像数据执行多个处理操作。
[0068] 在一些具体实施中,设备500包括用于检测眼睛位置和眼睛移动(例如,眼睛凝视检测)的眼睛跟踪系统。例如,眼睛跟踪系统可包括一个或多个红外(IR)发光二极管(LED)、眼睛跟踪相机(例如,近红外(NIR)相机)和向用户的眼睛发射光(例如,NIR光)的照明源(例如,NIR光源)。此外,设备500的照明源可发射NIR光以照明用户的眼睛,并且NIR相机可捕获用户的眼睛的图像。在一些具体实施中,可分析由眼睛跟踪系统捕获的图像以检测用户的眼睛的位置和移动,或检测关于眼睛的其他信息诸如瞳孔扩张或瞳孔直径。此外,从眼睛跟踪图像估计的凝视点可使得能够与设备500的近眼显示器上示出的内容进行基于凝视的交互。
[0069] 存储器520包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备。在一些具体实施中,存储器520包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器520任选地包括与一个或多个处理单元502远程定位的一个或多个存储设备。存储器520包括非暂态计算机可读存储介质。
[0070] 在一些具体实施中,存储器520或存储器520的非暂态计算机可读存储介质存储可选的操作系统530和一个或多个指令集540。操作系统530包括用于处理各种基础系统服务和用于执行硬件相关任务的过程。在一些具体实施中,指令集540包括由以电荷形式存储的二进制信息定义的可执行软件。在一些具体实施中,指令集540是能够由一个或多个处理单元502执行以实施本文所述技术中的一种或多种的软件。
[0071] 指令集540包括平行平面投影指令集542,平行平面移动指令集544和光标呈现指令集546。指令集540可以体现为单个软件可执行文件或多个软件可执行文件。
[0072] 平行平面投影指令集542被配置有可由处理器执行以生成平行平面模型的指令。例如,平行平面指令集542可以评估平行平面数据和环境捕获数据以生成包括XR环境的2D表示的平行平面模型。
[0073] 平行平面移动指令集544被配置有可由处理器执行以从平行平面投影指令集542获得并评估平行平面模型以检测XR环境内的对象之间的光标移动的指令。
[0074] 光标呈现指令集546被配置有可由处理器执行以呈现光标在XR环境的对象上的移动的指令。
[0075] 尽管指令集540被示出为驻留在单个设备上,但应当理解,在其他具体实施中,元件的任何组合可位于单独的计算设备中。此外,图5更多地用作存在于特定具体实施中的各种特征部的功能描述,该各种特征部与本文所述的具体实施的结构示意图不同。如本领域的普通技术人员将认识到的,单独显示的项目可以组合,并且一些项目可以分开。指令集的实际数量以及如何在其中分配特征将根据具体实施而变化,并且可以部分地取决于为特定具体实施选择的硬件、软件和/或固件的特定组合。
[0076] 返回到图1,扩展现实(XR)环境是指人们经由电子设备感测和/或交互的完全或部分模拟的环境。例如,XR环境可包括增强现实(AR)内容、混合现实(MR)内容、虚拟现实(VR)内容等。在XR系统的情况下,跟踪人的物理运动的一个子集或其表示,并且作为响应,以符合至少一个物理定律的方式调节在XR环境中模拟的一个或多个虚拟对象的一个或多个特征。如一个示例,XR系统可以检测头部移动,并且作为响应,以与此类视图和声音在物理环境中变化的方式类似的方式调节呈现给人的图形内容和声场。如另一示例,XR系统可以检测呈现XR环境的电子设备(例如,移动电话、平板计算机、膝上型计算机等)的移动,并且作为响应,以类似于此类视图和声音在物理环境中将如何改变的方式调节呈现给人的图形内容和声场。在一些情况下(例如,出于可达性原因),XR系统可响应于物理运动的表示(例如,声音命令)来调节XR环境中图形内容的特征。
[0077] 有许多不同类型的电子系统使人能够感测和/或与各种XR环境进行交互。示例包括头戴式系统、基于投影的系统、平视显示器(HUD)、集成有显示能力的车辆挡风玻璃、集成有显示能力的窗户、被形成为设计用于放置在人的眼睛上的透镜的显示器(例如,类似于隐形眼镜)、耳机/听筒、扬声器阵列、输入系统(例如,具有或不具有触觉反馈的可穿戴或手持式控制器)、智能电话、平板计算机,以及台式/膝上型计算机。头戴式系统可具有集成不透明显示器和一个或多个扬声器。另选地,头戴式系统可被配置为接受外部不透明显示器(例如,智能电话)。头戴式系统可结合用于捕获物理环境的图像或视频的一个或多个成像传感器以及/或者用于捕获物理环境的音频的一个或多个麦克风。头戴式系统可具有透明或半透明显示器,而不是不透明显示器。透明或半透明显示器可具有媒介,表示图像的光通过该媒介被引导到人的眼睛。显示器可以利用数字光投影、OLED、LED、uLED、硅基液晶、激光扫描光源或这些技术的任意组合。媒介可以是光学波导、全息图媒介、光学组合器、光学反射器,或它们的任何组合。在一些具体实施中,透明或半透明显示器可被配置为选择性地变得不透明。基于投影的系统可以采用将图形图像投影到人的视网膜上的视网膜投影技术。投影系统也可以被配置为将虚拟对象投影到物理环境中,例如作为全息图或在物理表面上。
[0078] 本领域的那些普通技术人员将意识到没有详尽地描述众所周知的系统、方法、部件、设备和电路,以免模糊本文所述的示例性具体实施的更多相关方面。此外,其他有效方面和/或变体不包括本文所述的所有具体细节。因此,描述了若干细节以便提供对附图中所示的示例性方面的透彻理解。此外,附图仅示出了本公开的一些示例性实施方案,因此不应被视为限制。
[0079] 虽然本说明书包含许多具体实施细节,但是这些具体实施细节不应被理解为是对任何发明或可能要求保护的内容的范围的限制,而应被理解为对特定于特定发明的特定实施方案的特征的描述。本说明书中在不同实施方案的上下文中描述的某些特征也可以在单个实施方案中组合地实现。相反地,在单个实施方案的上下文中描述的各种特征也可单独地或者以任何合适的子组合的形式在多个实施方案中实现。此外,虽然某些特征可能在上面被描述为以某些组合来起作用并且甚至最初也这样地来要求保护,但是要求保护的组合的一个或多个特征在某些情况下可从该组合中去除,并且要求保护的组合可涉及子组合或子组合的变型。
[0080] 类似地,虽然操作在附图中以特定次序示出,但不应将此理解为要求以相继次序或所示的特定次序来执行此类操作,或者要求执行所有所示的操作以实现期望的结果。在某些情况中,多任务和并行处理可能是有利的。此外,上述实施方案中各个系统部件的划分不应被理解为在所有实施方式中都要求此类划分,并且应当理解,所述程序部件和系统可一般性地一起整合在单个软件产品中或者封装到多个软件产品中。
[0081] 因此,已经描述了主题的特定实施方案。其他实施方案也在以下权利要求书的范围内。在某些情况下,权利要求书中所述的动作能够以不同的次序执行,并且仍能实现期望的结果。此外,附图中所示的过程未必要求所示的特定次序或者先后次序来实现期望的结果。在某些具体实施中,多任务和并行处理可能是有利的。
[0082] 本说明书中描述的主题和操作的实施方案可在数字电子电路中或在计算机软件、固件或硬件中(包括本说明书中公开的结构及其结构等同物)或在它们中的一者或多者的组合中实现。本说明书中所述主题的实施方案可被实现为一个或多个计算机程序,即在计算机存储介质上编码的计算机程序指令的一个或多个模块,以用于由数据处理装置执行或控制数据处理装置的操作。另选地或除此之外,该程序指令可在人工生成的传播信号上被编码,例如机器生成的电信号、光信号或电磁信号,该电信号、光信号或电磁信号被生成以对信息进行编码以便传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是计算机可读存储设备、计算机可读存储基板、随机或串行访问存储器阵列或设备,或者它们中的一者或多者的组合,或者包括在计算机可读存储设备、计算机可读存储基板、随机或串行访问存储器阵列或设备中。此外,虽然计算机存储介质并非传播信号,但计算机存储介质可以是在人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质也可以是一个或多个单独的物理部件或介质(例如,多个CD、磁盘或其他存储设备),或者包括在一个或多个单独的物理部件或介质中。
[0083] 术语“数据处理装置”涵盖用于处理数据的所有种类的装置、设备和机器,例如包括可编程处理器、计算机、片上系统、或前述各项中的多项或组合。该装置可包括专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))。除了硬件之外,该装置还可包括为所考虑的计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行环境、虚拟机或它们中的一者或多者的组合的代码。该装置和执行环境可实现各种不同的计算模型基础结构,诸如web服务、分布式计算和网格计算基础结构。除非另外特别说明,否则应当理解,在整个说明书中,利用诸如“处理”、“计算”、“计算出”、“确定”和“标识”等术语的论述是指计算设备的动作或过程,诸如一个或多个计算机或类似的电子计算设备,其操纵或转换表示为计算平台的存储器、寄存器或其他信息存储设备、传输设备或显示设备内的物理电子量或磁量的数据。
[0084] 本文论述的一个或多个系统不限于任何特定的硬件架构或配置。计算设备可以包括部件的提供以一个或多个输入为条件的结果的任何合适的布置。合适的计算设备包括基于多用途微处理器的计算机系统,其访问存储的软件,该软件将计算系统从通用计算装置编程或配置为实现本发明主题的一种或多种具体实施的专用计算装置。可以使用任何合适的编程、脚本或其他类型的语言或语言的组合来在用于编程或配置计算设备的软件中实现本文包含的教导内容。
[0085] 本文所公开的方法的具体实施可以在这样的计算设备的操作中执行。上述示例中呈现的框的顺序可以变化,例如,可以将框重新排序、组合和/或分成子块。某些框或过程可以并行执行。本说明书中描述的操作可以被实施为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收的数据执行的操作。
[0086] 本文中“适用于”或“被配置为”的使用意味着开放和包容性的语言,其不排除适用于或被配置为执行额外任务或步骤的设备。另外,“基于”的使用意味着开放和包容性,因为“基于”一个或多个所述条件或值的过程、步骤、计算或其他动作在实践中可以基于额外条件或超出所述的值。本文包括的标题、列表和编号仅是为了便于解释而并非旨在为限制性的。
[0087] 还将理解的是,虽然术语“第一”、“第二”等可能在本文中用于描述各种元素,但是这些元素不应当被这些术语限定。这些术语只是用于将一个元件与另一元件区分开。例如,第一节点可以被称为第二节点,并且类似地,第二节点可以被称为第一节点,其改变描述的含义,只要所有出现的“第一节点”被一致地重命名并且所有出现的“第二节点”被一致地重命名。第一节点和第二节点都是节点,但它们不是同一个节点。
[0088] 本文中所使用的术语仅仅是为了描述特定具体实施并非旨在对权利要求进行限制。如在本具体实施的描述和所附权利要求中所使用的那样,单数形式的“一个”和“该”旨在也涵盖复数形式,除非上下文清楚地另有指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件,和/或其分组。
[0089] 如本文所使用的,术语“如果”可以被解释为表示“当所述先决条件为真时”或“在所述先决条件为真时”或“响应于确定”或“根据确定”或“响应于检测到”所述先决条件为真,具体取决于上下文。类似地,短语“如果确定[所述先决条件为真]”或“如果[所述先决条件为真]”或“当[所述先决条件为真]时”被解释为表示“在确定所述先决条件为真时”或“响应于确定”或“根据确定”所述先决条件为真或“当检测到所述先决条件为真时”或“响应于检测到”所述先决条件为真,具体取决于上下文。

当前第1页 第1页 第2页 第3页
J·H·劳伦斯发明人的其他相关专利技术