CN108027657A - 增强和/或虚拟现实环境中的场境敏感用户界面激活 - Google Patents

增强和/或虚拟现实环境中的场境敏感用户界面激活 Download PDF

Info

Publication number
CN108027657A
CN108027657A CN201680053552.6A CN201680053552A CN108027657A CN 108027657 A CN108027657 A CN 108027657A CN 201680053552 A CN201680053552 A CN 201680053552A CN 108027657 A CN108027657 A CN 108027657A
Authority
CN
China
Prior art keywords
dummy contact
virtual
virtual objects
detected
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201680053552.6A
Other languages
English (en)
Inventor
乔恩·威利
曼纽尔·克里斯蒂安·克莱蒙特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN108027657A publication Critical patent/CN108027657A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

在用于确定用户与虚拟现实环境中的虚拟对象之间的检测到的虚拟接触的目的的***中,可以在由所述用户操纵的所指定的选择设备与所述虚拟对象之间检测到接触。然后可以确定所指定的选择设备与所述虚拟对象之间的所检测到的接触是否是有意的。可以基于与所述虚拟对象的所述虚拟接触的接近方向、与所述虚拟对象的所述虚拟接触的接近速度、与所述虚拟对象的所述虚拟接触的接近加速度中的至少一个来确定所检测到的接触是否是有意的。

Description

