虚拟对象用户界面显示的制作方法

文档序号:19186888发布日期:2019-11-20 01:35阅读:209来源:国知局
虚拟对象用户界面显示的制作方法



背景技术:

增强现实显示设备使得用户能够查看和操纵被显示以呈现在用户的物理环境内的虚拟内容。在一些示例中,虚拟内容可以伴随有可以用来与内容进行交互的一个或多个虚拟用户界面元素,诸如一个或多个全息按钮、滑块或其他控制元素。



技术实现要素:

本文中公开了用于显示用户界面元素的方法、计算设备和头戴式显示器设备。在一个示例中,一种方法包括:在现实世界物理环境内显示虚拟对象;以及与虚拟对象一起显示一个或多个用户界面元素。接收移动虚拟对象和一个或多个用户界面元素中的一个或多个的用户输入。

该方法确定虚拟对象和一个或多个用户界面元素中的一个或多个在环境中的物理表面的预定距离内。基于确定虚拟对象和一个或多个用户界面元素中的一个或多个在表面的预定距离内,在表面上显示一个或多个用户界面元素。

提供本“发明内容”以便以简化的形式介绍一些概念,这些概念将在下面的“具体实施方式”中进一步描述。本“发明内容”既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任何部分中指出的任何或所有缺点的实现。

附图说明

图1是根据本公开的示例的可以显示(多个)用户界面元素的示例计算设备和显示设备的示意图。

图2示出了根据本公开的示例的佩戴图1的头戴式显示器设备并且在现实世界物理环境中查看虚拟内容和用户界面元素的用户。

图3示出了根据本公开的示例的由用户在另一定向上查看的图2的虚拟内容和用户界面元素。

图4示出了根据本公开的示例的显示在虚拟边界框中的虚拟内容。

图5-8示出了根据本公开的示例的转变为显示在桌面上的用户界面元素。

图9-10示出了根据本公开的示例的提供视觉指示的示例。

图11示出了根据本公开的示例的在物理表面上显示附加用户界面元素。

图12示出了根据本公开的示例的修改至少一个用户界面元素的显示以用于触摸输入。

图13示出了根据本公开的示例的基于一个或多个用户特性在物理表面上显示用户界面元素。

图14示出了根据本公开的示例的显示具有与物理表面的弯曲部分相匹配的弯曲部分的用户界面元素。

图15示出根据本公开的示例的在物理表面上在避免障碍的位置处显示用户界面元素。

图16示出了根据本公开的示例的在物理表面的触摸检测表面上显示用户界面元素。

图17a和17b是根据本公开的示例的用于在物理表面上显示一个或多个用户界面元素的方法的流程图。

图18示出了根据本公开的示例的计算系统。

具体实施方式

在增强现实环境中,用户可以查看包括显示在物理环境内的虚拟内容(诸如全息图)的现实世界物理环境。例如并且如下面更详细描述的,头戴式显示器(hmd)设备可以包括被配置为通过显示器在视觉上增强现实世界三维环境的视图的透视显示器。在其他示例中,虚拟内容可以与用户的现实世界环境的现实世界图像融合在一起。例如,显示设备可以包括提供沉浸式虚拟现实体验的非透视头戴式显示器设备。在其他示例中,平板计算机、移动通信设备、笔记本计算机和类似设备可以显示与用户的现实世界环境的现实世界图像融合在一起的虚拟内容。

在一些示例中并且如下面更详细描述的,虚拟内容可以与一个或多个用户界面(ui)元素一起显示,这些ui元素可以由用户选择或者由用户以其他方式交互以操纵虚拟内容。例如,漂浮全息对象与对应的全息ui元素可以一起显示在用户的前面(例如,参见图2所示的全息摩托车244和相邻的全息ui元素76)。通过使用一种输入方法或模态或者输入方法或模态的组合选择一个或多个ui元素,用户可以方便地与全息对象进行交互。这样的方法和模态的示例可以包括注视检测、手势检测、头部姿势检测、语音命令、鼠标输入、手持式控制器、以及来自键盘的按键。例如,用户可以注视用户界面元素以选择它,并且然后根据与所选择的ui元素相关联的功能来使用手指手势来操纵所显示的对象。

在其中全息ui元素漂浮在空中显示的示例中,如果用户物理地移动她的手指(或手持笔、手写笔等)以“触摸”元素之一(即,使用所显示的ui元素的位置来共同定位她的手指),则用户不会感觉到其指尖上的触觉反馈,这在触摸物理按钮或其他物理表面时通常会感觉到。在ui元素显示在物理表面上的其他示例中,用户可以通过移动她的手指(或笔、手写笔等)以接触显示有元素之一的表面来物理地“触摸”该元素。以这种方式,当用户感觉到她的手指/笔/手写笔接触ui元素时,用户可以感觉到触觉反馈。为了本公开的目的,在物理表面上显示ui元素或其他虚拟内容包括显示该元素以看起来位于表面上或附接到该表面。

本公开涉及在提供方便的用户交互体验的位置中显示ui元素的方法、计算设备和显示设备。在一些示例中,并且基于一个或多个因素,ui元素从漂浮位置移动到显示在物理表面上。在一些示例中,可以以编程方式修改所显示的(多个)ui元素的初始位置,以在修改后的位置将元素显示在附近的表面上。以这种方式,用户可以物理地触摸显示有ui元素的表面的一部分。因此,在本公开的潜在优点中,方便地向用户提供了基于触摸的交互体验的熟悉性、直观性、准确性和其他优点。

现在参考图1,提供了用于显示(多个)ui元素的计算和显示设备的示例实现的示意图。在一个示例中,计算设备10被集成到头戴式显示器(hmd)设备18中。计算设备10可以包括用户界面(ui)元素布局程序12,该ui元素布局程序12包括可以存储在大容量存储装置16中的指令。用户界面元素布局程序12可以加载到存储器20中并且由处理器22执行以执行本文中描述的方法和过程中的一个或多个。下面参考图18更详细地描述关于计算设备10的组件和计算方面的附加细节。