增强和/或虚拟现实环境中的场境敏感用户界面激活
相关申请的交叉引用
本申请是于2016年12月7日提交的美国非临时申请第15/371,886号的继续申请并且要求该申请的优先权,该申请要求于2015年12月11日提交的美国临时申请第62/266,449号的优先权,其公开内容通过引用并入本文。
本申请要求于2015年12月11日提交的美国临时申请第62/266,449号的优先权,该申请的公开内容通过引用并入本文。
技术领域
本文大体上涉及沉浸式虚拟现实***中的输入处理。
背景技术
增强现实(AR)***和/或虚拟现实(VR)***可以生成三维(3D)沉浸式虚拟环境。用户可以通过与各种电子设备的交互来感受这种3D虚拟环境,诸如,例如,包括显示器、眼镜或护目镜的头盔或者其它头戴式设备(用户在查看显示设备时通过该显示器、眼镜或护目镜观看)、装有传感器的手套、包括传感器的外部手持式设备、和其它这种电子设备。一旦沉浸在虚拟环境中,用户与虚拟环境的交互可以采取各种形式,诸如,例如,眼睛注视、头部注视、物理移动和/或对电子设备进行操纵以与虚拟环境交互、使虚拟环境个性化并且控制虚拟环境。
发明内容
在一个方面中,该方法可以包括:生成虚拟环境,包括在该虚拟环境中显示多个虚拟对象;检测选择设备与多个虚拟对象中的一个虚拟对象之间的虚拟接触;基于检测到的虚拟接触的至少一个特性来确定检测到的虚拟接触是否与要在虚拟环境中执行的命令相对应;以及当确定检测到的虚拟接触与要在虚拟环境中执行的命令相对应时,选择虚拟对象进行致动以及基于检测到的虚拟接触在虚拟环境中执行与选择的虚拟对象和命令相对应的动作。
在另一个方面中,该***可以包括计算设备,该计算设备被配置为生成虚拟环境。计算设备可以包括:存储器,该存储器存储可执行指令;以及处理器,所述处理器被配置为执行该指令。执行该指令可以使计算设备:生成虚拟环境,所述虚拟环境包括显示多个虚拟对象;检测选择设备与多个虚拟对象中的一个虚拟对象之间的虚拟接触;基于检测到的虚拟接触的至少一个特性来确定检测到的虚拟接触是否与要在虚拟环境中执行的命令相对应;以及当确定检测到的虚拟接触与要在虚拟环境中执行的命令相对应时,选择虚拟对象进行致动以及在虚拟环境中执行与命令和选择的虚拟对象相对应的动作。
在下面的附图和说明书中陈述了一种或多种实施方式的细节。其它的特征将通过说明书、附图和权利要求而变得显而易见。
附图说明
图1是根据本文描述的实施方式的包括头戴式显示设备和手持式电子设备的增强和/或虚拟现实***的示例实施方式。
图2A和2B是根据本文描述的实施方式的示例头戴式显示设备的透视图。
图3是根据本文描述的实施方式的头戴式电子设备和手持式电子设备的框图。
图4A至4F和图5A至5F是图示了与根据本文描述的实施方式的增强和/或虚拟现实环境中的一个或多个虚拟对象的用户交互的第三人称视图。
图6A至6D图示了用户与根据本文描述的实施方式的增强和/或虚拟现实环境中的虚拟对象之间进行接触的各种方法。
图7A至7J是图示了与根据本文描述的实施方式的增强和/或虚拟现实环境中的一个或多个虚拟对象的用户交互的第三人称视图。
图8是选择根据本文描述的实施方式的增强和/或虚拟现实环境中的虚拟对象的方法的流程图。
图9示出了可以用于实施本文描述的技术的计算机设备和移动计算机设备的示例。
具体实施方式
例如,穿戴头戴式显示器(HMD)沉浸在增强现实和/或虚拟现实环境中的用户可以探索虚拟环境并且通过各种不同类型的输入来与虚拟环境中的虚拟对象、虚拟元素、虚拟特征等交互。例如,这些输入可以包括物理交互,包括:例如,手部/手臂姿势(包括虚拟对象与真实用户的各个身体部分之间的虚拟接触)、头部移动和/或头部和/或眼睛的方向注视等、和/或对与HMD分离的电子设备的操纵(诸如,例如,电子设备与虚拟对象之间的虚拟接触、通过电子设备和/或HMD发出的虚拟射线或虚拟光束、电子设备和/或HMD的移动、实施在电子设备和/或HMD的触敏表面的触摸等)。因此,虚拟接触表示虚拟对象与真实用户的虚拟配对物、真实用户的身体部分、或者真实世界中的选择设备之间在虚拟空间中的接触,其中,所述虚拟配对物反映用户、身体部分的移动、方向注视等、和/或对真实世界中的电子设备的操纵。用户的虚拟配对物可以作为沉浸式用户显示在虚拟空间中。用户可以实施这些不同种类的交互中的一种或多种交互以选择虚拟对象和/或虚拟环境中的特定动作。根据本文描述的实施方式的***和方法可以促进在用户选择特定虚拟对象和/或执行虚拟环境中的特定动作时准确解释检测到的虚拟接触并且确定检测到的虚拟接触是否与要在虚拟环境中执行的命令相对应,从而增强用户的沉浸式虚拟体验。
在图1所示的示例实施方式中,穿戴HMD 100的用户手中正拿着便携手持式电子设备102。例如,手持式电子设备102可以是控制器、智能手机、或者可以与HMD 100配对并且与其通信以在由HMD 100生成并在HMD 100的显示器上向用户显示的虚拟环境中进行交互的另一个便携手持式电子设备。例如,手持式电子设备102可以经由有线连接、或者无线连接(诸如,例如,WiFi或者蓝牙连接)与HMD 100可操作地耦合或配对。手持式电子设备102与HMD 100的这种配对或者可操作的耦合可以提供手持式电子设备102与HMD 100之间的通信和手持式电子设备102与HMD 100之间的数据交换,从而手持式电子设备102可以充当与HMD100通信的控制器以在由HMD 100生成的沉浸式虚拟环境中进行交互。即,对手持式电子设备102的操纵(诸如,例如,通过手持式电子设备102发出的并且被引导至虚拟对象以进行选择的光束或射线、和/或在手持式电子设备102的触摸表面上接收到的输入、或者手持式电子设备102的移动)可以被转换为由HMD 100生成的沉浸式虚拟环境中的相应选择、或者移动、或者其它类型的交互。
图1所述的示例实施方式包括与HMD 100通信的一个手持式电子设备102,该手持式电子设备102用于与HMD 100交换数据并且与由HMD 100生成的虚拟环境中的虚拟对象、虚拟元素、虚拟特征等交互。然而,在一些实施方式中,多于一个的手持式电子设备102可以与HMD 100可操作地耦合并且与其通信,并且可以一起操作或者单独操作以在虚拟环境中进行交互。
图2A和2B是生成增强和/或虚拟现实环境的示例HMD(诸如,例如,由图1中的用户穿戴的HMD 100)的透视图。HMD 100可以包括耦合至框架120的外壳110,该框架120具有音频输出设备130,包括,例如,安装在耦合至框架120的耳机中的扬声器。在图2B中,外壳110的前部110a远离外壳110的基部110b旋转,使得容置在外壳110中的一些组件可见。显示器140可以安装在外壳110的前部110a的内侧。当前部110a相对于外壳110的基部110b处于关闭位置时,透镜150可以安装在外壳110中,处于用户眼睛与显示器140之间。在一些实施方式中,HMD 100可以包括感测***160(包括各种传感器)和控制***170(包括处理器109和各种控制***设备)以促进HMD 100的操作。
在一些实施方式中,HMD 100可以包括摄像头180以捕获静止图像和移动图像。由摄像头180捕获到的图像可以用于帮助跟踪用户和/或手持式电子设备102在真实世界中的物理位置、或者相对于虚拟环境的物理环境,和/或可以在显示器140上以穿透模式将其显示给用户,向用户提供相对于真实世界中的各个方面、物理环境的态势感知和/或使用户能够在不移除HMD 100的情况下暂时离开虚拟环境并且返回到物理环境或者改变HMD 100的配置以将外壳110移出用户的视线。
在一些实施方式中,HMD 100可以包括注视跟踪设备165以检测并跟踪用户的眼睛注视。注视跟踪设备165可以包括,例如,图像传感器165A、或者多个图像传感器165A以捕获用户眼睛(例如,用户眼睛的特定部分,诸如,例如,瞳孔)的图像以检测并跟踪用户注视的方向和移动。在一些实施方式中,HMD 100可以配置为使得检测到的注视被处理为用户输入以将其转换为虚拟环境中的相应交互。
在图3中示出了用于增强和/或虚拟现实环境中的场境感知用户界面激活的***的框图。该***可以包括与第二电子设备302通信的第一电子设备300。第一电子设备300可以是,例如,上文相对于图1、2A和2B描述的HMD,生成虚拟环境并且将其显示给用户,并且第二电子设备302可以是,例如,上文相对于图1描述的手持式电子设备,与第一电子设备300通信以促进用户与由第一电子设备300生成并显示的虚拟环境的交互。
第一电子设备300可以包括感测***360和控制***370,感测***360和控制***370可以分别类似于图2A和2B所示的感测***160和控制***170。感测***360可以包括许多不同种类的传感器(包括:例如,光传感器、音频传感器、图像传感器、距离/接近度传感器、和/或其它传感器)和/或传感器的不同组合,包括,例如,放置为检测并跟踪用户的眼睛注视的图像传感器,诸如,图2B所示的注视跟踪设备165。控制***370可以包括,例如,电力/暂停控制设备、音频和视频控制设备、光学控制设备、转换控制设备、和/或其它这种设备和/或设备的不同组合。根据特定实施方式,感测***360和/或控制***370可以包括更多或更少的设备。例如,在除了图2A和2B所示的HMD 100之外的HMD内,包括在感测***360和/或控制***370中的元件可以具有不同的物理布置(例如,不同的物理位置)。第一电子设备300还可以包括与感测***360和控制***370通信的处理器390、存储器380、和实现第一电子设备300与另一个外部设备(诸如,例如,第二电子设备302)之间的通信的通信模块350。
第二电子设备302可以包括实现第二电子设备302与另一个外部设备(诸如,例如,第一电子设备300)之间的通信的通信模块306。除了实现第一电子设备300与第二电子设备302之间的数据交换之外,通信模块306还可以配置为发出上文描述的虚拟射线或虚拟光束。第二电子设备302可以包括感测***304,该感测***304包括,例如,(诸如,包括在,例如,摄像头和麦克风中的)图像传感器和音频传感器、惯性测量单元、(诸如可以包括在手持式电子设备、或控制器、或智能手机的触敏表面中的)触摸传感器、和其它这种传感器和/或传感器的不同组合。处理器309可以与第二电子设备302的感测***304和控制器305通信,该控制器305能够访问存储器308并且控制第二电子设备302的总体操作。
例如,可以将各种不同的虚拟对象、虚拟操纵设备和/或虚拟用户界面控制(诸如,例如,按钮、滑块、滚动列表等)三维地呈现给用户以在虚拟环境中进行选择、操纵、指定等。当以这种方式将多个虚拟对象显示给用户并且通过上文描述的各种不同输入方法来由用户选择这多个虚拟对象时,在这种情况下,基于在沉浸式用户与虚拟对象之间检测到的虚拟接触来确定是否应该执行用户命令(例如,选择虚拟对象和/或在虚拟环境中执行一些其它动作)可能是困难的。即,确定在用户与虚拟对象之间检测到的虚拟接触是否表示用户命令(例如,选择虚拟对象)可能是困难的,尤其是在虚拟环境中将多于一个的虚拟对象显示给用户时。
图4A至4F和5A至5F图示了与在HMD 100内生成并显示的虚拟环境中的虚拟对象(如用户看到的)的虚拟显示器的用户交互的第三人称视图。尽管该用户的第三方观察者无法看到虚拟对象,但是该视图图示了用户与虚拟对象之间的交互。在该示例实施方式中,HMD 100在虚拟环境中向用户显示了多个虚拟对象A、B、C、D和E,并且用户可以使用,例如,用户手部和/或手持式电子设备102的触及和抓取动作、和/或由手持式电子设备102生成的虚拟光束指向要被选择的虚拟对象(仅为了便于讨论和说明)来进行选择和/或操纵。然而,如上文所提到的,可以通过,例如,用户手部和/或手臂姿势(包括触及、抓取、滑动类型的移动)、手持式电子设备102和/或HMD 100的用户操纵来接收其它类型的输入以促进用户与虚拟环境中的虚拟对象的交互。HMD 100可以将多个虚拟对象A至F显示给用户以供用户进行选择、操纵、交互等,使得它们看起来沿着不同平面设置或交错以增强虚拟环境的三维效果。
根据特定实施方式,可以按照不同方式来虚拟地显示虚拟对象A、B、C、D和E的布置。例如,在一些实施方式中,多个虚拟对象A至E可以布置在一个虚拟平面中。在一些实施方式中,多个虚拟对象A至E可以布置在不同平面中。在一些实施方式中,可以基于各种因素(诸如,适用性、用户的位置、和其它这种因素)来布置虚拟对象或者将其分组。在图4A至4E和5A至5F所示的示例实施方式中,虚拟对象A、C和E被布置在一个虚拟平面中,并且虚拟对象B、D和F被布置在另一个虚拟平面中,仅为了便于讨论和说明。
如图4A至4B和5A至5B所示,出于选择虚拟对象D的目的,用户可以引导指定的选择设备(例如,真实用户的手部和/或物理手持式电子设备102、***检测并跟踪其位置的用户身体的另一个部分、由手持式电子设备102和/或HMD 100生成的虚拟光束等,如上文描述的)朝向多个虚拟对象A至F中的虚拟对象D。因为虚拟对象D不会对朝向虚拟对象D的用户移动提供物理阻力或边界,所以沉浸式用户可以打破(即,贯穿)虚拟空间中的虚拟对象D的虚拟平面或者穿过虚拟对象D,如图4C和图5C所示,并且朝向虚拟对象E。具体地,用户可以穿过前侧D1并且穿过虚拟对象D的后侧D2,并且接近按照虚拟对象A至F的布置放置在对象D后面的虚拟对象E的前侧E1。
在一些情况下,用户可能意识到他已经径直穿过虚拟对象D并且正在接近虚拟对象E的前表面E1,并且在触及虚拟对象E的前侧E1之前可能会有意识地停止指定选择设备的前进运动。在一些情况下,用户可能没有意识到该选择运动相对于虚拟对象D和E的物理范围,直到物体选择器已经穿过虚拟对象E的前侧E1和后侧E2,径直穿过虚拟对象E。因为用户的目的是选择虚拟对象D,而不是对象E,所以用户可以反转方向,如图4D和5D所示,并且返回穿过虚拟对象D,穿过虚拟对象D的后侧D2和前侧D1,如图4E至4F和图5E至5F所示。
在上文相对于图4A至4F和5A至5F讨论的示例中,显示给用户的虚拟对象基本上是平坦的对象,仅为了便于讨论和说明。然而,上文描述的原理可以适用于具有其它三维、平面或者非平面的形状和轮廓的其它虚拟对象,该虚拟对象的前侧可以是,例如,虚拟对象最靠近用户的一部分,并且该虚拟对象的后侧可以是,例如,虚拟对象离用户最远的一部分。
缺少与虚拟环境中的多个虚拟对象A至F的三维虚拟显示相关联的物理阻力和/或物理边界和/或物理反馈可能会使响应于检测到的虚拟接触来确定是否要执行用户命令(以及基于检测到的虚拟接触来确定用户的目的)变得困难,这种困难在二维交互式空间中通常不会遇到。例如,当使用鼠标来从二维显示器选择对象时,显示器的物理界限限制了鼠标光标的移动。同样,当使用手指来选择显示在触摸屏上的对象时,限定触摸屏大小的物理边缘限制了用户手指在触摸屏上的移动。相反,在图4A至4F和5A至5F所示的示例中,因为没有按照这种方式来物理地限制物理空间中的用户移动和虚拟环境中的相应移动,并且用户和/或选择设备在接触到其中一个虚拟对象A至F之后还可以继续移动,所以***可能难以基于检测到的虚拟接触来确定是否要执行用户命令。例如,在该示例中,***可能难以确定用户是否想要选择虚拟对象D、或者虚拟对象E、或者依次选择虚拟对象D和虚拟对象E,并且因此可能难以确定是否要选择或致动特定虚拟对象和/或是否要在虚拟环境中实施特定动作。
在一些情况下,如上文讨论的穿过虚拟现实环境中的虚拟对象的移动可以通过,例如,一旦检测到与虚拟对象的虚拟接触或虚拟交互(诸如,上文描述的虚拟接触)就移动虚拟对象的虚拟显示器,或者通过一旦检测到与虚拟对象的虚拟交互/接触就删除其它虚拟对象的虚拟显示器等来解决。然而,虚拟环境中这些相对突然的变化可能会使用户与虚拟环境分离,和/或破坏用户的虚拟存在,从而有损用户的沉浸式虚拟体验。
在根据本文描述的实施方式的***和方法中,***可以确定要执行什么,如果有的话,动作和/或要在虚拟环境中执行什么,如果有的话,命令(即,基于检测到的虚拟接触的相对于虚拟对象选择和/或操纵、或者虚拟环境中的其它动作的用户目的),即使用户可能会穿过一个或多个虚拟对象。具体地,***可以被配置为使得用户可以穿过虚拟对象(例如,与虚拟环境中用于用户交互的虚拟选择按钮相对应的虚拟对象),并且进行补偿,使得在用户穿过物理环境并且在虚拟环境中按照相应方式移动时不会偶然地触发其它虚拟对象/选择按钮,并且使得用户在物理环境中的移动不会触发虚拟环境中的无意后果。换言之,本文描述的实施方式实现了对与虚拟环境中的虚拟对象的虚拟接触与用户命令(例如,选择虚拟对象)相对应的认识的准确性,尤其是在虚拟环境中将多于一个的虚拟对象显示给用户时。因此,用户可以与虚拟空间中的虚拟对象交互的精确性可以得到提高。
在一些实施方式中,可以基于,例如,在用户与虚拟对象之间的虚拟接触点处的接近速度来将用户(例如,用户的手部和/或手臂、或者其它身体部分、由用户控制的指定选择设备)与虚拟对象之间的有意虚拟接触和用户与虚拟对象之间的无意虚拟接触区别开。在一些实施方式中,可以基于,例如,在用户与虚拟对象之间的虚拟接触点处的接近加速度来将用户(例如,用户的手部和/或手臂、或者其它身体部分、由用户控制的指定选择设备)与虚拟对象之间的有意虚拟接触和用户与虚拟对象之间的无意虚拟接触区别开。在一些实施方式中,可以基于,例如,在用户与虚拟对象之间的虚拟接触点处的接近方向来将用户(例如,用户的手部和/或手臂、或者其它身体部分、由用户控制的指定选择设备)与虚拟对象之间的有意虚拟接触和用户与虚拟对象之间的无意虚拟接触区别开。在一些实施方式中,这可以包括在三维物理环境中的指定选择设备的六个自由度的跟踪,以将该移动转换为虚拟环境中的相应移动,使得能够确定在用户与虚拟对象之间的虚拟接触点处的接近速度和/或加速度和/或接近方向。在一些实施方式中,***可以配置为检测和/或跟踪在物理空间中的用户身体和/或用户身体的指定部分,使得***能够大致实时地跟踪用户相对于虚拟环境的定向,并且相对于显示给用户的虚拟对象来将检测到的和/或跟踪到的移动转换到虚拟环境。
在图6A至6D中示出了示例虚拟对象700。仅为了便于讨论和说明,示例虚拟对象700具有大致呈矩形的三维形状,其具有前侧701(虚拟对象700旨在面向用户以与用户交互的一侧)、后侧702(虚拟对象700旨在远离用户的一侧)、侧面703和上下侧704。然而,根据***的性能、特定的虚拟沉浸式体验、要显示的选项和其它这种因素,要显示的虚拟对象可以采取多种其它形式。
在一些实施方式中,可以限定在用户与虚拟对象700之间的虚拟接触点处的接近速度和/或加速度的阈值,并且在一些实施方式中,可以将其与接近方向或者虚拟接触区域一起考虑以确定是否应该基于检测到的虚拟接触来做出特定选择。在虚拟接触点处的接近速度和/或加速度的阈值可以基于,例如,特定虚拟环境、与正在确定选择的虚拟环境中的特定情景相关联的场境、与虚拟环境中的指定选择设备相关联的特性、用户历史和/或偏好和/或简档、和其它这种因素变化。同样,基于相对于虚拟对象的接近方向范围内和/或虚拟对象的指定接触区域内的虚拟接触来限定接近方向和/或虚拟接触区域、和选择/激活特定虚拟对象的阈值可以基于,例如,特定虚拟环境、与正在确定选择的虚拟环境中的特定情景相关联的场境、与虚拟环境中的指定选择设备相关联的特性、用户历史和/或偏好和/或简档、和/或其它这种因素变化。在本文中,术语激活和选择可以交换使用。
在图6B所示的示例中,由图6B所示的多个实线箭头图示的指向虚拟对象700的各个不同的接近方向与用户与虚拟对象700之间的虚拟接触的相应实例相关联。在一些实施方式中,由图6B所示的实线箭头图示的不同接近方向中的每个接近方向都可以表示接近方向、接近速度、接近加速度、接近区域、和/或与用户(即,由用户控制的指定选择设备,包括,例如,用户的手部或其它身体部分、手持式电子设备102等)与虚拟对象700之间的虚拟接触相关联的其它这种因素中的一个或多个。在一些实施方式中,可以基于虚拟对象的指定特征(诸如,例如,图6B所示的示例中的虚拟对象700的前侧701)来检测接近方向。在一些实施方式中,例如,可以根据相对于指定特征或者其它这种测量单元的角度来测量该接近。在一些实施方式中,可以基于首先检测到虚拟接触处的虚拟对象700的部分或面积来检测并测量该接近。在一些实施方式中,由图6B所示的实线箭头识别的指向虚拟对象700的前侧701的虚拟接触可以被识别为与选择或致动或操纵虚拟对象700的命令相对应的有意接触。
在一些实施方式中,例如,由图6C所示的虚线箭头识别的指向虚拟对象700的后侧702的虚拟接触可以被识别为偶然接触或者意外接触。在一些实施方式中,***可以确定对虚拟对象700的选择与由图6C所示的虚线箭头识别的虚拟接触的目的无关。在这种情况下,***可以因此确定,在没有其它用户输入/命令的情况下,在虚拟对象700的后侧702处检测到的虚拟接触不会触发相应命令在虚拟环境中的执行。在一些实施方式中,在上侧和/或下侧704、和/或在虚拟对象700的侧面703处检测到的虚拟接触可以被识别为与选择、或致动、或操纵虚拟对象700的命令相对应的有意虚拟接触。在一些实施方式中,在上侧和/或下侧704、和/或在侧面703处检测到的虚拟接触可以被识别为无意的、或者偶然的、或者意外的虚拟接触,因为对虚拟对象700的选择不是有意的。有意虚拟接触是根据上文分类的极有可能与通过用户、身体部分的移动、方向注视等、和/或对真实世界中的电子设备的操纵来选择虚拟对象的用户实际目的相匹配的虚拟接触。无意虚拟接触(也被称为偶然或意外虚拟接触)是根据上文分类的不太可能与通过用户、身体部分的移动、方向注视等、和/或对真实世界中的电子设备的操纵来选择虚拟对象的用户实际目的相匹配的虚拟接触。
如上文所提到的,如图6B所示的实线箭头指示的确定从特定方向到与虚拟对象700的接触的接近是否是有意的(并且指示要在虚拟环境中执行的用户命令)、或者如图6C所示的虚线箭头指示的确定该接近是否是无意的/意外的可以基于许多因素,诸如,例如,特定虚拟环境、与正在确定选择的虚拟环境中的特定情景相关联的场境、与虚拟环境中的指定选择设备相关联的特性、用户历史和/或偏好和/或简档、和其它这种因素。
在图6D所示的示例中,用户与虚拟对象700之间的各种不同的虚拟接触可以由实线箭头识别。在该示例中,用户与虚拟对象700之间的不同虚拟接触可以具有不同的接近速度,例如,通过检测并跟踪物理环境中的指定选择设备(用户的手部或者其它身体部分、拿着手持式电子设备102的用户、通过手持式电子设备102发出的虚拟光束等,如上文所描述的)并且将检测到的物理移动转换到虚拟环境来测量该接近速度。在一些实施方式中,可以针对特定虚拟环境和场境中的特定虚拟对象700来设置速度阈值,并且可以将检测到的虚拟接触的接近速度与阈值相比较以确定检测到的虚拟接触是否是与对虚拟对象700进行选择、致动、和/或其它操纵的命令相对应的有意接触。例如,超过设置的接近速度阈值的检测到的虚拟接触可能指示用户正经过虚拟对象,旨在选择在三维空间中超出虚拟对象700放置的另一个虚拟对象。在这种情况下,***可以将检测到的虚拟接触识别为无意接触,不旨在对虚拟对象700进行选择。在一些情况下,小于设置的接近速度阈值的检测到的虚拟接触可能指示用户的目的是选择虚拟对象700,并且***可以将检测到的虚拟接触识别为与对虚拟对象700进行选择、致动、和/或其它操纵的命令相对应的有意虚拟接触。
在一些实施方式中,可以通过一个范围来表示接近速度阈值,例如,该范围由下限阈值和上限阈值限定。***可以将具有小于下限阈值的接近速度的检测到的虚拟接触识别为无意接触,不旨在对虚拟对象700进行选择。***可以将具有大于上限阈值的接近速度的检测到的虚拟接触识别为无意虚拟接触,例如,该无意虚拟接触指示用户的目的是选择在虚拟环境中超出虚拟对象700放置的另一个虚拟对象。具有大于或等于下限阈值、和小于或等于上限阈值、或者在由上限阈值和下限阈值限定的接近速度阈值范围内的接近速度的检测到的虚拟接触可以被识别为与对虚拟对象700进行选择、致动、和/或其它操纵的命令相对应的有意虚拟接触,并且在虚拟环境中执行相应动作。
除了由图6D所示的实线箭头识别的具有不同接近速度的虚拟接触之外,或者替代地,由图6D所示的实线箭头识别的虚拟接触可以具有不同的接近加速度。例如,可以通过检测并跟踪物理环境中的指定选择设备(用户的手部和/其它身体部分、拿着手持式电子设备102的用户、通过手持式电子设备102发出的虚拟光束等,如上文所描述的)并且将检测到的物理移动转换到虚拟环境来测量与虚拟对象700的用户接触的接近加速度。在一些实施方式中,可以针对特定虚拟环境和场境中的特定虚拟对象700来设置加速度阈值,并且可以将检测到的虚拟接触的接近加速度与阈值相比较以确定检测到的虚拟接触是否与对虚拟对象700进行选择、致动、和/或其它操纵的命令相对应。例如,超过接近加速度阈值的检测到的虚拟接触可能指示用户的目的是选择在虚拟环境中超出虚拟对象700放置的另一个虚拟对象,并且***可以将检测到的虚拟接触识别为无意接触,不旨在对虚拟对象700进行选择。在一些情况下,小于接近加速度阈值的检测到的虚拟接触可能指示用户的目的是选择虚拟对象700,并且***可以将检测到的虚拟接触识别为与对虚拟对象700进行选择、致动、或其它操纵的命令相对应的有意虚拟接触。
在一些实施方式中,可以通过一个范围来表示接近加速度阈值,例如,该范围由下限阈值和上限阈值限定。***可以将具有小于下限阈值的接近加速度的检测到的虚拟接触识别为无意接触,不旨在对虚拟对象700进行选择。***可以将具有大于上限阈值的接近加速度的检测到的虚拟接触识别为无意虚拟接触,例如,该无意虚拟接触指示用户的目的是选择在三维空间中超出虚拟对象700放置的另一个虚拟对象。具有大于或等于下限阈值、和小于或等于上限阈值、或者在由上限阈值和下限阈值限定的接近加速度阈值范围内的接近加速度的检测到的虚拟接触可以被识别为与对虚拟对象700进行选择、致动、和/或其它操纵的命令相对应的有意虚拟接触,并且在虚拟环境中执行相应动作。
在一些实施方式中,检测到的虚拟接触的接近方向、或者接近速度、或者接近加速度中的其中一个可以用于确定检测到的虚拟接触是否是有意的,并且与选择、致动、或者操纵虚拟对象700的命令相对应。在一些实施方式中,接近方向和/或接近速度和/或接近加速度的各种组合可以用于确定检测到的虚拟接触是否是有意的,并且与选择、致动、或者操纵虚拟对象700的命令相对应。在一些实施方式中,对检测到的虚拟接触的分量(接近方向、接近速度和/或接近加速度)的选择可以取决于各种不同因素,诸如,例如,特定虚拟环境、与正在确定选择的虚拟环境中的特定情景相关联的场境、与虚拟环境中的指定选择设备相关联的特性、用户历史和/或偏好和/或简档、和其它这种因素。
图7A至7J是与由HMD 100生成并显示的虚拟环境中的虚拟对象的虚拟显示器的用户交互的第三人称视图(类似于其它第三人称视图)。如图7A和7B所示,在用户穿过由HMD100生成并显示给用户的沉浸式虚拟环境中的物理环境,有时用户可以设置为可以将可供用户选择并致动的虚拟对象放置在用户后面,如图7A和7B所示,而不是放置在用户前面,如图4A至4F所示。如上文所提到的,可以检测并跟踪用户在物理环境中的位置,并且将检测到的移动转换为虚拟环境中的相应移动。例如,可以经由在三维物理环境中的指定选择设备的六个自由度的跟踪来实现这种跟踪,以将该移动转换到虚拟环境中,如上文所描述的。在一些实施方式中,这种跟踪可以包括对指定选择设备的跟踪。在一些实施方式中,这种跟踪可以包括对用户的全身跟踪,使***能够保持对用户相对于虚拟环境中的虚拟对象的位置和/或定向的大致实时的感知。除了上文讨论的在确定检测到的与虚拟对象的虚拟接触是否是有意的时的接近速度和/或接近加速度和/或方向/区域之外,或替代地,可以考虑到相对于虚拟对象的用户位置和定向,并且该位置和定向与用户命令相对应。
在虚拟对象放置在用户后面的情况下,如图7A所示,用户可以向后移动,并且与其中一个虚拟对象进行无意的虚拟接触,如图7B所示。在图7B所示的示例中,可以在用户与虚拟对象D之间检测到虚拟接触,在虚拟对象D的前侧或者激活区域检测到接触。按照这种方式检测到的虚拟接触(虚拟对象放置在用户后面,并且在用户视野外)可以具有将检测到的虚拟接触识别为指示要在虚拟环境中执行命令的有意虚拟接触的接近方向和/或接近速度和/或接近加速度。然而,在该示例中,由于已知虚拟对象A至F相对于用户(并且相对于指定选择设备)的位置在用户后面(基于三维物理环境内的指定选择设备的六个自由度的跟踪),所以用户可以将图7B所示的检测到的虚拟接触识别为不会触发相应命令在虚拟环境中的执行的无意接触。
如上文所提到的,在一些实施方式中,***可以大致实时地执行全身跟踪物理空间中的用户,将物理空间中的用户的全身移动转换为虚拟环境中的相应移动,跟踪相对于虚拟环境中的虚拟对象的用户位置和/或定向。例如,在一些实施方式中,这可以包括跟踪用户头部(例如,头部的前面和后面)的位置和/或定向。例如,在一些实施方式中,这可以包括跟踪用户肩部(例如,左肩部和右肩部)的位置和/或定向。在一些实施方式中,这可以包括跟踪用户手臂/手肘/手部(例如,左臂/肘/手和右臂/肘/手)的位置和/或定向。在一些实施方式中,这可以包括跟踪用户躯干(例如,胸部和背部)的位置和/或定向。在一些实施方式中,这可以包括跟踪用户膝部(例如,左膝和右膝)的位置和/或定向。在一些实施方式中,这可以包括跟踪用户脚部(例如,左脚和右脚)的位置和/或定向。在一些实施方式中,这可以包括跟踪用户的更多或更少的身体部分的位置和/或定向。在一些实施方式中,可以跟踪身体部分使得***可以检测在该身体部分与虚拟对象进行虚拟接触时的位置和定向以确定检测到的虚拟接触是否与在虚拟环境中进行动作的用户命令相对应。
例如,在一些实施方式中,***可以将用户手部的第一部分(例如,用户的指尖)与虚拟对象之间进行的第一虚拟接触和用户手部的第二部分(例如,用户手部的手心侧或者手背侧)与虚拟对象之间进行的第二虚拟接触区别开。在这种情况下,***可以确定第一虚拟接触是有意接触,与要在虚拟环境中执行动作的用户命令相对应,然而第二接触是偶然接触,在虚拟环境中没有动作旨在作为该虚拟接触的结果。在一些实施方式中,***可以将第一身体部分(例如,用户的右手)与虚拟对象之间进行的第一虚拟接触和第二身体部分(例如,用户的左手)与虚拟对象之间进行的第二虚拟接触区别开。在这种情况下,可以将***设置为:和与用户的非优势手进行的虚拟接触(通常更容易进行偶然移动)相比,对与用户的优势手(例如,用户的右手)进行的虚拟接触更敏感。因此,在这种情况下,***可以确定第一虚拟接触是有意接触,与要在虚拟环境中执行动作的用户命令相对应,然而第二接触是偶然接触,在虚拟环境中没有动作旨在作为该虚拟接触的结果。这些类型的确定可以基于,例如,与检测到的虚拟接触相关联的虚拟环境和虚拟对象的场境、设置的用户偏好、设置的***偏好等进行。
在图7C所示的示例中,虚拟对象A至F在虚拟环境中放置在用户前面,并且***可以设置为:例如,通过如上文所描述的身体(包括用户的预设身体部分的一些集合)跟踪来跟踪用户相对于虚拟环境中的虚拟对象A至F的位置,并且还可以跟踪HMD 100和/或手持式电子设备102的位置和定向,如上文所描述的。在图7D中,用户已经转移了他对虚拟对象A至F的注意力以,例如,与另一个用户交流,使他自己熟悉虚拟环境中的其它虚拟元素等。由于用户转动了他的头部,如图7D的示例所示,所以虚拟对象A至F不再在用户的视野内。这可以通过,例如,用户头部的位置和/或定向确定,***基于,例如,对用户头部的跟踪、来自HMD100的位置数据等来确定该位置和定向。在按照图7D所示的方式转动头部的过程中,用户还可能已经改变了,例如,他的左臂/手的位置,从而用户的左手与虚拟对象D进行了虚拟接触。
在一些实施方式中,按照这种方式将虚拟对象A至F移出用户的视野可能会将虚拟对象渲染为不活动(例如,不再在用户视野内的虚拟对象)。因此,在该示例中,即使已经在用户手部与虚拟对象D之间检测到了虚拟接触(例如,处于如上文所描述的通常与有意的用户命令相对应的接近速度和/或加速度和/或接触区域),因为虚拟对象D不再在用户视野内,所以虚拟对象D实际上是禁用的,并且不采取动作作为检测到的虚拟接触的结果。在一些实施方式中,例如,可以按照这种方式将移出用户视野外的一个或多个虚拟对象(例如,在预设时间内、或者在虚拟对象移回到用户视野中之前等)渲染为不活动(例如,禁用)。
在一些实施方式中,在沉浸式用户的特定身体部分与虚拟环境中的特定虚拟对象之间检测到的虚拟接触可以在虚拟环境中触发动作,然而特定身体部分与另一个虚拟对象之间的虚拟接触、或者另一个身体部分与特定虚拟对象之间的虚拟接触无法在虚拟环境中触发动作。在这种情况下,确定特定虚拟接触是否会在虚拟环境中触发动作可以基于,例如,特定应用和相关联的设置、特定虚拟场景和包括在虚拟场景中的虚拟元素的场境、用户偏好和简档等。
在图7E所示的示例中,参与虚拟足球游戏的用户可能会遇到表示球的虚拟对象750。在一些情况下,***可以设置为使得忽略在用户脚部与虚拟对象之间检测到的虚拟接触。然而,在该示例中,基于该特定应用的场境、涉及的特定虚拟对象750、和涉及的特定身体部分,在用户脚部与虚拟足球750之间的虚拟接触可以被识别为在虚拟环境中触发动作的命令。在一些实施方式中,除了需要检测到的虚拟接触在特定身体部分(在该示例中,用户脚部)与特定虚拟对象(在该示例中,虚拟足球750)之间以在虚拟环境中触发动作之外,***还可以在确定检测到的虚拟接触是否是为了在虚拟环境中触发动作时考虑到接近速度和/或接近加速度和/或接触区域/方向。例如,在图7E所示的示例中,用户脚部与虚拟足球之间的虚拟接触具有小于设置的阈值的接近速度和/或接近加速度可以指示该虚拟接触可能不是有意的,并且旨在在虚拟环境中引起相应动作。例如,小于设置的速度和/或加速度阈值的检测到的接触可以指示用户偶然地、或者不知不觉地走进、或走过虚拟足球750。相反,处于或者大于设置的速度和/或加速度阈值、和/或在设置的接触区域/方向内的检测到的接触可以指示检测到的虚拟接触与有意移动、或者踢虚拟足球750相对应,并且***可以在虚拟环境中利用相应力量来将虚拟足球750朝着相应方向虚拟地移动。
在一些实施方式中,当在虚拟对象(诸如,例如,虚拟足球750)与不同身体部分之间检测到虚拟接触时,用于在虚拟环境中触发动作的这些阈值可以是不同的。例如,拾起或轻弹虚拟足球750的动作可以通过用户手部与虚拟足球750之间的相对简单的接触(在确定是否要触发相应动作时应用相对较宽的阈值或者不应用阈值)触发,如图7F所示。在该示例中,因为用户必须弯曲或弯腰来触及虚拟足球750,所以***可以确定在该特定应用中用户手部与虚拟足球750之间的任何接触都是有意的,并且触发相应动作。
在一些实施方式中,用户可以选择传送(teleport)到新的虚拟位置,或者进一步探索显示在虚拟环境中的虚拟对象。在图7G所示的示例中,例如,查看HMD 100的显示器140上的虚拟场景400的用户将虚拟光束引向虚拟场景400中的虚拟对象450或者虚拟汽车450以传送到虚拟汽车450中。用户可以利用与传送位置的活动控制区域相对应的位置中的指定控制设备,例如,身体部分(诸如,手部)、手持式电子设备102等到达传送位置,例如,虚拟汽车450的内部。在到达传送位置时的偶然用户移动可能会导致活动控制区域中的指定控制设备的偶然移动,并且可能会产生要执行的偶然用户命令。
例如,如7H(a)所示,在传送时,用户可以利用控制区域的虚拟接触区域(例如,虚拟汽车450的内部的虚拟方向盘420)内的手部到达虚拟汽车450的内部。在该示例中,在利用放置在虚拟方向盘420上的用户手部到达虚拟汽车450的内部时用户手部的偶然移动可能会导致虚拟方向盘420的偶然且不需要的移动,如图7H(b)所示。在一些实施方式中,如上文所描述的,为了避免在到达新的传送位置或者虚拟环境中用户可以进行过渡的其它点时控制机构的这种偶然且不需要的移动,可以将宽限期、或者不活动期、或者暂停期构建到传送动作中。在这种不活动期期间,可以暂时禁用新的传送位置处的各种控制机构,使得与各种控制机构的虚拟接触不会在虚拟环境中触发动作。这可以使用户在继续参与到新的虚拟环境中之前能够在一段设置时间内适应新的虚拟环境。
如上文相对于图7C和7D讨论的,在一些实施方式中,用户视野外的虚拟对象的移动有时可能会使虚拟对象被禁用,从而使得虚拟对象不会被用户不旨在致动虚拟对象的移动偶然地致动。在一些实施方式中,例如,根据应用的场境、被致动的特定虚拟对象、与对特定虚拟对象的注视和/或聚焦时间相关联的设置等可以禁用用户视野外的虚拟对象的移动或者可以使其保持活动。例如,如图7I所示,当在虚拟汽车450中时,用户可以向下扫视虚拟变速器430,使用户能够准确且虚拟地抓住虚拟变速器430。在保持对虚拟变速器430的虚拟抓握时,例如,用户然后可以把目光从虚拟变速器430移向虚拟方向盘420和/或虚拟环境中的前方轨迹或道路以与虚拟方向盘420接洽并且在虚拟汽车450沿着虚拟轨迹行进时控制虚拟汽车450等。在该示例中,由用户查看的特定虚拟场景400的场境以及特定虚拟对象(虚拟变速器430)的特性使虚拟变速器430能够在用户保持与虚拟变速器430的虚拟接触时保持活动,即使用户已经将目光从虚拟变速器430移开,并且虚拟变速器430不再在用户视野内,如图7J所示。
上文相对于图7A至7J讨论的特征可以使得能够基于特定虚拟场景的特性以及虚拟场景中可供用户交互的虚拟对象的特定特性来有效地应用上文相对于图4A至6D讨论的激活规则。
在图8中示出了从根据本文描述的实施方式的增强和/或虚拟现实环境中的用户界面选择虚拟对象进行致动的方法。在检测到用户(例如,由用户控制的指定选择设备)与在虚拟环境中三维地显示的虚拟对象之间的虚拟接触(框810)时,可以基于检测到的接触来确定检测到的虚拟接触是否与指示***执行特定动作的命令相对应(820)。例如,在检测到虚拟接触时,***可以基于,例如,相对于虚拟对象的接近速度和/或加速度和/或方向、场境或者特定虚拟环境、用户设置和用户偏好等来确定检测到的虚拟接触是否是有意的,如上文相对于图4A至4F、图5A至5F、图6A至6D和图7A至7B详细描述的。即,如上文描述的,***可以基于这些因素来确定检测到的沉浸在虚拟空间中的用户与虚拟对象之间的虚拟接触与用户执行进一步动作的目的有关的可能性或概率。当确定了检测到的虚拟接触是有意的时,***可以确定用户已经对虚拟对象进行了选择、或者致动、或者操纵,并且可以在虚拟现实环境中实施与选择的虚拟对象相关联的动作(框830)。在确定已经终止了虚拟现实体验之前,可以执行该过程(框840)。
图9示出了通用计算机设备900和通用移动计算机设备950的示例,该示例可以与此处所描述的技术一起使用。计算设备900旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、平板计算机、工作站、个人数字助理、电视、服务器、刀片式服务器、大型计算机、和其它适合的计算设备。计算设备950旨在表示各种形式的移动设备,诸如,个人数字助理、蜂窝电话、智能手机、和其它类似的计算设备。此处所示的组件、它们的连接和关系、以及它们的功能仅仅旨在作为示例,并且不旨在限制本文中描述的和/或要求的本发明的实施方式。
计算设备900包括处理器902、存储器904、存储设备906、连接至存储器904和高速扩展端口910的高速接口908、和连接至低速扩展端口914和存储设备906的低速接口912。处理器902可以是基于半导体的处理器。存储器904可以是基于半导体的存储器。每个组件902、904、906、908、910、和912都通过使用各种总线互相连接,并且一些组件可以安装在公共主板上或者根据需要以其它方式安装。处理器902可以对在计算设备900内执行的指令进行处理,包括存储在存储器904中或者存储设备906上以在外部输入/输出设备(诸如,耦合至高速接口908的显示器916)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多种类型的存储器一起使用。同样,可以连接多个计算设备900,每个设备都提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。
存储器904存储在计算设备900内的信息。在一种实施方式中,存储器904是一个或多个易失性存储器单元。在另一种实施方式中,存储器904是一个或多个非易失性存储器单元。存储器904还可以是另一种形式的计算机可读介质,诸如,磁盘或者光盘。
存储设备906能够为计算设备900提供海量存储设备。在一种实施方式中,存储设备906可以是或者可以包括计算机可读介质,诸如,软盘设备、硬盘设备、光盘设备、或者磁带设备、闪速存储器或者其它类似的固态存储器设备,或者设备的阵列(包括存储区域网络或者其它配置的设备)。计算机程序产品可以有形地体现为信息载体。计算机程序产品还可以包含指令,该指令在被执行时执行一种或多种方法,诸如,上文描述的那些方法。信息载体是计算机可读介质或者机器可读介质,诸如,存储器904、存储设备906、或者在处理器902上的存储器。
高速控制器908管理计算设备900的带宽密集型操作,而低速控制器912管理较低的带宽密集型操作。这种功能分配仅仅是示例性的。在一种实施方式中,高速控制器908耦合至存储器904、显示器916(例如,通过图形处理器或者加速器)、和高速扩展端口910,该高速扩展端口910可以接受各种扩展卡(未示出)。在实施方式中,低速控制器912耦合至存储设备906和低速扩展端口914。低速扩展端口914可以包括各种通信端口(例如,USB、蓝牙、以太网、和无线以太网),例如,可以通过网络适配器耦合至一个或多个输入/输出设备,诸如,键盘、指针设备、扫描仪、或者组网设备(诸如,交换机或者路由器)。
如图所示,可以利用多种不同形式来实施计算设备900。例如,可以将计算设备900实施为标准服务器920,或者多次实施在一组这样的服务器中。还可以将计算设备900实施为机架式服务器***924的一部分。另外,计算设备900可以实施在个人计算机(诸如,膝上型计算机922)中。可替代地,来自计算设备900的组件可以与移动设备(未示出)(诸如,设备950)中的其它组件组合。每个这种设备都可以包含一个或多个计算设备900、950,并且整个***可以由彼此通信的多个计算设备900、950组成。
除了其它组件之外,计算设备950还包括处理器952、存储器964、输入/输出设备(诸如,显示器954)、通信接口966、和收发机968。设备950还可以设置有提供附加的存储的存储设备,诸如,微型硬盘或者其它设备。每个组件950、952、964、954、966、和968都通过使用各种总线互相连接,并且一些组件可以安装在公共主板上或者根据需要以其它方式安装。
处理器952可以执行在计算设备950内的指令,包括存储在存储器964中的指令。可以将处理器实施为包括单独的和多个模拟和数字处理器的芯片的芯片集。处理器可以提供,例如,对设备950的其它组件的协同,诸如,用户界面的控制、由设备950运行的应用、和通过设备950进行的无线通信。
处理器952可以通过耦合至显示器954的控制接口958和显示器接口956来与用户通信。例如,显示器954可以是TFT LCD(薄膜晶体管液晶显示屏)或者OLED(有机发光二极管)显示器、或者其它合适的显示技术。显示接口956可以包括用于驱动显示器954向用户呈现图形和其它信息的合适的电路***。控制接口958可以接收来自用户的命令并且对命令进行转换以提交至处理器952。另外,外部接口962可以提供与处理器952的通信,以便使设备950能够与其它设备进行邻近区域通信。在一些实施方式中,外部接口962可以提供,例如,有线通信,或者在一些实施方式中可以提供无线通信,并且还可以使用多个接口。
存储器964存储在计算设备950内的信息。可以将存储器964实施为一个或多个计算机可读介质、一个或多个易失性存储器单元、或者一个或多个非易失性存储器单元。还可以提供扩展存储器974并且通过扩展接口972将扩展存储器974连接至设备950,该扩展接口972可以包括,例如,SIMM(单线存储器模块)卡接口。这种扩展存储器974可以为设备950提供附加存储空间,或者还可以存储设备950的应用或者其它信息。具体地,扩展存储器974可以包括用于执行或者补充上文描述的过程的指令,并且还可以包括安全信息。因此,例如,可以将扩展存储器974提供为设备950的安全模块,并且可以用允许安全使用设备950的指令来对其进行编程。另外,可以经由SIMM卡与附加信息(诸如,将识别信息通过不可侵入的方式放在SIMM卡上)一起来提供安全应用。
存储器可以包括,例如,闪速存储器和/或NVRAM存储器,如下文所描述的。在一种实施方式中,计算机程序产品有形地体现为信息载体。计算机程序产品包含指令,该指令在被执行时执行一种或多种方法,诸如,上文描述的那些方法。信息载体是计算机可读介质或者机器可读介质,诸如,存储器964、拓展存储器974或者在处理器952上的存储器,例如,可以通过收发机968或者外部接口962接收所述信息载体。
设备950可以通过通信接口966无线地通信,若需要,该通信接口966可以包括数字信号处理电路***。通信接口966可以提供在各种模式或者协议下的通信,诸如,GSM语音通话、SMS、EMS、或者MMS短信发送、CDMA、TDMA、PDC、WCDMA、CDMA2000、或者GPRS等。这种通信可以,例如,通过无线电频率收发机968发生。另外,短程通信可以通过使用,诸如,蓝牙、WiFi、或者其它这种收发机(未示出)而发生。另外,GPS(全球定位***)接收器模块970可以将附加的与导航或者位置有关的无线数据提供给设备950,若合适,该无线数据可以供在设备950上运行的应用使用。
设备950还可以使用音频编解码器960进行可听地通信,该音频编解码器960可以接收来自用户的口头信息并且将口头信息转换为可用的数字信息。音频编解码器960还可以为用户生成可听见的声音,诸如,通过扬声器,例如,在设备950的听筒中的扬声器。这种声音可以包括来自语音电话呼叫的声音,可以包括录制的声音(例如,语音消息、音乐文件等),并且还可以包括通过在设备950上操作的应用生成的声音。
如图所示,可以利用多种不同形式来实施计算设备950。例如,可以将计算设备950实施为蜂窝电话980。还可以将计算设备950实施为智能手机982、个人数字助理、或者其它类似的移动设备的一部分。
此处描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括在可编程***上可执行和/或可解释的一个或多个计算机程序、存储***、至少一个输入设备、和至少一个输出设备中的实施方式,该可编程***包括可以是专用或者通用的至少一个可编程处理器,耦合从该可编程处理器接收数据和指令并且将数据以及指令传输到可编程处理器。
这些计算机程序(也称作程序、软件、软件应用或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算机程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、装置、和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指针设备(例如,鼠标或者轨迹球),用户可以通过该键盘和该指针设备来将输入提供给计算机。其它种类的设备还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后端组件的计算***(例如,作为数据服务器)、或者包括中间件组件的计算***(例如,应用服务器)、或者包括前端组件的计算***(例如,具有图形用户界面或者web浏览器的客户端计算机,用户可以通过该图形用户界面或者该web浏览器来与此处描述的***和技术的实施方式交互)、或者这种后端组件、中间件组件、或者前端组件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的组件互相连接。通信网络的示例包括:局域网(“LAN”)、广域网(“WAN”)、和互联网。
计算***可以包括客户端和服务器。客户端和服务器通常远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
已经描述了若干实施方式。然而,要理解,可以在不脱离本公开的精神和范围的情况下做出各种修改。
另外,在附图中描绘的逻辑流程不需要所示的特定顺序或者相继顺序,以实现期望的结果。另外,可以提供其它步骤或者可以从描述的流程删除步骤,并且可以将其它组件添加至描述的***或者从描述的***移除其它组件。因此,其它实施方式在以下权利要求书的范围内。
本文描述的各种技术的实施方式可以实施在数字电子电路***中、或者实施在计算机硬件、固件、软件、或者它们的组合中。可以将实施方式实施为计算机程序产品,即,有形地体现为信息载体(例如,有形地体现为机器可读存储设备(计算机可读介质))的计算机程序,以供数据处理装置(例如,可编程处理器、计算机、或者多个计算机)处理或者控制数据处理装置的操作。因此,计算机可读存储介质可以配置为存储指令,该指令在被执行时使处理器(例如,主机设备处的处理器、客户端设备处的处理器)执行过程。
可以用任何形式的编程语言(包括编译语言或者解译语言)来编写计算机程序(诸如,上文描述的计算机程序),并且可以按照任何形式(包括:作为独立的程序或者模块、组件、子例程、或者适合用于计算环境的其它单元)来部署计算机程序。计算机程序可以部署为在一个计算机上执行或者在位于一个站点处或者分布在多个站点中并且通过通信网络互相连接的多个计算机上执行。
可以通过一个或多个可编程处理器来执行方法步骤,该一个或多个可编程处理器执行计算机程序以通过操作输入数据并且生成输出来执行功能。也可以通过专用逻辑电路***(例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路))来执行方法步骤,并且可以将装置实施为该FPGA或者ASIC。
适合执行计算机程序的处理器包括:例如,通用微处理器、专用微处理器、以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将接收来自只读存储器或者随机存取存储器或者两者的指令和数据。计算机的元件可以包括用于执行指令的至少一个处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还可以包括用于存储数据的一个或多个海量存储设备(例如,磁盘、磁光盘、或者光盘),或者计算机可以可操作地耦合以接收来自该海量存储设备的数据或者将数据传输至该海量存储设备或者进行两者。适合体现计算机程序指令和数据的信息载体包括所有形式的非易失性存储器,包括:例如,示例半导体存储设备(例如,EPROM、EEPROM和闪速存储器设备)、磁盘(例如,内部硬盘或者可移动盘)、磁光盘、以及CD-ROM盘和DVD-ROM盘。处理器和存储器可以由专用逻辑电路***补充或者可以并入该专用逻辑电路***中。
为了提供与用户的交互,可以在计算机上实施实施方式,该计算机具有:用于向用户显示信息的显示设备,例如,阴极射线管(CRT)、发光二极管(LED)、或者液晶显示器(LCD)监视器;以及键盘和指针设备,例如,鼠标或者轨迹球,用户可以通过该键盘和该指针设备来将输入提供给计算机。其它种类的设备还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈,例如,视觉反馈、听觉反馈或者触觉反馈;并且可以用任何形式(包括声输入、语音输入或者触觉输入)来接收来自用户的输入。
可以将实施方式实施在包括后端组件的计算***(例如,作为数据服务器)、或者包括中间件组件的计算***(例如,应用服务器)、或者包括前端组件的计算***(例如,具有图形用户界面或者web浏览器的客户端计算机,用户可以通过该图形用户界面或者该web浏览器来与实施方式交互)、或者这种后端组件、中间件组件或者前端组件的任何组合的计算***中。这些组件可以通过任何形式或数字数据通信的介质(例如,通信网络)互相连接。通信网络的示例包括局域网(LAN)和广域网(WAN),例如,互联网。
在以下示例中对进一步的实施方式进行了总结:
示例1:一种方法,该方法包括:生成虚拟环境,包括在该虚拟环境中显示多个虚拟对象;检测选择设备与多个虚拟对象中的一个虚拟对象之间的虚拟接触;基于检测到的虚拟接触的至少一个特性来确定检测到的虚拟接触是否与要在虚拟环境中执行的命令相对应;以及当确定检测到的虚拟接触与要在虚拟环境中执行的命令相对应时,选择虚拟对象进行致动以及基于检测到的虚拟接触在虚拟环境中执行与选择的虚拟对象和命令相对应的动作。
示例2:示例1的方法,其中,基于检测到的虚拟接触的至少一个特性来确定检测到的虚拟接触是否与要在虚拟环境中执行的命令相对应包括:检测检测到的虚拟接触的至少一个特性,该至少一个特性包括:在虚拟接触点处选择设备相对于虚拟对象的接近方向、在虚拟接触点处选择设备相对于虚拟对象的接近速度、或者在虚拟接触点处选择设备相对于虚拟对象的接近加速度;以及基于检测到的虚拟接触的检测到的至少一个特性来确定检测到的虚拟接触是否与要在虚拟环境中执行的命令相对应。
示例3:示例2的方法,其中,检测检测到的虚拟接触的至少一个特性包括:检测在虚拟接触点处选择设备相对于虚拟对象的接近方向,以及确定检测到的虚拟接触是否与要在虚拟环境中执行的命令相对应包括:将检测到的虚拟接触的检测到的接近方向与预设接近方向阈值相比较。
示例4:示例3的方法,其中,预设接近方向阈值限定相对于虚拟对象的致动表面的接近角度范围,并且其中,确定检测到的虚拟接触是否与要在虚拟环境中执行的命令相对应包括:当检测到的接近方向在预设接近角度范围内时,在虚拟环境中执行命令。
示例5:示例3或4的方法,其中,预设接近方向阈值是相对于虚拟对象的一个或多个致动区域来限定的,并且其中,确定检测到的虚拟接触是否与要在虚拟环境中执行的命令相对应包括:当检测到的接近方向被检测到在虚拟对象的一个或多个致动区域中的一个致动区域内时,在虚拟环境中执行命令。
示例6:示例2至5中的其中一个示例的方法,其中,检测检测到的虚拟接触的至少一个特性包括:检测检测到的虚拟接触相对于虚拟对象的接近速度,以及确定检测到的虚拟接触是否与要在虚拟环境中执行的命令相对应包括:将检测到的虚拟接触的检测到的接近速度与预设接近速度阈值相比较。
示例7:示例6的方法,其中,预设接近速度阈值限定相对于虚拟对象的接近速度范围,并且其中,确定检测到的虚拟接触是否与要在虚拟环境中执行的命令相对应包括:当检测到的接近速度在预设接近速度范围内时,在虚拟环境中执行命令。
示例8:示例2至7中的其中一个示例的方法,其中,检测检测到的虚拟接触的至少一个特性包括:检测检测到的虚拟接触相对于虚拟对象的接近加速度,以及确定检测到的虚拟接触是否与要在虚拟环境中执行的命令相对应包括:将检测到的虚拟接触的检测到的接近加速度与预设接近加速度阈值相比较。
示例9:示例8的方法,其中,预设接近加速度阈值限定相对于虚拟对象的接近加速度范围,并且其中,确定检测到的虚拟接触是否与要在虚拟环境中执行的命令相对应包括:当检测到的接近加速度在预设接近加速度范围内时,在虚拟环境中执行命令。
示例10:示例2至9中的其中一个示例的方法,其中,所述检测到的虚拟接触是在虚拟对象的第一表面处检测到的,该虚拟对象的第一表面限定虚拟对象的致动表面,该方法进一步包括:检测虚拟对象的第二表面上的后续虚拟接触,该第二表面限定虚拟对象的不活动表面;确定后续虚拟接触并不与要在虚拟环境中执行的命令相对应;以及忽略该后续虚拟接触的检测。
示例11:示例1至10中的其中一个示例的方法,其中,检测选择设备与多个虚拟对象中的一个虚拟对象之间的虚拟接触包括:检测到虚拟对象在用户视野外;确定检测到的虚拟接触并不与要在虚拟环境中执行的命令相对应;以及忽略该虚拟接触的检测。
示例12:示例1至11中的其中一个示例的方法,其中,检测选择设备与多个虚拟对象中的一个虚拟对象之间的虚拟接触包括:检测到从第一视野到第二视野的用户视野变化,其中,在第一视野内检测到与虚拟对象的虚拟接触,并且虚拟对象在第二视野外;确定检测到的虚拟接触与要相对于虚拟对象执行的命令相对应,虚拟对象在第二视野外;以及响应于检测到的虚拟接触来执行命令。
示例13:示例1至12中的其中一个示例的方法,其中,所指定的选择设备是用户的身体部分,检测虚拟接触包括:跟踪用户的身体部分相对于虚拟环境中的多个虚拟对象的位置和定向,所述检测到的虚拟接触是在用户的身体部分与虚拟对象之间检测到的,以及确定检测到的虚拟接触是否与要在虚拟环境中执行的命令相对应包括:基于检测到虚拟接触时所述身体部分的位置和定向来确定检测到的虚拟接触是否与要执行的命令相对应。
示例14:示例1至12中的其中一个示例的方法,其中,所指定的选择设备是用户的多个身体部分中的至少一个身体部分,检测虚拟接触包括:跟踪用户的多个身体部分相对于虚拟环境中的多个虚拟对象的位置和定向,所述检测到的虚拟接触是在用户的所述多个身体部分中的一个身体部分与虚拟对象之间检测到的,以及确定检测到的虚拟接触是否与要在虚拟环境中执行的命令相对应包括:确定检测到虚拟接触时虚拟环境的场境;确定所述多个身体部分中的所述一个身体部分是否与虚拟对象相匹配以在所确定的虚拟环境的场境内致动虚拟对象;如果所述多个身体部分中的所述一个身体部分与虚拟对象相匹配,则响应于检测到的虚拟接触来在虚拟环境中执行命令;以及如果所述多个身体部分中的所述一个身体部分与虚拟对象不匹配,则忽略检测到的虚拟接触。
示例15:示例1至12中的其中一个示例的方法,其中,所指定的选择设备是用户的多个身体部分中的至少一个身体部分,检测虚拟接触包括:跟踪用户的多个身体部分相对于虚拟环境中的多个虚拟对象的位置和定向,所述检测到的虚拟接触是在用户的所述多个身体部分中的一个身体部分与虚拟对象之间检测到的,以及确定检测到的虚拟接触是否与要在虚拟环境中执行的命令相对应包括:基于检测到虚拟接触时所述多个身体部分中的所述一个身体部分的所跟踪到的位置和定向来确定所述检测到的虚拟接触是否是在所述多个身体部分中的所述一个身体部分的致动部分与虚拟对象的致动部分之间检测到的;如果检测到的虚拟接触在所述多个身体部分中的所述一个身体部分的致动部分与虚拟对象之间,则响应于检测到的虚拟接触来在虚拟环境中执行命令;以及如果检测到的虚拟接触不在所述多个身体部分中的所述一个身体部分的致动部分与虚拟对象之间,则忽略检测到的虚拟接触。
示例16:一种***,该***包括:计算设备,该计算设备被配置为生成虚拟环境,该计算设备包括:存储器,该存储器存储可执行指令;以及处理器,该处理器被配置为执行指令以使计算设备:生成包括多个虚拟对象的显示的虚拟环境;检测选择设备与多个虚拟对象中的一个虚拟对象之间的虚拟接触;基于检测到的虚拟接触的至少一个特性来确定检测到的虚拟接触是否与要在虚拟环境中执行的命令相对应;以及当确定检测到的虚拟接触与要在虚拟环境中执行的命令相对应时,选择虚拟对象进行致动以及在虚拟环境中执行与该命令和所选择的虚拟对象相对应的动作。
示例17:示例16的***,其中,在确定检测到的虚拟接触是否与要在虚拟环境中执行的命令相对应时,处理器进一步被配置为执行指令以使计算设备:检测检测到的虚拟接触的至少一个特性,该至少一个特性包括:在虚拟接触点处选择设备相对于虚拟对象的接近方向、在虚拟接触点处选择设备相对于虚拟对象的接近速度、或者在虚拟接触点处选择设备相对于虚拟对象的接近加速度;以及基于检测到的虚拟接触的检测到的所述至少一个特性来确定检测到的虚拟接触是否与要在虚拟环境中执行的命令相对应。
示例18:示例17的***,其中,在基于检测到的虚拟接触的检测到的至少一个特性来确定检测到的虚拟接触是否与要在虚拟环境中执行的命令相对应时,处理器进一步被配置为执行指令以使计算设备执行以下操作中的至少一项:将检测到的虚拟接触的检测到的接近方向与预设接近方向范围相比较,并且如果检测到的虚拟接触的检测到的接近方向在预设接近方向范围内,则在虚拟环境中执行该命令;将检测到的虚拟接触的检测到的接近速度与预设接近速度范围相比较,并且如果检测到的虚拟接触的检测到的接近速度在预设接近速度范围内,则在虚拟环境中执行该命令;或者将检测到的虚拟接触的检测到的接近加速度与预设接近加速度范围相比较,并且如果检测到的虚拟接触的检测到的接近加速度在预设接近加速度范围内,则在虚拟环境中执行该命令。
示例19:示例16至18中的其中一个示例的***,其中,所述检测到的虚拟接触是在虚拟对象的第一表面处检测到的,该第一表面限定致动表面,处理器进一步被配置为执行指令以使计算设备:检测虚拟对象的第二表面上的后续虚拟接触,该第二表面限定虚拟对象的不活动表面;确定该后续虚拟接触并不与要在虚拟环境中执行的命令相对应;以及忽略该后续虚拟接触的检测。
示例20:示例16至19中的其中一个示例的***,其中,在检测选择设备与多个虚拟对象中的一个虚拟对象之间的虚拟接触时,处理器进一步被配置为执行指令以使计算设备:检测到虚拟对象在用户视野外;确定检测到的虚拟接触并不与要在虚拟环境中执行的命令相对应;以及忽略该虚拟接触的检测。
虽然已经如本文描述的那样图示了所描述的实施方式的某些特征,但是对于本领域的技术人员来说,会发生许多修改、取代、改变和等同物。因此,要理解,随附权利要求书旨在涵盖所有的这种修改和变更,这所有的这种修改和变更落入实施方式的范围内。应该理解的是,它们仅作为示例呈现,而非限制,并且可以进行形式和细节上的各种改变。除了互相排斥的组合以外,本文描述的装置和/或方法的任何部分都可以按照任何组合进行组合。本文描述的实施方式可以包括所描述的不同实施方式的功能、组件和/或特征的各种组合和/或子组合。

Claims (20)

1.一种方法,所述方法包括:
生成虚拟环境,包括在所述虚拟环境中显示多个虚拟对象;
检测选择设备与所述多个虚拟对象中的一个虚拟对象之间的虚拟接触;
基于检测到的虚拟接触的至少一个特性来确定所述检测到的虚拟接触是否与要在所述虚拟环境中执行的命令相对应;以及
当确定所述检测到的虚拟接触与要在所述虚拟环境中执行的命令相对应时,
选择所述虚拟对象进行致动;以及
基于所述检测到的虚拟接触在所述虚拟环境中执行与所选择的虚拟对象和所述命令相对应的动作。
2.根据权利要求1所述的方法,其中,基于所述检测到的虚拟接触的至少一个特性来确定所述检测到的虚拟接触是否与要在所述虚拟环境中执行的命令相对应包括:
检测所述检测到的虚拟接触的所述至少一个特性,所述至少一个特性包括:在虚拟接触点处所述选择设备相对于所述虚拟对象的接近方向、在所述虚拟接触点处所述选择设备相对于所述虚拟对象的接近速度、或者在所述虚拟接触点处所述选择设备相对于所述虚拟对象的接近加速度;以及
基于所述检测到的虚拟接触的检测到的所述至少一个特性来确定所述检测到的虚拟接触是否与要在所述虚拟环境中执行的所述命令相对应。
3.根据权利要求2所述的方法,其中,检测所述检测到的虚拟接触的所述至少一个特性包括:检测在所述虚拟接触点处所述选择设备相对于所述虚拟对象的所述接近方向,以及
确定所述检测到的虚拟接触是否与要在所述虚拟环境中执行的命令相对应包括:将所述检测到的虚拟接触的所检测到的接近方向与预设接近方向阈值相比较。
4.根据权利要求3所述的方法,其中,所述预设接近方向阈值限定相对于所述虚拟对象的致动表面的接近角度范围,并且其中,确定所述检测到的虚拟接触是否与要在所述虚拟环境中执行的命令相对应包括:当所述检测到的接近方向在所述预设接近角度范围内时,在所述虚拟环境中执行所述命令。
5.根据权利要求3所述的方法,其中,所述预设接近方向阈值是相对于所述虚拟对象的一个或多个致动区域来限定的,并且其中,确定所述检测到的虚拟接触是否与要在所述虚拟环境中执行的命令相对应包括:当所述检测到的接近方向被检测到在所述虚拟对象的所述一个或多个致动区域中的一个致动区域内时,在所述虚拟环境中执行所述命令。
6.根据权利要求2所述的方法,其中,检测所述检测到的虚拟接触的所述至少一个特性包括:检测所述检测到的虚拟接触相对于所述虚拟对象的所述接近速度,以及
确定所述检测到的虚拟接触是否与要在所述虚拟环境中执行的命令相对应包括:将所述检测到的虚拟接触的所述检测到的接近速度与预设接近速度阈值相比较。
7.根据权利要求6所述的方法,其中,所述预设接近速度阈值限定相对于所述虚拟对象的接近速度范围,并且其中,确定所述检测到的虚拟接触是否与要在所述虚拟环境中执行的命令相对应包括:当所述检测到的接近速度在所述预设接近速度范围内时,在所述虚拟环境中执行所述命令。
8.根据权利要求2所述的方法,其中,检测所述检测到的虚拟接触的所述至少一个特性包括:检测所述检测到的虚拟接触相对于所述虚拟对象的接近加速度,以及
确定所述检测到的虚拟接触是否与要在所述虚拟环境中执行的命令相对应包括:将所述检测到的虚拟接触的所述检测到的接近加速度与预设接近加速度阈值相比较。
9.根据权利要求8所述的方法,其中,所述预设接近加速度阈值限定相对于所述虚拟对象的接近加速度范围,并且其中,确定所述检测到的虚拟接触是否与要在所述虚拟环境中执行的命令相对应包括:当所述检测到的接近加速度在所述预设接近加速度范围内时,在所述虚拟环境中执行所述命令。
10.根据权利要求2所述的方法,其中,所述检测到的虚拟接触是在所述虚拟对象的第一表面处检测到的,所述虚拟对象的所述第一表面限定所述虚拟对象的致动表面,所述方法进一步包括:
检测所述虚拟对象的第二表面上的后续虚拟接触,所述第二表面限定所述虚拟对象的不活动表面;
确定所述后续虚拟接触并不与要在所述虚拟环境中执行的命令相对应;以及
忽略所述后续虚拟接触的所述检测。
11.根据权利要求1所述的方法,其中,检测选择设备与所述多个虚拟对象中的一个虚拟对象之间的虚拟接触包括:
检测到所述虚拟对象在用户视野外;
确定所述检测到的虚拟接触并不与要在所述虚拟环境中执行的命令相对应;以及
忽略所述虚拟接触的所述检测。
12.根据权利要求1所述的方法,其中,检测选择设备与所述多个虚拟对象中的一个虚拟对象之间的虚拟接触包括:
检测到从第一视野到第二视野的用户视野变化,其中,在所述第一视野内检测到与所述虚拟对象的虚拟接触,并且所述虚拟对象在所述第二视野外;
确定所述检测到的虚拟接触与要相对于所述虚拟对象执行的命令相对应,所述虚拟对象在所述第二视野外;以及
响应于所述检测到的虚拟接触来执行所述命令。
13.根据权利要求1所述的方法,其中,指定的选择设备是所述用户的身体部分,
检测虚拟接触包括:跟踪所述用户的所述身体部分相对于所述虚拟环境中的所述多个虚拟对象的位置和定向,所述检测到的虚拟接触是在所述用户的所述身体部分与所述虚拟对象之间检测到的,以及
确定所述检测到的虚拟接触是否与要在所述虚拟环境中执行的命令相对应包括:基于检测到所述虚拟接触时所述身体部分的所述位置和所述定向来确定所述检测到的虚拟接触是否与要执行的命令相对应。
14.根据权利要求1所述的方法,其中,所指定的选择设备是所述用户的多个身体部分中的至少一个身体部分,
检测虚拟接触包括:跟踪所述用户的所述多个身体部分相对于所述虚拟环境中的所述多个虚拟对象的位置和定向,所述检测到的虚拟接触是在所述用户的所述多个身体部分中的一个身体部分与所述虚拟对象之间检测到的,以及
确定所述检测到的虚拟接触是否与要在所述虚拟环境中执行的命令相对应包括:
确定检测到所述虚拟接触时所述虚拟环境的场境;
确定所述多个身体部分中的所述一个身体部分是否与所述虚拟对象相匹配以在所确定的所述虚拟环境的场境内致动所述虚拟对象;
如果所述多个身体部分中的所述一个身体部分与所述虚拟对象相匹配,则响应于所述检测到的虚拟接触来在所述虚拟环境中执行所述命令;以及
如果所述多个身体部分中的所述一个身体部分与所述虚拟对象不匹配,则忽略所述检测到的虚拟接触。
15.根据权利要求1所述的方法,其中,所指定的选择设备是所述用户的多个身体部分中的至少一个身体部分,
检测虚拟接触包括:跟踪所述用户的所述多个身体部分相对于所述虚拟环境中的所述多个虚拟对象的位置和定向,所述检测到的虚拟接触是在所述用户的所述多个身体部分中的一个身体部分与所述虚拟对象之间检测到的,以及
确定所述检测到的虚拟接触是否与要在所述虚拟环境中执行的命令相对应包括:
基于检测到所述虚拟接触时所述多个身体部分中的所述一个身体部分的所跟踪到的位置和定向来确定所述检测到的虚拟接触是否是在所述多个身体部分中的所述一个身体部分的致动部分与所述虚拟对象的致动部分之间检测到的;
如果所述检测到的虚拟接触在所述多个身体部分中的所述一个身体部分的所述致动部分与所述虚拟对象之间,则响应于所述检测到的虚拟接触来在所述虚拟环境中执行所述命令;以及
如果所述检测到的虚拟接触不在所述多个身体部分中的所述一个身体部分的所述致动部分与所述虚拟对象之间,则忽略所述检测到的虚拟接触。
16.一种***,所述***包括:
计算设备,所述计算设备被配置为生成虚拟环境,所述计算设备包括:存储器,所述存储器存储可执行的指令;以及处理器,所述处理器被配置为执行所述指令以使所述计算设备:
生成包括多个虚拟对象的显示的虚拟环境;
检测选择设备与所述多个虚拟对象中的一个虚拟对象之间的虚拟接触;
基于检测到的虚拟接触的至少一个特性来确定所述检测到的虚拟接触是否与要在所述虚拟环境中执行的命令相对应;以及
当确定所述检测到的虚拟接触与要在所述虚拟环境中执行的命令相对应时,
选择所述虚拟对象进行致动;以及
在所述虚拟环境中执行与所述命令和所选择的虚拟对象相对应的动作。
17.根据权利要求16所述的***,其中,在确定所述检测到的虚拟接触是否与要在所述虚拟环境中执行的命令相对应时,所述处理器进一步被配置为执行所述指令以使所述计算设备:
检测所述检测到的虚拟接触的所述至少一个特性,所述至少一个特性包括:在虚拟接触点处所述选择设备相对于所述虚拟对象的接近方向、在所述虚拟接触点处所述选择设备相对于所述虚拟对象的接近速度、或者在所述虚拟接触点处所述选择设备相对于所述虚拟对象的接近加速度;以及
基于所述检测到的虚拟接触的检测到的所述至少一个特性来确定所述检测到的虚拟接触是否与要在所述虚拟环境中执行的所述命令相对应。
18.根据权利要求17所述的***,其中,在基于所述检测到的虚拟接触的检测到的所述至少一个特性来确定所述检测到的虚拟接触是否与要在所述虚拟环境中执行的所述命令相对应时,所述处理器进一步被配置为执行所述指令以使所述计算设备执行以下操作中的至少一项:
将所述检测到的虚拟接触的检测到的接近方向与预设接近方向范围相比较,并且如果所述检测到的虚拟接触的所述检测到的接近方向在所述预设接近方向范围内,则在所述虚拟环境中执行所述命令;
将所述检测到的虚拟接触的检测到的接近速度与预设接近速度范围相比较,并且如果所述检测到的虚拟接触的所述检测到的接近速度在所述预设接近速度范围内,则在所述虚拟环境中执行所述命令;或者将所述检测到的虚拟接触的检测到的接近加速度与预设接近加速度范围相比较,并且如果所述检测到的虚拟接触的所述检测到的接近加速度在所述预设接近加速度范围内,则在所述虚拟环境中执行所述命令。
19.根据权利要求16所述的***,其中,所述检测到的虚拟接触是在所述虚拟对象的第一表面处检测到的,所述第一表面限定致动表面,所述处理器进一步被配置为执行所述指令以使所述计算设备:
检测所述虚拟对象的第二表面上的后续虚拟接触,所述第二表面限定所述虚拟对象的不活动表面;
确定所述后续虚拟接触并不与要在所述虚拟环境中执行的命令相对应;以及
忽略所述后续虚拟接触的所述检测。
20.根据权利要求16所述的***,其中,在检测选择设备与所述多个虚拟对象中的一个虚拟对象之间的虚拟接触时,所述处理器进一步被配置为执行所述指令以使所述计算设备:
检测到所述虚拟对象在用户视野外;
确定所述检测到的虚拟接触并不与要在所述虚拟环境中执行的命令相对应;以及
忽略所述虚拟接触的所述检测。
CN201680053552.6A 2015-12-11 2016-12-08 增强和/或虚拟现实环境中的场境敏感用户界面激活 Pending CN108027657A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562266449P 2015-12-11 2015-12-11
US62/266,449 2015-12-11
US15/371,886 US11010972B2 (en) 2015-12-11 2016-12-07 Context sensitive user interface activation in an augmented and/or virtual reality environment
US15/371,886 2016-12-07
PCT/US2016/065528 WO2017100406A1 (en) 2015-12-11 2016-12-08 Context sensitive user interface activation in an augmented and/or virtual reality environment