hmd设备18可以创建并且向第一查看者24显示包括虚拟内容的增强现实环境。hmd设备18可以包括显示程序28,该显示程序28生成这样的虚拟内容以经由hmd设备进行显示。虚拟内容可以包括虚拟对象30形式的一个或多个视觉元素,诸如三维(3d)全息对象和二维(2d)虚拟图像,这些视觉元素被生成并且显示为看起来位于通过设备查看的现实世界物理环境32中。以这种方式,hmd设备18可以创建增强现实环境,该增强现实环境使得查看者能够感知位于围绕查看者的物理环境32内的这样的虚拟对象30。如下面更详细讨论的,物理环境32可以包括具有表面34(诸如平坦表面、弯曲表面等)的物理对象。

在一些示例中,hmd设备18可以包括被支撑在用户的一个或多个眼睛前面从而使得用户可以查看他或她的周围环境的至少部分透视显示器36。可以使用任何合适的显示技术和配置来经由至少部分透视显示器36显示图像。例如,至少部分透视显示器36可以被配置为使得hmd设备18的佩戴者能够通过显示虚拟对象表示的一个或多个部分透明像素来查看物理环境中的物理现实对象。至少部分透视显示器36可以包括图像产生元件,例如透视有机发光二极管(oled)显示器。

作为另一个示例,hmd设备18可以在一个或多个至少部分透视显示面板的边缘上包括光调制器。在该示例中,(多个)面板可以用作将光从光调制器传递到佩戴者的眼睛的光导。这样的光导可以使得佩戴者能够感知位于佩戴者正在查看的物理环境内的虚拟内容。在其他示例中,显示面板可以利用硅上液晶(lcos)显示器。

hmd设备18可以包括从物理环境32接收物理环境数据的一个或多个传感器和相关系统。例如,hmd设备18可以包括生成深度图像数据的深度传感器系统38。深度传感器系统38可以包括从物理环境32捕获图像数据26的一个或多个深度相机。在一些示例中,(多个)深度相机可以是红外飞行时间深度相机。在其他示例中,(多个)深度相机可以采用结构化光深度相机的形式。可以利用任何合适的深度跟踪系统和技术。

在一些示例中,hmd设备18可以包括利用至少一个面向外的传感器的光学传感器系统40,诸如rgb相机、ir传感器或其他光学传感器。面向外的传感器可以从物理环境32以颜色、ir或其他光信息的形式捕获图像数据26。在一些示例中,这样的图像数据26可以由处理器22用来检测hmd设备18的视场内的移动,诸如指示要采取的动作的由佩戴者执行的基于手势的输入或其他移动(例如,捏手指,紧握拳头,用手指或手指示,等等)、经由hmd设备18显示的虚拟对象的选择、或其他用户输入。在一些示例中,这样的图像数据26可以用于确定用户触摸了表面。

来自光学传感器系统40的数据也可以由处理器22用来确定方向/位置和定向数据(例如,从成像环境特征),这些数据使得能够在现实世界物理环境32中对hmd设备18进行位置/运动跟踪。这样的数据还可以用于标识表面和/或测量物理环境32的一个或多个表面参数,诸如表面是否是平坦的、弯曲的、纹理的等。

hmd设备18还可以包括位置传感器系统42,位置传感器系统42包括一个或多个加速度计、陀螺仪、惯性测量单元、头部跟踪系统、和/或用于确定设备的位置和/或定向的其他传感器。可以评估hmd设备18相对于物理环境32的相对位置和/或定向,从而可以以期望的定向将虚拟内容准确地显示在期望的现实世界位置中。

在一些示例中,可以使用6自由度(6dof)位置传感器系统以便以世界锁定的方式显示虚拟内容。相对于通过hmd设备18可查看的现实世界对象,世界锁定的虚拟对象(诸如全息图)看起来是固定的,从而使得hmd设备的佩戴者能够在现实世界物理环境中移动的同时将虚拟对象感知为在物理环境中以固定的位置和定向保持静止。

在其他示例中,hmd设备18可以以身体锁定显示模式进行操作,在这种模式下,可以经由hmd设备以身体锁定位置显示一个或多个虚拟对象。在身体锁定位置中,全息对象看起来相对于hmd设备18的佩戴者是固定的,并且全息对象的身体锁定位置看起来相对于现实世界对象是可移动的。

在一些示例中,并且如下面更详细描述的,可以相对于第二虚拟对象和/或hmd设备以对象锁定的方式显示第一虚拟对象。在这些示例中,第一虚拟对象和第二虚拟对象看起来在位置上相互关联,使得一个对象的移动引起另一对象的对应移动。换言之,当一个或两个对象移动时,第一对象相对于第二对象的位置保持固定。

hmd设备18还可以包括换能器系统44,该换能器系统44包括将电信号转变为另一形式的能量的一个或多个致动器。在一些示例中,换能器系统44可以包括用于向查看者提供音频反馈的一个或多个扬声器。在其他示例中,换能器系统44可以包括用于生成并且向查看者提供触觉反馈(诸如振动)的一个或多个触觉换能器。hmd设备18还可以包括麦克风系统46和一个或多个麦克风以用于从物理环境接收音频输入。

计算设备10可以从hmd设备18的注视跟踪系统68接收注视跟踪数据。在一些示例中,一个或多个面向内的光源和图像传感器可以收集用于测量用户眼睛的注视参数的图像信息。使用该信息,处理器22可以执行指令以确定用户正在注视的方向和/或用户正在注视的物理和/或虚拟对象的身份。使用注视跟踪数据,处理器22可以执行指令以监测查看者在物理环境32内和相对于物理特征的注视位置以及显示在物理环境内的虚拟内容。在其他示例中,可以利用任何合适的注视跟踪技术。

在一些示例中,可以由hmd设备18生成物理环境32的至少一部分的3d模型72,并且将其用于显示和操纵物理环境内的虚拟对象30。3d模型可以包括可以用于标识物理环境中的物理对象和特征(诸如表面34)的表面重建信息。

图1所示的示例示出了集成到hmd设备18中的计算设备10。应当理解,在其他示例中,计算设备10可以是通信地耦合到hmd设备18的与hmd设备18分离的组件。另外,可以使用具有各种形状因数的很多类型和配置的hmd设备18,并且它们在本公开的范围内。在一些示例中,上述传感器系统或其他数据收集系统中的一个或多个可以位于hmd设备18外部。

继续参考图1,示出了与显示设备82物理上分离的计算设备80的示例。在该示例中,计算设备80可以包括或集成到分离的设备中,诸如机顶盒、游戏机、或不包括集成显示器的其他类似设备。

计算设备80可以使用有线连接与显示设备82可操作地连接,或者可以采用经由wifi、bluetooth或任何其他合适的无线通信协议的无线连接。例如,计算设备80可以通信地耦合到网络84。网络84可以采用局域网(lan)、广域网(wan)、有线网络、无线网络、个域网或其组合的形式,并且可以包括因特网。下面参考图18更详细地描述关于计算设备80的组件和计算方面的附加细节。

与计算设备10一样,计算设备80可以包括可以存储在大容量存储装置86中的ui元素布局程序12。ui元素布局程序12可以加载到存储器88中并且由处理器90执行以执行经由显示设备82在下面更详细地描述的方法和过程中的一个或多个。

示例显示设备82可以包括用于捕获物理环境32的图像数据26的相机92和用于向第二查看者96呈现视觉内容的显示系统94。在一些示例中,显示设备82可以包括上述hmd设备18的传感器、换能器、麦克风和注视跟踪系统中的一个或多个。在一些示例中,显示设备82可以包括提供沉浸式虚拟现实体验的非透视头戴式显示器设备。在这些示例中,在现实世界物理环境内显示虚拟对象可以包括在现实世界物理环境的虚拟表示内显示虚拟对象,其中虚拟表面向应于物理表面。

在其他示例中,计算设备80可以包括或集成到显示设备82中,并且可以采用平板计算机、笔记本计算机、移动计算设备、壁挂式显示器、或具有集成显示器的其他类似设备的形式。在一些示例中,一个或多个外部相机和其他传感器(未示出)可以捕获关于显示设备82的位置或定向的数据并且将这样的数据提供给计算设备80。例如,一个或多个外部安装的深度相机、rgb相机和/或ir相机可以跟踪显示设备82的位置和定向并且将这样的数据提供给计算设备80。

现在参考图2-16,现在将提供对本公开的示例用例的描述。图2是佩戴hmd设备18并且站在房间210的现实世界物理环境中的用户200的示意图。房间210包括多个物理对象和表面,诸如墙壁214、216和218、天花板220、沙发222、桌子230、垒球232、艺术品234和书架240。每个物理对象都可以包括一个或多个物理特征,诸如线性边缘、弯曲边缘、平坦表面、弯曲表面、拐角、角度等。例如,桌子230具有平坦的桌面236。在一些示例中,物理特征可以表示有用的语义信息,诸如地板、门、墙壁、天花板等。

如上所述,在一些示例中,hmd设备18可以显示虚拟内容以及用户可以选择或以其他方式用来与虚拟内容进行交互的一个或多个用户界面元素76。在图2和3的示例中,hmd设备18以全息摩托车244和4个虚拟用户界面元素76的形式显示虚拟内容。在该示例中,用户界面元素76采用移动控件、旋转控件、缩放控件和去除控件的形式。在其他示例中,可以显示更少或更多的用户界面元素,和/或可以显示其他类型的用户界面元素,诸如按钮、滑块控件、和提供与虚拟内容进行交互的其他功能的控件。

在一些示例中,可以以对象锁定的方式将(多个)用户界面元素与对应的虚拟对象一起显示。在图2的示例中,ui元素76可以与全息摩托车244以对象锁定的方式显示。因此,当用户200在房间210内移动摩托车244时,ui元素76可以跟随摩托车,就好像附接到摩托车一样。

在一些示例中并且为了提供容易的查看和交互,ui元素76可以被显示为面向hmd设备18和用户200,而不管它们在房间210中的位置或用户对对应虚拟对象的操纵。在图2和3的示例中,当用户200操纵全息摩托车244(例如,移动、旋转、缩放或以其他方式改变摩托车的显示)时,可以根据需要调节ui元素76以继续面向hmd设备18和用户200。以这种方式,ui元素76可以被保持在用户200容易查看的位置中。

在选择ui元素76时,用户200可以经由hmd设备18提供操纵全息摩托车244的用户操纵输入。例如,用户可以注视ui元素以选择它,并且然后根据界面元素使用手指手势操纵所显示的对象。在一些示例中,用户可以经由用户的头部注视方向和/或其他形式的用户操纵输入来定位、定向和缩放摩托车244。在一个示例中,通过改变他的头部注视方向,用户200可以使摩托车244在房间210周围移动。摩托车244与hmd设备18之间的距离可以由诸如“后退”和“前进”等用户语音命令来控制。在缩放摩托车244的另一示例中,用户200可以选择缩放ui元素76,并且然后使用反捏手指手势来均匀地增加摩托车的大小。

参考图4,在一些示例中,可以在虚拟边界框或其他虚拟容器内显示虚拟对象。在图4的示例中,全息摩托车244显示在虚拟边界框400内。在该示例中,用户可以通过与虚拟边界框400交互来操纵全息摩托车244。同样,在该示例中,在边界框400的一个面(诸如朝向hmd设备18的面)上显示4个虚拟ui元素76。

如上所述,用户200可以使用多种交互模态中的一种或多种与ui元素76交互。在一些示例中,当ui元素76被显示为漂浮在空中时,可以针对来自用户200的注视和/或手势输入来优化元素的布局。例如,ui元素76可以被显示为悬停在对应虚拟对象前面并且面向hmd设备18,以使得用户能够经由注视和/或手势识别来容易地进行选择。另外并且如上所述,可以周期性地调节ui元素76的布局,使得这些元素面向hmd设备18和用户200。

在一些示例中,用户200可以注视ui元素以选择它,并且然后根据界面元素使用手指手势来操纵所显示的对象。在其他示例中,可以通过以下方式来实现这样的选择:检测从hmd设备18投射并且与ui元素相交的射线,接收选择ui元素的用户语音命令,手势检测,头部位置/定向检测,手持遥控输入,或者任何其他合适的用户交互技术。

现在参考图5-7,在一些示例中并且基于一个或多个确定,ui元素布局程序12可以引起ui元素76从漂浮的空中位置转变为显示在物理表面上。以这种方式并且如上所述,当ui元素76被触摸时,用户可以体验触觉反馈。参考图5,在一些示例中,ui元素布局程序12可以使用与物理表面的接近度来确定是否在表面上显示ui元素76。更具体地,用户界面元素布局程序12可以确定虚拟对象和一个或多个ui元素中的一个或多个是否在物理表面的预定距离内。

在图5的示例中,用户界面元素布局程序12可以确定全息摩托车244和/或ui元素76是否在桌面236的预定距离500内。在一个示例中并且参考图6,当用户200将摩托车244和ui元素76移向桌面236时,用户界面元素布局程序12可以确定摩托车244的中心250是否在预定距离500内。在其他示例中,与虚拟对象相关联的其他位置可以由开发人员指定或以其他方式用于确定对象是否在物理表面的预定距离内。

在各种示例中,预定距离可以是10cm、20cm、30cm、1m或任何其他合适的距离。在一些示例中,预定距离500可以由用户、开发人员和/或其他第三方根据一个或多个因素来配置。这样的因素的示例可以包括与ui元素76一起使用的应用、对应虚拟内容的大小、形状或其他视觉特性、以及用户偏好。

现在参考图7,当用户界面元素布局程序12确定摩托车244的中心250在桌面236的预定距离500内时,ui元素76被转变为显示在桌面上。因此,并且在本公开的一个潜在优点中,用户现在可以通过触摸桌面236上显示有ui元素76的位置来选择ui元素76,并且从而体验触觉反馈的熟悉性、直观性和其他优点。

可以使用任何适当的技术来确定用户正在触摸(选择)特定ui元素76。例如,可以使用深度图像数据来确定用户的指尖位置何时与ui元素76的位置相交,诸如经由碰撞检测引擎。在一些示例中,可以使用诸如rgb、黑白、ir等其他类型的图像数据来确定用户的指尖位置何时与ui元素76的位置相交。例如,当用户在场景中移动时,一个或多个rgb相机可以捕获图像数据并且累积场景信息。可以使用诸如并行跟踪和映射等slam方法与表面重建技术一起来确定用户的指尖位置何时接触ui元素76的位置。

在其他示例中,用户可以使用包括提供触摸检测输出的一个或多个传感器的手写笔、笔或其他手持式工具来触摸ui元素76。例如,笔可以包括检测笔何时接触表面的加速度计和/或尖端开关。可以将这样的触摸检测输出提供给hmd设备18以指示笔接触了表面。

在其他示例中,与虚拟对象相关联的其他位置可以用于确定对象是否在物理表面的预定距离内。例如,全息摩托车244上的另一预定位置可以用于确定摩托车是否在桌面236的预定距离内。再次参考图4,在边界框400与摩托车244一起显示的情况下,可以确定从边界框的一个或多个边到表面的距离。在一个示例中,可以确定从边界框400的每个边的中心到表面的距离。可以将这6个距离中的最小值与预定距离500进行比较以确定摩托车244是否在预定距离内。

在其他示例中,并且如上所述,用户界面元素布局程序12可以通过确定ui元素是否在桌面的预定距离500内来确定是否在桌面236上显示ui元素76。与摩托车244一样,与一个或多个ui元素76相关联的不同位置可以用于确定与表面的接近度。在其他示例中,可以基于确定摩托车244和ui元素76都在桌面的预定距离500内来触发用户界面元素布局程序12在桌面236上显示ui元素76。

再次参考图7,在该示例中,当用户界面元素布局程序12确定摩托车244在桌面236的预定距离500内时,ui元素76转变为显示在桌面上,同时保持摩托车的位置。以这种方式,可以保持所显示的摩托车的期望位置,同时将ui元素76方便地转变到桌面236以用于基于触摸的交互。

参考图8,在其他示例中,当用户界面元素布局程序12确定摩托车244和/或ui元素76在桌面236的预定距离500内时,ui元素76和摩托车244都被转变为显示在桌面236上。如图8所示,在该示例中,摩托车244被转变为显示为位于桌面236上,其中ui元素76在桌面上方便地显示在摩托车前面。

在某些示例中,当用户界面元素布局程序12确定虚拟对象和一个或多个用户界面元素中的一个或多个在表面的预定距离内时,布局程序可以以编程方式将一个或多个用户界面元素的显示转变到表面,而无需用户交互。在其他示例中,当程序确定虚拟对象和(多个)用户界面元素中的一个或多个在预定距离内时,当用户提供释放输入(诸如预定手势、语音命令或其他用户输入)时,程序可以在表面上显示一个或多个用户界面元素。

在一些示例中,用户界面元素布局程序12可以接收将一个或多个ui元素76的显示模式从漂浮在空中位置切换为显示在物理表面上的用户输入。例如,在一个或多个ui元素76不在表面的预定距离内的情况下,用户可以提供将ui元素调节为显示在表面上的用户输入(例如,语音命令)。以类似的方式,用户界面元素布局程序12可以接收将一个或多个ui元素76的显示模式从显示在物理表面上切换为漂浮在空中位置的用户输入。

在一些示例中,在物理表面上显示一个或多个ui元素还可以基于确定物理表面具有大于预定最小表面积的表面积。在一些示例中并且再次参考图2,hmd设备18可以确定一个或多个表面(诸如桌面236、墙壁214、216和218、天花板220、和书架240的顶部表面242)的表面积是否大于预定最小表面积。

在一些示例中,预定最小表面积可以是大约225mm2,诸如15mm×15mm正方形,以使得hmd设备18能够准确地确定用户用手指触摸了该区域。在其他示例中,可以使用较小的预定最小表面积,诸如在用户可以使用手写笔、笔或其他更精确的触摸仪器的情况下。在其他示例中,为了容纳较大的(多个)ui元素76的显示,为了提供hmd设备18的更强大的触摸检测,和/或基于其他考虑,可以使用较大的预定最小表面积。

在一些示例中,在物理表面上显示一个或多个用户界面元素还可以基于确定物理表面包括平坦表面。例如,可以从由hmd设备18接收的图像数据26中标识一个或多个平坦表面,诸如桌面236或墙壁216。可以使用任何合适的场景分析方法或用于标识平坦表面的其他技术。在一些示例中,对于给定表面,hmd设备18可以确定表面的每个深度像素与投影到该表面上的平面之间的深度误差/距离。如果该表面的深度像素的累积深度误差在预定阈值以下,则可以将该表面确定为平坦表面。

在一些示例中,可以将ransac方法应用于深度图像数据以定位平坦表面。在一些示例中,可以利用表面重建技术,诸如使用轮廓完成模型的技术。在一些示例中,可以利用深度图像法线来开发由其方位角、仰角和距原点的距离来参数化的平面方程。3d深度点上的霍夫变换可以用于检测场景中的主平面方程。在一些示例中,可以使用贪婪的启发式方法将场景点与这些平面相关联。如果未分配的3d点位于候选平面附近(诸如10cm以内)并且具有兼容的法线方向(诸如在候选平面法线的10°以内),则可以将未分配的3d点与候选平面相关联。如上所述,可以利用用于标识平坦表面的其他场景分析方法和技术。

在一些示例中,在物理表面上显示一个或多个ui元素还可以基于确定物理表面是否包括一个或多个表面特性。例如,可以不选择被标识为具有一个或多个负光学性质的物理表面,或者可以将这样的物理表面分类为对于显示ui元素76而言是次优选表面。负光学性质可以是损害hmd设备18准确地确定表面的位置的能力并且从而损害触摸检测的性质或特性。例如,在使用ir深度图像数据的情况下,表面的负光学性质可以是其吸收ir光的趋势。负光学性质的其他示例可以包括在表面中实现的纹理量和由表面产生的眩光度。

现在参考图9和10,在一些示例中,当用户界面元素布局程序12确定虚拟对象和一个或多个ui元素中的一个或多个在物理表面的预定距离内时,该程序可以进行以下中的一项或多项:(1)与一个或多个用户界面元素一起显示视觉指示,以及(2)在物理表面上显示视觉指示。在图9的示例中,用户界面元素布局程序12可以确定ui元素76在桌面236的预定距离600内。

在做出该确定时,用户界面元素布局程序12可以与用户界面元素76一起显示视觉指示,诸如元素周围的突出显示的边框604。在其他示例中,可以提供任何其他视觉指示,诸如向ui元素76添加颜色或改变ui元素76的颜色。以这种方式,向用户提供视觉反馈以向用户警告ui元素76可以被转变到桌面236。如上所述,在一些示例中,ui元素76可以以编程方式转变到桌面236,诸如在显示突出显示的边框604之后的短暂暂停之后。在其他示例中,并且在突出显示的边框604的显示之后,用户可以提供引起ui元素76显示在桌面236上的用户输入。

在图10的示例中,当用户界面元素布局程序12确定ui元素76在桌面236的预定距离600内时,视觉指示可以显示在桌面上。在该示例中,视觉指示采用轮廓区域620的形式,该轮廓区域620表示桌面236上将要显示ui元素76的位置。在其他示例中,可以提供任何其他视觉指示,诸如在桌面236上显示图标或其他字符。以这种方式,向用户提供视觉反馈以向用户警告ui元素76可以转变到桌面236。在其他示例中,用户界面元素布局程序12可以与ui元素76一起显示视觉指示以及在桌面236上显示视觉指示。

现在参考图6和11,在一些示例中,当用户界面元素布局程序12确定虚拟对象和一个或多个用户界面元素中的一个或多个在物理表面的预定距离内时,该程序可以在表面上显示一个或多个附加ui元素76。例如,界面元素布局程序12可以确定物理表面的表面积可以容纳比当前显示为漂浮在空中的ui元素76更多的ui元素76。

在图6的示例中,用户界面元素布局程序12将4个ui元素76显示为悬停在摩托车244前面。当ui元素76的显示转变到桌面236时,现在参考图11,用户界面元素布局程序12可以以颜色控件、效果控件和共享控件的形式显示3个附加ui元素76。因此,在该示例中,可以在桌面236上向用户提供附加的可触摸交互选项。在其他示例中,可以显示任何数目和类型的附加ui元素76。

在一些示例中,当在物理表面上显示一个或多个用户界面元素时,用户界面元素布局程序12可以修改一个或多个用户界面元素中的至少一个的显示以用于触摸输入。参考图12,在一个示例中,当用户界面元素76显示在桌面236上时,去除ui元素76被放大以便于用户更容易地触摸访问。在图12所示的另一个示例中,当用户界面元素76显示在桌面236上时,缩放ui元素76从图10所示的四箭头配置修改为用户可以直接利用触摸输入来操纵的滑块配置。在其他示例中,可以提供对一个或多个用户界面元素76的显示的其他改变,这些改变能够实现或增强触摸输入。

在一些示例中,用户界面元素布局程序12可以至少基于一个或多个用户特性来确定用于在物理表面上显示一个或多个用户界面元素的位置。这样的用户特性可以包括例如用户的惯用手(即,用户是惯用右手还是惯用左手)以及用户的手臂长度或范围。

参考图13,并且在一个示例中,在将用户界面元素76的显示转变到物理表面时,用户界面元素布局程序12可以访问用户200的手臂长度,该手臂长度存储在例如用户的用户资料数据中。基于用户的手臂长度,hmd设备18可以将ui元素76显示在桌面236上在用户200舒适到达的位置98处。

在其他示例中,用户界面元素布局程序12可以至少基于用户200相对于桌面的位置来确定用于在桌面236上显示用户界面元素76的位置。例如,在图13中并且基于站在桌子左侧的用户200,ui元素76可以显示在位于桌面236左侧并且在用户前面的位置98。

在一些示例中,物理表面可以包括至少一个非平坦部分,并且在物理表面上显示一个或多个ui元素可以包括显示具有与该表面的至少一个非平坦部分相匹配的非平坦部分的一个或多个ui元素。例如并且参考图14,在一个示例中,用户界面元素布局程序12可以确定ui元素76在材料270的弯曲部分的预定距离内。在该示例中,用户界面元素布局程序12可以显示具有与材料270的弯曲部分的轮廓相匹配的弯曲部分的ui元素76。以这种方式,ui元素显示为看起来与材料270的弯曲表面共同延伸。

在一些示例中,用户界面元素布局程序12可以确定用于在物理表面上显示一个或多个ui元素的位置,该位置避免物理表面上的至少一个障碍。例如并且参考图15,在该示例中,植物274可以位于桌面236上的一位置,在该位置处将要显示从漂浮的空中位置转变之后的ui元素76。为了避免在植物上显示ui元素76同时仍然在期望位置附近显示元素,用户界面元素布局程序12可以将ui元素的布局修改为修改后的布局,其中移动和旋转控件在桌面236上显示在植物274左侧,并且缩放和去除控件显示在植物右侧。

在一些示例中,用户界面元素布局程序12可以确定物理表面包括触摸检测表面。基于该确定,可以在触摸检测表面上显示一个或多个ui元素76。例如并且参考图16,用户界面元素布局程序12可以确定触摸屏平板计算机280搁在桌面236上。用户界面元素布局程序12可以使用任何合适的方法来标识该设备。例如,可以通过将设备的图像数据与触摸屏平板计算机280的所存储的图像进行匹配或者通过在hmd设备18处从平板计算机接收到的数据来标识设备。通过标识触摸屏平板计算机280,用户界面元素布局程序图12可以确定平板计算机包括触摸检测表面284。

至少基于确定触摸屏平板计算机280包括触摸检测表面284,用户界面元素布局程序12可以在触摸检测表面上显示移动和旋转ui元素76。以这种方式,平板计算机280可以检测用户对触摸检测表面284上的ui元素76的触摸。在触摸屏平板计算机280与hmd设备18通信地耦合的情况下,平板计算机可以向hmd设备提供这样的触摸数据。hmd设备18可以使用该触摸数据来确定用户何时触摸ui元素76之一。

再次参考图2,在一些示例中,用户界面元素布局程序12可以从由hmd设备18检测的两个或更多个物理表面中选择物理表面。例如,可以利用用于随着时间训练概率模型以从多个表面中进行选择的技术,诸如训练神经网络。这样的模型的输出可以对应于给定表面是用于显示(多个)ui元素的良好目标的可能性。

在一些示例中,多个表面中的每个可以与加权值相关联,并且用户界面元素布局程序12可以基于加权值来选择表面。例如,可以选择在多个加权值中具有最低加权值的物理表面。加权值可以对应于表面的一个或多个特性或属性。

例如,加权值可以对应于表面的类型。在一些示例中,与墙壁相比,地板可能是用于显示ui元素的不太理想的表面。因此,被标识为地板的表面可以具有比被标识为墙壁的表面更高的权重值(即,更高的负权重)。与远离拐角的表面相比,与拐角相邻的表面可能不那么理想,并且可能具有更高的加权值。在一些示例中,对于多个候选表面中的每个,用户界面元素布局程序12可以使用启发式方法来选择具有最低加权值的表面。然后,可以将一个或多个ui元素76显示在所选择的表面上。

在一些示例中,所标识的物理表面可以具有一个或多个列入黑名单的属性,这些属性使其对于显示ui元素而言是不适合的或不希望的。在一些示例中,可以标识表面的语义属性以确定该表面是否包括列入黑名单的属性。例如,可能不希望在地板上显示ui元素,因为触摸地板的用户可能被认为是不合适的。类似地,对于ui元素的显示,具有在户外的位置的表面可能被认为是不希望的。具有某些成分(诸如泥浆或混凝土)的表面可能被认为不适合显示ui元素。被认为不适合触摸的其他表面量(诸如热表面或潜在的尖锐表面)也可以被包括作为列入黑名单的属性。

使用图像数据和/或其他数据,hmd设备18可以确定特定物理表面是否包括一个或多个列入黑名单的属性。在确定表面不包括列入黑名单的属性的情况下,可以如上所述在表面上显示一个或多个ui元素。

图17a和17b示出了根据本公开的示例的用于在物理表面上显示一个或多个用户界面元素的方法700的流程图。参考以上描述并且在图1-16中示出的软件和硬件组件,提供方法700的以下描述。应当意识到,方法700也可以在其他上下文中使用其他合适的硬件和软件组件来执行。

参考图17a,在704处,方法700可以包括在现实世界物理环境内显示虚拟对象。在708处,方法700可以包括与虚拟对象一起显示一个或多个用户界面元素。在712处,方法700可以包括接收移动虚拟对象和一个或多个用户界面元素中的一个或多个的用户输入。在716处,方法700可以包括确定虚拟对象和一个或多个用户界面元素中的一个或多个在物理表面的预定距离内。

在720处,方法700可以包括:至少基于确定虚拟对象和一个或多个用户界面元素中的一个或多个在物理表面的预定距离内,在物理表面上显示一个或多个用户界面元素。在724处,方法700可以包括,其中在表面上显示一个或多个用户界面元素还至少基于确定物理表面具有大于预定最小表面积的表面积。在728处,方法700可以包括,其中在物理表面上显示一个或多个用户界面元素还至少基于确定物理表面包括平坦表面。

在732处,方法700可以包括,当在物理表面上显示一个或多个用户界面元素时,在物理表面上显示一个或多个附加用户界面元素。在736处,方法700可以包括,当在物理表面上显示一个或多个用户界面元素时,修改一个或多个用户界面元素中的至少一个的显示以用于触摸输入。现在参考图17b,在740处,方法700可以包括,至少基于确定虚拟对象和一个或多个用户界面元素中的一个或多个在物理表面的预定距离内,进行以下中的一项或多项:(1)与一个或多个用户界面元素一起显示视觉指示;以及(2)在物理表面上显示视觉指示。

在744处,方法700可以包括至少基于一个或多个用户特性来确定用于在物理表面上显示一个或多个用户界面元素的位置。在748处,方法700可以包括确定用于在物理表面上显示一个或多个用户界面元素的位置,该位置避免物理表面上的至少一个障碍。在752处,方法700可以包括从每个与加权值相关联的多个物理表面中选择物理表面,其中物理表面的选择基于多个物理表面的加权值。

在756处,方法700可以包括,其中物理表面包括至少一个非平坦部分,并且在物理表面上显示一个或多个用户界面元素包括显示具有与表面的至少一个非平坦部分相匹配的非平坦部分的一个或多个用户界面元素。在760处,方法700可以包括:至少基于确定物理表面不包括列入黑名单的属性,在表面上显示一个或多个用户界面元素。在764处,方法700可以包括:至少基于确定物理表面包括触摸检测表面,在触摸检测表面上显示一个或多个用户界面元素。

应当意识到,方法700是作为示例提供的,而非意在是限制性的。因此,应当理解,相对于图17a和17b所示的方法,方法700可以包括附加的和/或替代的步骤。此外,应当理解,可以以任何合适的顺序执行方法700。更进一步,应当理解,在不脱离本公开的范围的情况下,方法700可以省略一个或多个步骤。

在一些实施例中,本文中描述的方法和过程可以与一个或多个计算设备的计算系统联系在一起。特别地,这样的方法和过程可以实现为计算机应用程序或服务、应用程序编程接口(api)、库和/或其他计算机程序产品。

图18示意性地示出了可以实施上述方法和过程中的一个或多个的计算系统800的非限制性实施例。图1所示的计算设备10和计算设备80可以采用计算系统800的一个或多个方面的形式或者包括该方面。计算系统800以简化形式示出。应当理解,实际上,在不脱离本公开的范围的情况下,可以使用任何计算机架构。在不同的示例中,计算系统800可以采用头戴式显示器设备、平板计算机、家庭娱乐计算机、台式计算机、网络计算设备、平板计算机、笔记本计算机、智能电话、游戏设备、其他移动计算设备等的形式,或者与之通信耦合。

计算系统800包括逻辑处理器804、易失性存储器808和非易失性存储设备812。计算系统800可以可选地包括显示子系统816、输入子系统820、通信子系统824和/或图18中未示出的其他组件。

逻辑处理器804包括被配置为执行指令的一个或多个物理设备。例如,逻辑处理器可以被配置为执行作为一个或多个应用、程序、例程、库、对象、组件、数据结构或其他逻辑构造的一部分的指令。可以实现这样的指令以执行任务,实现数据类型,变换一个或多个组件的状态,达到技术效果,或者以其他方式达到期望的结果。

逻辑处理器可以包括被配置为执行软件指令的一个或多个物理处理器(硬件)。另外地或替代地,逻辑处理器可以包括被配置为执行硬件实现的逻辑或固件指令的一个或多个硬件逻辑电路或固件设备。逻辑处理器804的处理器可以是单核或多核的,并且在其上执行的指令可以被配置用于顺序、并行和/或分布式处理。逻辑处理器的个体组件可选地可以分布在两个或更多个单独的设备之间,这些设备可以位于远程和/或被配置用于协调处理。逻辑处理器的各方面可以由以云计算配置而配置的可远程访问的联网计算设备来虚拟化和执行。在这种情况下,这些虚拟化方面可以在各种不同机器的不同物理逻辑处理器上运行。

易失性存储器808可以包括包括随机存取存储器的物理设备。易失性存储器808通常由逻辑处理器804用来在软件指令的处理期间临时存储信息。应当意识到,当切断易失性存储器808的电源时,易失性存储器808通常不继续存储指令。

非易失性存储设备812包括被配置为保持由逻辑处理器可执行以实现本文中描述的方法和过程的指令的一个或多个物理设备。当实现这样的方法和过程时,非易失性存储设备812的状态可以被变换,例如以保持不同的数据。

非易失性存储设备812可以包括可移动和/或内置的物理设备。非易失性存储设备812可以包括光学存储器(例如,cd、dvd、hd-dvd、蓝光光盘等)、半导体存储器(例如,rom、eprom、eeprom、flash存储器等)、和/或磁存储器(例如,硬盘驱动器、软盘驱动器、磁带驱动器、mram等)或其他大容量存储设备技术。非易失性存储设备812可以包括非易失性、动态、静态、读/写、只读、顺序访问、位置可寻址、文件可寻址和/或内容可寻址的设备。应当意识到,非易失性存储设备812被配置为即使当非易失性存储设备812被断电时也保持指令。

逻辑处理器804、易失性存储器808和非易失性存储设备812的各方面可以被一起集成到一个或多个硬件逻辑组件中。例如,这样的硬件逻辑组件可以包括现场可编程门阵列(fpga)、程序和应用特定的集成电路(pasic/asic)、程序和应用特定的标准产品(pssp/assp)、片上系统(soc)和复杂可编程逻辑器件(cpld)。

术语“程序”可以用于描述被实现以执行特定功能的计算系统800的一方面。在一些情况下,可以使用易失性存储器808的部分,通过逻辑处理器804执行由非易失性存储设备812保持的指令来实例化程序。应当理解,可以从相同的应用、服务、代码块、对象、库、例程、api、函数等实例化不同的程序。同样,可以由不同的应用、服务、代码块、对象、例程、api、函数等实例化同一程序。术语“程序”涵盖个体或一组可执行文件、数据文件、库、驱动程序、脚本、数据库记录等。

当被包括时,显示子系统816可以用来呈现由非易失性存储设备812保持的数据的视觉表示。本文中描述的方法和过程改变由非易失性存储设备保持的数据,并且因此转变非易失性存储设备的状态,显示子系统816的状态同样可以被转变以可视地表示基础数据的变化。显示子系统816可以包括实际上利用任何类型的技术的一个或多个显示设备。这样的显示设备可以在共享外壳中与逻辑处理器804、易失性存储器808和/或非易失性存储设备812组合,或者这样的显示设备可以是外围显示设备。关于图1的示例hmd设备18,被配置为通过显示诸如全息图等虚拟对象来在视觉上增强现实世界三维物理环境的外观的透视显示器36是显示子系统816的示例。

当被包括时,输入子系统820可以包括一个或多个用户输入设备或与之接口。在一些实施例中,输入子系统可以包括所选择的自然用户输入(nui)组件或与之接口连接。这样的组件可以是集成的或外围的,并且输入动作的转导和/或处理可以在板上或板外进行。示例nui组件可以包括用于声音和/或语音识别的麦克风;用于机器视觉和/或手势识别的红外、彩色、立体和/或深度相机;用于运动检测、注视检测和/或意图识别的头部跟踪器、眼睛跟踪器、加速度计、惯性测量单元和/或陀螺仪;用于评估大脑活动的电场传感组件;以及上面关于hmd设备描述的任何传感器和/或任何其他合适的传感器。

当被包括时,通信子系统824可以被配置为将计算系统800与一个或多个其他计算设备通信地耦合。通信子系统824可以包括与一种或多种不同的通信协议兼容的有线和/或无线通信设备。作为非限制性示例,通信子系统可以被配置用于经由无线电话网络或者有线或无线局域网或广域网进行通信。在一些实施例中,通信子系统可以允许计算系统800经由诸如因特网等网络向其他设备发送消息和/或从其他设备接收消息。

以下段落为主题申请的权利要求提供附加支持。一个方面提供了一种在包括显示器的计算设备处的方法,该方法包括:在现实世界物理环境内显示虚拟对象;与虚拟对象一起显示一个或多个用户界面元素;接收移动虚拟对象和一个或多个用户界面元素中的一个或多个的用户输入;确定虚拟对象和一个或多个用户界面元素中的一个或多个在物理表面的预定距离内;以及至少基于确定虚拟对象和一个或多个用户界面元素中的一个或多个在物理表面的预定距离内,在物理表面上显示一个或多个用户界面元素。该方法可以另外地或可选地包括,其中在表面上显示一个或多个用户界面元素还至少基于确定物理表面具有大于预定最小表面积的表面积。该方法可以另外地或可选地包括,其中在物理表面上显示一个或多个用户界面元素还至少基于确定物理表面包括平坦表面。该方法可以另外地或可选地包括,当在物理表面上显示一个或多个用户界面元素时,在物理表面上显示一个或多个附加用户界面元素。该方法可以另外地或可选地包括,当在物理表面上显示一个或多个用户界面元素时,修改一个或多个用户界面元素中的至少一个用户界面元素的显示以用于触摸输入。该方法可以另外地或可选地包括:至少基于确定虚拟对象和一个或多个用户界面元素中的一个或多个在物理表面的预定距离内,执行以下中的一项或多项:(1)与一个或多个用户界面元素一起显示视觉指示;以及(2)在物理表面上显示视觉指示。该方法可以另外地或可选地包括:至少基于一个或多个用户特性,确定用于在物理表面上显示一个或多个用户界面元素的位置。该方法可以另外地或可选地包括:确定用于在物理表面上显示一个或多个用户界面元素的位置,该位置避免物理表面上的至少一个障碍。该方法可以另外地或可选地包括从每个与加权值相关联的多个物理表面中选择物理表面,其中物理表面的选择基于多个物理表面的加权值。该方法可以另外地或可选地包括,其中物理表面包括至少一个非平坦部分,并且在物理表面上显示一个或多个用户界面元素包括显示具有与表面的至少一个非平坦部分相匹配的非平坦部分的一个或多个用户界面元素。该方法可以另外地或可选地包括,至少基于确定物理表面不包括列入黑名单的属性,在表面上显示一个或多个用户界面元素。该方法可以另外地或可选地包括:至少基于确定物理表面包括触摸检测表面,在触摸检测表面上显示一个或多个用户界面元素。

另一方面提供了一种用于经由显示设备显示虚拟内容的计算设备,该计算设备包括:处理器;以及保持由处理器可执行以进行以下操作的指令的存储器:将虚拟对象显示为漂浮在环境内;将一个或多个用户界面元素显示为与虚拟对象一起漂浮;接收移动虚拟对象和一个或多个用户界面元素中的一个或多个的用户输入;确定虚拟对象和一个或多个用户界面元素中的一个或多个在物理表面的预定距离内;以及至少基于确定虚拟对象和一个或多个用户界面元素中的一个或多个在物理表面的预定距离内,在表面上显示一个或多个用户界面元素。该计算设备可以另外地或替代地包括,其中在表面上显示一个或多个用户界面元素还至少基于确定物理表面具有大于预定最小表面积的表面积。该计算设备可以另外地或替代地包括,其中还至少基于确定该物理表面包括平坦表面,在该物理表面上显示一个或多个用户界面元素。该计算设备可以另外地或替代地包括,其中这些指令可执行以当在物理表面上显示一个或多个用户界面元素时,在物理表面上显示一个或多个附加用户界面元素。该计算设备可以另外地或替代地包括,其中这些指令可执行以当在物理表面上显示一个或多个用户界面元素时,修改一个或多个用户界面元素中的至少一个用户界面元素的显示以用于触摸输入。该计算设备可以另外地或替代地包括,其中这些指令可执行以基于接收到切换显示模式的用户输入来将一个或多个用户界面元素的显示从空中位置切换到物理表面,或者将一个或多个用户界面元素的显示从物理表面切换到空中位置。该计算设备可以另外地或替代地包括:其中指令由处理器可执行以:确定物理表面包括触摸检测表面;以及至少基于确定物理表面包括触摸检测表面,在触摸检测表面上显示一个或多个用户界面元素。

另一方面提供了一种头戴式显示器设备,包括:透视显示器;处理器;以及保持由处理器可执行以进行以下操作的指令:接收现实世界物理环境的图像数据;在现实世界物理环境内显示虚拟对象;与虚拟对象一起显示多个用户界面元素;接收移动虚拟对象和多个用户界面元素的用户输入;确定虚拟对象和多个用户界面元素中的一个或多个在物理表面的预定距离内;确定物理表面具有大于预定最小表面积的表面积;以及至少基于确定虚拟对象和多个用户界面元素中的一个或多个在物理表面的预定距离内并且确定物理表面具有大于预定最小表面积的表面积,在表面上显示多个用户界面元素。

应当理解,本文中描述的配置和/或方法本质上是示例性的,并且这些特定的实施例或示例不应当被认为是限制性的,因为很多变型是可能的。本文中描述的特定例程或方法可以代表任何数目的处理策略中的一个或多个。这样,所示出和/或描述的各种动作可以按照所示出和/或描述的顺序执行,以其他顺序执行,并行地执行,或者省略。同样,可以改变上述处理的顺序。

本公开的主题包括本文中公开的各种过程、系统和配置以及其他特征、功能、动作和/或特性的所有新颖的和非明显的组合和子组合、以及其任何和所有等同形式。

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