Publications (1)

Publication Number Publication Date
CN108027657A true CN108027657A (zh) 2018-05-11

Family

ID=57708764

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680053552.6A Pending CN108027657A (zh) 2015-12-11 2016-12-08 增强和/或虚拟现实环境中的场境敏感用户界面激活

Country Status (4)

Country Link
US (2) US11010972B2 (zh)
EP (1) EP3329349B1 (zh)
CN (1) CN108027657A (zh)
WO (1) WO2017100406A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108897425A (zh) * 2018-06-29 2018-11-27 联想(北京)有限公司 一种数据处理方法及电子设备
CN109782909A (zh) * 2018-12-29 2019-05-21 北京诺亦腾科技有限公司 一种vr交互设备与vr场景的交互方法及装置
CN111913564A (zh) * 2019-05-07 2020-11-10 广东虚拟现实科技有限公司 虚拟内容的操控方法、装置、***、终端设备及存储介质
CN111913560A (zh) * 2019-05-07 2020-11-10 广东虚拟现实科技有限公司 虚拟内容的显示方法、装置、***、终端设备及存储介质
WO2021073269A1 (zh) * 2019-10-15 2021-04-22 北京市商汤科技开发有限公司 增强现实数据呈现方法、装置、设备、存储介质和程序

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10884493B2 (en) 2013-06-20 2021-01-05 Uday Parshionikar Gesture based user interfaces, apparatuses and systems using eye tracking, head tracking, hand tracking, facial expressions and other user actions
US10726625B2 (en) 2015-01-28 2020-07-28 CCP hf. Method and system for improving the transmission and processing of data regarding a multi-user virtual environment
US10725297B2 (en) 2015-01-28 2020-07-28 CCP hf. Method and system for implementing a virtual representation of a physical environment using a virtual reality environment
US20170092002A1 (en) * 2015-09-30 2017-03-30 Daqri, Llc User interface for augmented reality system
CN108459782A (zh) * 2017-02-17 2018-08-28 阿里巴巴集团控股有限公司 一种输入方法、装置、设备、***和计算机存储介质
US10388077B2 (en) 2017-04-25 2019-08-20 Microsoft Technology Licensing, Llc Three-dimensional environment authoring and generation
US20180356885A1 (en) * 2017-06-10 2018-12-13 Tsunami VR, Inc. Systems and methods for directing attention of a user to virtual content that is displayable on a user device operated by the user
US10540778B2 (en) * 2017-06-30 2020-01-21 Intel Corporation System for determining anatomical feature orientation
EP3688562A1 (en) 2017-09-29 2020-08-05 Apple Inc. Physical boundary guardian
US10726626B2 (en) * 2017-11-22 2020-07-28 Google Llc Interaction between a viewer and an object in an augmented reality environment
US20190385372A1 (en) * 2018-06-15 2019-12-19 Microsoft Technology Licensing, Llc Positioning a virtual reality passthrough region at a known distance
US10528132B1 (en) * 2018-07-09 2020-01-07 Ford Global Technologies, Llc Gaze detection of occupants for vehicle displays
US20200019782A1 (en) * 2018-07-13 2020-01-16 International Business Machines Corporation Accommodating object occlusion in point-of-view displays
US11301110B2 (en) * 2018-12-27 2022-04-12 Home Box Office, Inc. Pull locomotion in a virtual reality environment
US10890992B2 (en) 2019-03-14 2021-01-12 Ebay Inc. Synchronizing augmented or virtual reality (AR/VR) applications with companion device interfaces
US11150788B2 (en) * 2019-03-14 2021-10-19 Ebay Inc. Augmented or virtual reality (AR/VR) companion device techniques
WO2020209624A1 (en) * 2019-04-11 2020-10-15 Samsung Electronics Co., Ltd. Head mounted display device and operating method thereof
US11048376B2 (en) 2019-05-15 2021-06-29 Microsoft Technology Licensing, Llc Text editing system for 3D environment
US11030822B2 (en) 2019-05-15 2021-06-08 Microsoft Technology Licensing, Llc Content indicators in a 3D environment authoring application
US11287947B2 (en) * 2019-05-15 2022-03-29 Microsoft Technology Licensing, Llc Contextual input in a three-dimensional environment
US11164395B2 (en) 2019-05-15 2021-11-02 Microsoft Technology Licensing, Llc Structure switching in a three-dimensional environment
US11039061B2 (en) 2019-05-15 2021-06-15 Microsoft Technology Licensing, Llc Content assistance in a three-dimensional environment
US11087560B2 (en) 2019-05-15 2021-08-10 Microsoft Technology Licensing, Llc Normalization of objects for a 3D environment within an authoring application
US11297366B2 (en) * 2019-05-22 2022-04-05 Google Llc Methods, systems, and media for object grouping and manipulation in immersive environments
CA3045132C (en) * 2019-06-03 2023-07-25 Eidos Interactive Corp. Communication with augmented reality virtual agents
CN112562088A (zh) * 2019-09-26 2021-03-26 苹果公司 基于用户移动来呈现环境
US11842449B2 (en) * 2019-09-26 2023-12-12 Apple Inc. Presenting an environment based on user movement
US11423585B2 (en) * 2020-11-30 2022-08-23 Microsoft Technology Licensing, Llc Velocity-based controls
US12007561B2 (en) 2020-12-22 2024-06-11 Telefonaktiebolaget Lm Ericsson (Publ) Methods and devices related to extended reality
JP2024509722A (ja) 2021-02-08 2024-03-05 サイトフル コンピューターズ リミテッド エクステンデッドリアリティにおけるユーザ相互作用
KR20230144042A (ko) 2021-02-08 2023-10-13 사이트풀 컴퓨터스 리미티드 생산성을 위한 확장 현실
JP2024507749A (ja) 2021-02-08 2024-02-21 サイトフル コンピューターズ リミテッド エクステンデッドリアリティにおけるコンテンツ共有
WO2023009580A2 (en) 2021-07-28 2023-02-02 Multinarity Ltd Using an extended reality appliance for productivity
CN115877945A (zh) * 2021-09-30 2023-03-31 株式会社电装天 信息处理装置、信息处理***和信息处理方法
US11948263B1 (en) 2023-03-14 2024-04-02 Sightful Computers Ltd Recording the complete physical and extended reality environments of a user
US20230334795A1 (en) 2022-01-25 2023-10-19 Multinarity Ltd Dual mode presentation of user interface elements

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103760973A (zh) * 2013-12-18 2014-04-30 微软公司 增强现实的信息细节
US20140152558A1 (en) * 2012-11-30 2014-06-05 Tom Salter Direct hologram manipulation using imu
US20140201674A1 (en) * 2013-01-15 2014-07-17 Leap Motion, Inc. Dynamic user interactions for display control and identifying dominant gestures
CN103947286A (zh) * 2011-09-30 2014-07-23 英特尔公司 无意触摸传感器接触的移动设备拒绝
CN104656890A (zh) * 2014-12-10 2015-05-27 杭州凌手科技有限公司 虚拟现实智能投影手势互动一体机及互动实现方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6031519A (en) * 1997-12-30 2000-02-29 O'brien; Wayne P. Holographic direct manipulation interface
US20020140633A1 (en) 2000-02-03 2002-10-03 Canesta, Inc. Method and system to present immersion virtual simulations using three-dimensional measurement
US7036082B1 (en) * 2000-09-21 2006-04-25 Nortel Networks Limited Controlling communications through a virtual reality environment
US7337410B2 (en) 2002-11-06 2008-02-26 Julius Lin Virtual workstation
EP2613281B1 (en) 2006-12-29 2014-08-13 Qualcomm Incorporated Manipulation of virtual objects using enhanced interactive system
US20080252595A1 (en) * 2007-04-11 2008-10-16 Marc Boillot Method and Device for Virtual Navigation and Voice Processing
US20090158222A1 (en) * 2007-12-14 2009-06-18 Apple Inc. Interactive and dynamic screen saver for use in a media system
US8117551B2 (en) * 2007-12-18 2012-02-14 International Business Machines Corporation Computer system and method of using presence visualizations of avatars as persistable virtual contact objects
US8166421B2 (en) 2008-01-14 2012-04-24 Primesense Ltd. Three-dimensional user interface
US8555207B2 (en) * 2008-02-27 2013-10-08 Qualcomm Incorporated Enhanced input using recognized gestures
US20110163944A1 (en) 2010-01-05 2011-07-07 Apple Inc. Intuitive, gesture-based communications with physics metaphors
US20110227947A1 (en) 2010-03-16 2011-09-22 Microsoft Corporation Multi-Touch User Interface Interaction
US8457353B2 (en) * 2010-05-18 2013-06-04 Microsoft Corporation Gestures and gesture modifiers for manipulating a user-interface
EP2614482A4 (en) * 2010-09-11 2014-05-14 Social Communications Co RELATIONSHIP-BASED PRESENCE DISPLAY IN VIRTUAL AREA CONTEXTS
KR101800182B1 (ko) 2011-03-16 2017-11-23 삼성전자주식회사 가상 객체 제어 장치 및 방법
US20130016042A1 (en) * 2011-07-12 2013-01-17 Ville Makinen Haptic device with touch gesture interface
US9046958B2 (en) * 2012-03-15 2015-06-02 Nokia Technologies Oy Method, apparatus and computer program product for user input interpretation and input error mitigation
US9183676B2 (en) * 2012-04-27 2015-11-10 Microsoft Technology Licensing, Llc Displaying a collision between real and virtual objects
US9645394B2 (en) * 2012-06-25 2017-05-09 Microsoft Technology Licensing, Llc Configured virtual environments
US9552673B2 (en) * 2012-10-17 2017-01-24 Microsoft Technology Licensing, Llc Grasping virtual objects in augmented reality
JP6308214B2 (ja) * 2013-05-15 2018-04-11 ソニー株式会社 表示制御装置、表示制御方法および記録媒体
US10137361B2 (en) * 2013-06-07 2018-11-27 Sony Interactive Entertainment America Llc Systems and methods for using reduced hops to generate an augmented virtual reality scene within a head mounted system
CN105980965A (zh) * 2013-10-10 2016-09-28 视力移动科技公司 用于非接触式打字的***、设备和方法
US11983401B1 (en) * 2014-06-04 2024-05-14 ULTRAHAPTICS IP TWO LIMITED, , United Kingd Systems and methods of interacting with a virtual grid in a three-dimensional (3D) sensory space
US9501810B2 (en) * 2014-09-12 2016-11-22 General Electric Company Creating a virtual environment for touchless interaction
US10241621B2 (en) * 2014-09-30 2019-03-26 Hewlett-Packard Development Company, L.P. Determining unintended touch rejection
US9852546B2 (en) * 2015-01-28 2017-12-26 CCP hf. Method and system for receiving gesture input via virtual control objects

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103947286A (zh) * 2011-09-30 2014-07-23 英特尔公司 无意触摸传感器接触的移动设备拒绝
US20140152558A1 (en) * 2012-11-30 2014-06-05 Tom Salter Direct hologram manipulation using imu
US20140201674A1 (en) * 2013-01-15 2014-07-17 Leap Motion, Inc. Dynamic user interactions for display control and identifying dominant gestures
CN103760973A (zh) * 2013-12-18 2014-04-30 微软公司 增强现实的信息细节
CN104656890A (zh) * 2014-12-10 2015-05-27 杭州凌手科技有限公司 虚拟现实智能投影手势互动一体机及互动实现方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108897425A (zh) * 2018-06-29 2018-11-27 联想(北京)有限公司 一种数据处理方法及电子设备
CN108897425B (zh) * 2018-06-29 2020-12-18 联想(北京)有限公司 一种数据处理方法及电子设备
CN109782909A (zh) * 2018-12-29 2019-05-21 北京诺亦腾科技有限公司 一种vr交互设备与vr场景的交互方法及装置
CN111913564A (zh) * 2019-05-07 2020-11-10 广东虚拟现实科技有限公司 虚拟内容的操控方法、装置、***、终端设备及存储介质
CN111913560A (zh) * 2019-05-07 2020-11-10 广东虚拟现实科技有限公司 虚拟内容的显示方法、装置、***、终端设备及存储介质
WO2021073269A1 (zh) * 2019-10-15 2021-04-22 北京市商汤科技开发有限公司 增强现实数据呈现方法、装置、设备、存储介质和程序

Also Published As

Publication number Publication date
US20210248835A1 (en) 2021-08-12
US11010972B2 (en) 2021-05-18
US20170169616A1 (en) 2017-06-15
WO2017100406A1 (en) 2017-06-15
EP3329349A1 (en) 2018-06-06
EP3329349B1 (en) 2022-04-27

Similar Documents

Publication Publication Date Title
CN108027657A (zh) 增强和/或虚拟现实环境中的场境敏感用户界面激活
CN107810465B (zh) 用于产生绘制表面的***和方法
CN108475120B (zh) 用混合现实***的远程设备进行对象运动跟踪的方法及混合现实***
CN107533373B (zh) 虚拟现实中经由手与对象的场境敏感碰撞的输入
US11625103B2 (en) Integration of artificial reality interaction modes
CN107771309B (zh) 处理三维用户输入的方法
CN105518575B (zh) 与自然用户界面的双手交互
CN117120962A (zh) 用于控制虚拟和图形元素的映射手部区域之间的双手交互
US20180024623A1 (en) Detecting user range of motion for virtual reality user interfaces
CN113853575A (zh) 具有滑动菜单的人工现实***
CN109891368A (zh) 活动对象在增强和/或虚拟现实环境中的切换
CN107787472A (zh) 用于虚拟现实中的凝视交互的悬停行为
CN108073276A (zh) 增强和/或虚拟现实环境的拖拽虚拟元件
JP2023541275A (ja) 環境内のオブジェクトと相互作用する方法
US11803233B2 (en) IMU for touch detection
CN113841110A (zh) 具有用于选通用户界面元素的个人助理元素的人工现实***
CN113892075A (zh) 用于人工现实***的拐角识别手势驱动的用户界面元素选通
CN117337426A (zh) 音频加强的增强现实
CN117130518A (zh) 控件显示方法、头显设备、电子设备及可读存储介质
US20220261085A1 (en) Measurement based on point selection
US11430170B1 (en) Controlling joints using learned torques
Rose et al. CAPTURE SHORTCUTS FOR SMART GLASSES USING ELECTROMYOGRAPHY
Luo Camera-Based Selection with Low-Cost Mobile VR Head-Mounted Displays

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination